diff options
| author | Danilo M. <danix@danix.xyz> | 2026-11-02 10:09:49 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-11-02 10:09:49 +0100 |
| commit | 1c4d04c2089f719e8344f6c4f5cd8488c2320e9f (patch) | |
| tree | b4d3f432f7ebf558af01186601745e0402e135e4 /crypto/common | |
| parent | 9b8a56cb859f45845a620d7de344079e6a91d7c9 (diff) | |
| download | HardenedPass-1c4d04c2089f719e8344f6c4f5cd8488c2320e9f.tar.gz HardenedPass-1c4d04c2089f719e8344f6c4f5cd8488c2320e9f.zip | |
build(deps): update Bouncy Castle to 1.86 and PGPainless to 1.7.8
Bouncy Castle 1.78.1 is affected by GHSA-574f-3g2m-x479,
GHSA-9pwp-9qqc-pr26, GHSA-c3fc-8qff-9hwx and GHSA-qp49-qgx5-5m26, all
fixed by 1.85. PGPainless 1.7.8 is the newest 1.x release. A root
resolution rule keeps every Bouncy Castle module on the catalog version;
before, bcpg 1.77 shipped next to bcprov 1.78.1.
The new stack decrypts the OCB (LibrePGP) packets GnuPG 2.3+ emits by
default, which the old one rejected as "non-standard AEAD". Drop the
NonStandardAEAD error, its bottom sheet and strings, and replace the
mislabelled aead_* fixtures (SHA-1 self-signed keys plus a message
encrypted to an unrelated key) with a real GnuPG 2.5 key and OCB message
that the tests now decrypt. The new fixture is a throwaway test key, so
it is allowlisted in .gitleaksignore by fingerprint.
Fix KeyUtils.isKeyUsable, which compared a Boolean to null and so
accepted every key that parsed, including keys with no encryption
subkey. A signing-only key fixture now covers the rejection path.
Also: migrate the removed SelectUserId.firstMatch and deprecated
addDecryptionPassphrase APIs, keep one copy of the Bouncy Castle
META-INF/LICENSE.md in the APK, and move the existing InvalidPackage
lint baseline entries to the bcpkix 1.86 jar.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'crypto/common')
| -rw-r--r-- | crypto/common/src/main/kotlin/app/passwordstore/crypto/errors/CryptoException.kt | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/crypto/common/src/main/kotlin/app/passwordstore/crypto/errors/CryptoException.kt b/crypto/common/src/main/kotlin/app/passwordstore/crypto/errors/CryptoException.kt index c847889f..af6145d0 100644 --- a/crypto/common/src/main/kotlin/app/passwordstore/crypto/errors/CryptoException.kt +++ b/crypto/common/src/main/kotlin/app/passwordstore/crypto/errors/CryptoException.kt @@ -29,7 +29,7 @@ public data object InvalidKeyException : /** Key failed the [app.passwordstore.crypto.KeyUtils.isKeyUsable] test. */ public data object UnusableKeyException : - KeyManagerException("Given key is not usable for encryption - is it using AEAD?") + KeyManagerException("Given key is not usable for encryption") /** No key matching `keyId` could be found. */ public class KeyNotFoundException(keyId: String) : @@ -46,10 +46,6 @@ public sealed class CryptoHandlerException(message: String? = null, cause: Throw /** The passphrase provided for decryption was incorrect. */ public class IncorrectPassphraseException(cause: Throwable) : CryptoHandlerException(null, cause) -/** The encrypted material is using an incompatible variant of PGP's AEAD standard. */ -public class NonStandardAEAD(cause: Throwable) : - CryptoHandlerException("GnuPG's AEAD implementation is non-standard and unsupported", cause) - /** No keys were passed to the encrypt/decrypt operation. */ public data object NoKeysProvidedException : CryptoHandlerException(null, null) |
