diff --git a/pgpainless-core/src/main/kotlin/org/pgpainless/algorithm/negotiation/SymmetricKeyAlgorithmNegotiator.kt b/pgpainless-core/src/main/kotlin/org/pgpainless/algorithm/negotiation/SymmetricKeyAlgorithmNegotiator.kt index d11f2c03..63cc6a59 100644 --- a/pgpainless-core/src/main/kotlin/org/pgpainless/algorithm/negotiation/SymmetricKeyAlgorithmNegotiator.kt +++ b/pgpainless-core/src/main/kotlin/org/pgpainless/algorithm/negotiation/SymmetricKeyAlgorithmNegotiator.kt @@ -4,7 +4,6 @@ package org.pgpainless.algorithm.negotiation -import java.lang.IllegalArgumentException import org.pgpainless.algorithm.SymmetricKeyAlgorithm import org.pgpainless.policy.Policy @@ -36,9 +35,8 @@ interface SymmetricKeyAlgorithmNegotiator { override: SymmetricKeyAlgorithm?, keyPreferences: List> ): SymmetricKeyAlgorithm { - if (override == SymmetricKeyAlgorithm.NULL) { - throw IllegalArgumentException( - "Algorithm override cannot be NULL (plaintext).") + require (override != SymmetricKeyAlgorithm.NULL) { + "Algorithm override cannot be NULL (plaintext)." } if (override != null) { diff --git a/pgpainless-core/src/main/kotlin/org/pgpainless/encryption_signing/EncryptionOptions.kt b/pgpainless-core/src/main/kotlin/org/pgpainless/encryption_signing/EncryptionOptions.kt index a52c4722..96258b9b 100644 --- a/pgpainless-core/src/main/kotlin/org/pgpainless/encryption_signing/EncryptionOptions.kt +++ b/pgpainless-core/src/main/kotlin/org/pgpainless/encryption_signing/EncryptionOptions.kt @@ -405,6 +405,10 @@ class EncryptionOptions(private val purpose: EncryptionPurpose, private val api: } fun overrideEncryptionMechanism(encryptionMechanism: MessageEncryptionMechanism) = apply { + require(api.algorithmPolicy.symmetricKeyEncryptionAlgorithmPolicy.isAcceptable( + encryptionMechanism.symmetricKeyAlgorithm)) { + "Provided symmetric encryption algorithm is not acceptable." + } _encryptionMechanismOverride = encryptionMechanism }