Compare commits

..

30 commits

Author SHA1 Message Date
f2d40bba17
Fix formatting issues 2025-04-14 11:02:23 +02:00
9a23ec6bb0
Add test for certifying with revoked key 2025-04-14 11:02:22 +02:00
cc250efc56
Document update key 2025-04-14 11:02:22 +02:00
3f1c0fa54f
SOP update-key: Rename --no-new-mechanisms option to --no-added-capabilities 2025-04-14 11:02:22 +02:00
ebf5866dbd
Improve test 2025-04-14 11:02:22 +02:00
dd8526a0bc
Add basic test for certify-userid and validate-userid subcommands 2025-04-14 11:02:22 +02:00
6a1df7a192
reuse: convert dep5 file to toml file 2025-04-14 11:02:22 +02:00
86ff389388
Add new Exception types 2025-04-14 11:02:21 +02:00
9583c03cd1
Fix formatting 2025-04-14 11:02:21 +02:00
7a04783f12
MergeCertsCmd: Fix default value of armor 2025-04-14 11:02:21 +02:00
dd377619a1
validate-userid: Add --validate-at option 2025-04-14 11:02:21 +02:00
227081f1eb
Remove call to explicitly set bundle to fix native image 2025-04-14 11:02:21 +02:00
6eb8883563
Fix documentation of merge-certs command 2025-04-14 11:02:20 +02:00
68265671a5
Bump version 2025-04-14 11:02:20 +02:00
c311d4106f
Document endOfOptionsDelimiter 2025-04-14 11:02:20 +02:00
bfe2e5f707
Fix nullability of sop commands 2025-04-14 11:02:20 +02:00
d95e28af00
Add first test for new commands 2025-04-14 11:02:20 +02:00
dec1908d59
Show endOfOptions delimiter in help 2025-04-14 11:02:20 +02:00
a8b51d44b9
Implement external variants of new subcommands 2025-04-14 11:02:19 +02:00
e9c2bc8a3b
Checkstyle 2025-04-14 11:02:19 +02:00
e7f04584c8
Implement validate-userid command 2025-04-14 11:02:19 +02:00
d9afc3f2a0
Update msg files with input/output information 2025-04-14 11:02:19 +02:00
8f7a085911
Checkstyle and exception handling improvements 2025-04-14 11:02:19 +02:00
c48a17422f
Implement certify-userid command 2025-04-14 11:02:19 +02:00
7e9a8f61cb
Add support for rendering help info for input and output 2025-04-14 11:02:18 +02:00
03cb8d70f9
Add implementation of merge-certs command 2025-04-14 11:02:18 +02:00
b9964339d1
Add implementation of update-key command 2025-04-14 11:02:18 +02:00
dc92f0b623
Add new exceptions 2025-04-14 11:02:18 +02:00
8394f2e5a8
Make use of toolchain functionality and raise min Java API level to 11 2025-04-14 11:01:45 +02:00
2c26ab2da5
Improve reproducibility 2025-04-14 11:01:20 +02:00
4 changed files with 21 additions and 18 deletions

View file

