1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2025-09-09 18:29:39 +02:00

Replace deprecated method usage and make policy injectable in UnlockSecretKey utility class

This commit is contained in:
Paul Schaub 2025-03-19 10:22:07 +01:00
parent 77890cc933
commit 7a5ece0907
Signed by: vanitasvitae
GPG key ID: 62BEE9264BF17311

View file

@ -18,6 +18,7 @@ import org.pgpainless.bouncycastle.extensions.isEncrypted
import org.pgpainless.exception.KeyIntegrityException
import org.pgpainless.exception.WrongPassphraseException
import org.pgpainless.key.util.PublicKeyParameterValidationUtil
import org.pgpainless.policy.Policy
import org.pgpainless.util.Passphrase
class UnlockSecretKey {
@ -31,17 +32,19 @@ class UnlockSecretKey {
protector: SecretKeyRingProtector
): PGPPrivateKey {
return if (secretKey.isEncrypted()) {
unlockSecretKey(secretKey, protector.getDecryptor(secretKey.keyID))
unlockSecretKey(secretKey, protector.getDecryptor(secretKey.keyIdentifier))
} else {
unlockSecretKey(secretKey, null as PBESecretKeyDecryptor?)
}
}
@JvmStatic
@JvmOverloads
@Throws(PGPException::class)
fun unlockSecretKey(
secretKey: OpenPGPSecretKey,
protector: SecretKeyRingProtector
protector: SecretKeyRingProtector,
policy: Policy = PGPainless.getInstance().algorithmPolicy
): OpenPGPPrivateKey {
val privateKey =
try {
@ -59,7 +62,7 @@ class UnlockSecretKey {
throw PGPException("Cannot decrypt secret key.")
}
if (PGPainless.getPolicy().isEnableKeyParameterValidation()) {
if (policy.isEnableKeyParameterValidation()) {
PublicKeyParameterValidationUtil.verifyPublicKeyParameterIntegrity(
privateKey.keyPair.privateKey, privateKey.keyPair.publicKey)
}
@ -68,10 +71,12 @@ class UnlockSecretKey {
}
@JvmStatic
@JvmOverloads
@Throws(PGPException::class)
fun unlockSecretKey(
secretKey: PGPSecretKey,
decryptor: PBESecretKeyDecryptor?
decryptor: PBESecretKeyDecryptor?,
policy: Policy = PGPainless.getInstance().algorithmPolicy
): PGPPrivateKey {
val privateKey =
try {
@ -89,7 +94,7 @@ class UnlockSecretKey {
throw PGPException("Cannot decrypt secret key.")
}
if (PGPainless.getPolicy().isEnableKeyParameterValidation()) {
if (policy.isEnableKeyParameterValidation()) {
PublicKeyParameterValidationUtil.verifyPublicKeyParameterIntegrity(
privateKey, secretKey.publicKey)
}