diff --git a/pgpainless-core/src/main/kotlin/org/pgpainless/encryption_signing/EncryptionResult.kt b/pgpainless-core/src/main/kotlin/org/pgpainless/encryption_signing/EncryptionResult.kt index 410deba1..e86b2d90 100644 --- a/pgpainless-core/src/main/kotlin/org/pgpainless/encryption_signing/EncryptionResult.kt +++ b/pgpainless-core/src/main/kotlin/org/pgpainless/encryption_signing/EncryptionResult.kt @@ -17,11 +17,9 @@ import org.pgpainless.algorithm.SymmetricKeyAlgorithm import org.pgpainless.bouncycastle.extensions.matches import org.pgpainless.key.SubkeyIdentifier import org.pgpainless.util.MultiMap -import org.pgpainless.util.SessionKey data class EncryptionResult( val encryptionMechanism: MessageEncryptionMechanism, - val sessionKey: SessionKey?, val compressionAlgorithm: CompressionAlgorithm, val detachedDocumentSignatures: OpenPGPSignatureSet, val recipients: Set, @@ -86,7 +84,6 @@ data class EncryptionResult( private var _fileName = "" private var _modificationDate = Date(0) private var _encoding = StreamEncoding.BINARY - private var _sessionKey: SessionKey? = null fun setEncryptionMechanism(mechanism: MessageEncryptionMechanism): Builder = apply { _encryptionMechanism = mechanism @@ -108,8 +105,6 @@ data class EncryptionResult( (recipients as MutableSet).add(recipient) } - fun setSessionKey(sessionKey: SessionKey) = apply { _sessionKey = sessionKey } - fun addDetachedSignature(signature: OpenPGPDocumentSignature): Builder = apply { detachedSignatures.add(signature) } @@ -119,7 +114,6 @@ data class EncryptionResult( return EncryptionResult( _encryptionMechanism, - _sessionKey, _compressionAlgorithm!!, OpenPGPSignatureSet(detachedSignatures), recipients, diff --git a/pgpainless-core/src/main/kotlin/org/pgpainless/encryption_signing/EncryptionStream.kt b/pgpainless-core/src/main/kotlin/org/pgpainless/encryption_signing/EncryptionStream.kt index 12d8a115..9ccbfc10 100644 --- a/pgpainless-core/src/main/kotlin/org/pgpainless/encryption_signing/EncryptionStream.kt +++ b/pgpainless-core/src/main/kotlin/org/pgpainless/encryption_signing/EncryptionStream.kt @@ -20,7 +20,6 @@ import org.pgpainless.algorithm.CompressionAlgorithm import org.pgpainless.algorithm.StreamEncoding import org.pgpainless.bouncycastle.extensions.pgpDataEncryptorBuilder import org.pgpainless.util.ArmoredOutputStreamFactory -import org.pgpainless.util.SessionKey // 1 << 8 causes wrong partial body length encoding // 1 << 9 fixes this. @@ -94,11 +93,6 @@ class EncryptionStream( options.encryptionOptions.encryptionKeyIdentifiers.forEach { r -> resultBuilder.addRecipient(r) } - encryptedDataGenerator.setSessionKeyExtractionCallback { pgpSessionKey -> - if (pgpSessionKey != null) { - resultBuilder.setSessionKey(SessionKey(pgpSessionKey)) - } - } publicKeyEncryptedStream = encryptedDataGenerator.open(outermostStream, ByteArray(BUFFER_SIZE)).also { stream -> diff --git a/pgpainless-core/src/main/kotlin/org/pgpainless/key/modification/secretkeyring/OpenPGPKeyUpdater.kt b/pgpainless-core/src/main/kotlin/org/pgpainless/key/modification/secretkeyring/OpenPGPKeyUpdater.kt index d0c5c524..def452ac 100644 --- a/pgpainless-core/src/main/kotlin/org/pgpainless/key/modification/secretkeyring/OpenPGPKeyUpdater.kt +++ b/pgpainless-core/src/main/kotlin/org/pgpainless/key/modification/secretkeyring/OpenPGPKeyUpdater.kt @@ -121,7 +121,7 @@ class OpenPGPKeyUpdater( compAlgs != newCompAlgs || aeadAlgs != newAeadAlgs) { keyEditor.addDirectKeySignature( - SignatureParameters.Callback.Util.modifyHashedSubpackets { sigGen -> + SignatureParameters.Callback.modifyHashedSubpackets { sigGen -> sigGen.apply { setKeyFlags(key.primaryKey.keyFlags?.flags ?: 0) setFeature(true, newFeatures) @@ -157,7 +157,7 @@ class OpenPGPKeyUpdater( fun replaceWeakEncryptionSubkeys( revokeWeakKeys: Boolean, keyPairGeneratorCallback: KeyPairGeneratorCallback = - KeyPairGeneratorCallback.Util.encryptionKey() + KeyPairGeneratorCallback.encryptionKey() ) { val weakEncryptionKeys = key.getEncryptionKeys(referenceTime).filterNot { @@ -179,8 +179,7 @@ class OpenPGPKeyUpdater( fun replaceWeakSigningSubkeys( revokeWeakKeys: Boolean, keyPairGenerator: PGPKeyPairGenerator = provideKeyPairGenerator(), - keyPairGeneratorCallback: KeyPairGeneratorCallback = - KeyPairGeneratorCallback.Util.signingKey() + keyPairGeneratorCallback: KeyPairGeneratorCallback = KeyPairGeneratorCallback.signingKey() ) { val weakSigningKeys = key.getSigningKeys(referenceTime).filterNot { diff --git a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/EncryptImpl.kt b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/EncryptImpl.kt index c8a71c24..6e371ff0 100644 --- a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/EncryptImpl.kt +++ b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/EncryptImpl.kt @@ -26,7 +26,6 @@ import org.pgpainless.util.Passphrase import sop.EncryptionResult import sop.Profile import sop.ReadyWithResult -import sop.SessionKey import sop.enums.EncryptAs import sop.exception.SOPGPException import sop.operation.Encrypt @@ -99,10 +98,8 @@ class EncryptImpl(private val api: PGPainless) : Encrypt { api.generateMessage().onOutputStream(outputStream).withOptions(options) Streams.pipeAll(plaintext, encryptionStream) encryptionStream.close() - return EncryptionResult( - encryptionStream.result.sessionKey?.let { - SessionKey(it.algorithm.algorithmId.toByte(), it.key) - }) + // TODO: Extract and emit session key once BC supports that + return EncryptionResult(null) } } } catch (e: PGPException) { diff --git a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/SOPImpl.kt b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/SOPImpl.kt index 9a1b1ad5..d2d3bf35 100644 --- a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/SOPImpl.kt +++ b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/SOPImpl.kt @@ -68,7 +68,7 @@ class SOPImpl( override fun updateKey(): UpdateKey = UpdateKeyImpl(api) - override fun validateUserId(): ValidateUserId = sopv.validateUserId()!! + override fun validateUserId(): ValidateUserId = ValidateUserIdImpl(api) override fun version(): Version = sopv.version()!! } diff --git a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/SOPVImpl.kt b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/SOPVImpl.kt index e5a18c97..d1f729cf 100644 --- a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/SOPVImpl.kt +++ b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/SOPVImpl.kt @@ -9,7 +9,6 @@ import org.pgpainless.util.ArmoredOutputStreamFactory import sop.SOPV import sop.operation.DetachedVerify import sop.operation.InlineVerify -import sop.operation.ValidateUserId import sop.operation.Version class SOPVImpl(private val api: PGPainless) : SOPV { @@ -23,6 +22,4 @@ class SOPVImpl(private val api: PGPainless) : SOPV { override fun inlineVerify(): InlineVerify = InlineVerifyImpl(api) override fun version(): Version = VersionImpl(api) - - override fun validateUserId(): ValidateUserId = ValidateUserIdImpl(api) } diff --git a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/VersionImpl.kt b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/VersionImpl.kt index 1296fed8..5aa405ad 100644 --- a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/VersionImpl.kt +++ b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/VersionImpl.kt @@ -16,8 +16,8 @@ import sop.operation.Version class VersionImpl(private val api: PGPainless) : Version { companion object { - const val SOP_VERSION = 14 - const val SOPV_VERSION = "1.2" + const val SOP_VERSION = 11 + const val SOPV_VERSION = "1.0" } override fun getBackendVersion(): String = "PGPainless ${getVersion()}" diff --git a/version.gradle b/version.gradle index 7a7a0a4b..bf30b328 100644 --- a/version.gradle +++ b/version.gradle @@ -7,12 +7,12 @@ allprojects { shortVersion = '2.0.0' isSnapshot = true javaSourceCompatibility = 11 - bouncyCastleVersion = '1.81' + bouncyCastleVersion = '1.80-SNAPSHOT' bouncyPgVersion = bouncyCastleVersion junitVersion = '5.8.2' logbackVersion = '1.5.13' mockitoVersion = '4.5.1' slf4jVersion = '1.7.36' - sopJavaVersion = '14.0.0-SNAPSHOT' + sopJavaVersion = '11.0.0-SNAPSHOT' } }