@ -68,8 +68,6 @@ allprojects {
description = "Stateless OpenPGP Protocol API for Java" description = "Stateless OpenPGP Protocol API for Java"
version = shortVersion version = shortVersion
sourceCompatibility = javaSourceCompatibility
repositories { repositories {
mavenCentral() mavenCentral()
} }
@ -78,6 +76,13 @@ allprojects {
tasks.withType(AbstractArchiveTask) { tasks.withType(AbstractArchiveTask) {
preserveFileTimestamps = false preserveFileTimestamps = false
reproducibleFileOrder = true reproducibleFileOrder = true
dirMode = 0755
fileMode = 0644
}
kotlin {
jvmToolchain(javaSourceCompatibility)
} }
// Compatibility of default implementations in kotlin interfaces with Java implementations. // Compatibility of default implementations in kotlin interfaces with Java implementations.
@ -112,7 +117,7 @@ allprojects {
} }
jacoco { jacoco {
toolVersion = "0.8.7" toolVersion = "0.8.8"
} }
jacocoTestReport { jacocoTestReport {
@ -120,7 +125,7 @@ allprojects {
sourceDirectories.setFrom(project.files(sourceSets.main.allSource.srcDirs)) sourceDirectories.setFrom(project.files(sourceSets.main.allSource.srcDirs))
classDirectories.setFrom(project.files(sourceSets.main.output)) classDirectories.setFrom(project.files(sourceSets.main.output))
reports { reports {
xml.enabled true xml.required = true
} }
} }
@ -138,15 +143,15 @@ subprojects {
apply plugin: 'signing' apply plugin: 'signing'
task sourcesJar(type: Jar, dependsOn: classes) { task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources' archiveClassifier = 'sources'
from sourceSets.main.allSource from sourceSets.main.allSource
} }
task javadocJar(type: Jar, dependsOn: javadoc) { task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc' archiveClassifier = 'javadoc'
from javadoc.destinationDir from javadoc.destinationDir
} }
task testsJar(type: Jar, dependsOn: testClasses) { task testsJar(type: Jar, dependsOn: testClasses) {
classifier = 'tests' archiveClassifier = 'tests'
from sourceSets.test.output from sourceSets.test.output
} }
@ -243,7 +248,7 @@ task jacocoRootReport(type: JacocoReport) {
classDirectories.setFrom(files(subprojects.sourceSets.main.output)) classDirectories.setFrom(files(subprojects.sourceSets.main.output))
executionData.setFrom(files(subprojects.jacocoTestReport.executionData)) executionData.setFrom(files(subprojects.jacocoTestReport.executionData))
reports { reports {
xml.enabled true xml.required = true
xml.destination file("${buildDir}/reports/jacoco/test/jacocoTestReport.xml") xml.destination file("${buildDir}/reports/jacoco/test/jacocoTestReport.xml")
} }
// We could remove the following setOnlyIf line, but then // We could remove the following setOnlyIf line, but then
@ -254,10 +259,6 @@ task jacocoRootReport(type: JacocoReport) {
} }
task javadocAll(type: Javadoc) { task javadocAll(type: Javadoc) {
def currentJavaVersion = JavaVersion.current()
if (currentJavaVersion.compareTo(JavaVersion.VERSION_1_9) >= 0) {
options.addStringOption("-release", "8");
}
source subprojects.collect {project -> source subprojects.collect {project ->
project.sourceSets.main.allJava } project.sourceSets.main.allJava }
destinationDir = new File(buildDir, 'javadoc') destinationDir = new File(buildDir, 'javadoc')

View file

@ -21,7 +21,9 @@ class UpdateKeyExternal(binary: String, environment: Properties) : UpdateKey {
override fun signingOnly(): UpdateKey = apply { commandList.add("--signing-only") } override fun signingOnly(): UpdateKey = apply { commandList.add("--signing-only") }
override fun noAddedCapabilities(): UpdateKey = apply { commandList.add("--no-added-capabilities") } override fun noAddedCapabilities(): UpdateKey = apply {
commandList.add("--no-added-capabilities")
}
override fun withKeyPassword(password: ByteArray): UpdateKey = apply { override fun withKeyPassword(password: ByteArray): UpdateKey = apply {
commandList.add("--with-key-password=@ENV:KEY_PASSWORD_$argCount") commandList.add("--with-key-password=@ENV:KEY_PASSWORD_$argCount")

View file

@ -20,14 +20,14 @@ interface UpdateKey {
fun noArmor(): UpdateKey fun noArmor(): UpdateKey
/** /**
* Allow key to be used for signing only. * Allow key to be used for signing only. If this option is not present, the operation may add a
* If this option is not present, the operation may add a new, encryption-capable component key. * new, encryption-capable component key.
*/ */
@Throws(SOPGPException.UnsupportedOption::class) fun signingOnly(): UpdateKey @Throws(SOPGPException.UnsupportedOption::class) fun signingOnly(): UpdateKey
/** /**
* Do not allow adding new capabilities to the key. * Do not allow adding new capabilities to the key. If this option is not present, the operation
* If this option is not present, the operation may add support for new capabilities to the key. * may add support for new capabilities to the key.
*/ */
@Throws(SOPGPException.UnsupportedOption::class) fun noAddedCapabilities(): UpdateKey @Throws(SOPGPException.UnsupportedOption::class) fun noAddedCapabilities(): UpdateKey

View file

@ -7,7 +7,7 @@ allprojects {
shortVersion = '11.0.0' shortVersion = '11.0.0'
isSnapshot = true isSnapshot = true
minAndroidSdk = 10 minAndroidSdk = 10
javaSourceCompatibility = 1.8 javaSourceCompatibility = 11
gsonVersion = '2.10.1' gsonVersion = '2.10.1'
jsrVersion = '3.0.2' jsrVersion = '3.0.2'
junitVersion = '5.8.2' junitVersion = '5.8.2'