Commit Graph

384 Commits

Author SHA1 Message Date
Paul Schaub 864bfad80c Add test for encryption / decryption, signing with missing secret subkey 2022-04-07 19:42:58 +02:00
Paul Schaub a22336a795 Create dedicated KeyException class for key-related exceptions. 2022-04-07 19:42:58 +02:00
Paul Schaub 0bce68d6ee
Add shortcut SigningOptions.addSignature() method 2022-04-04 20:18:15 +02:00
Paul Schaub e601f8dbda
In Encrypt example: Read keys from string 2022-04-04 19:49:28 +02:00
Paul Schaub c8a1ca5b29
Make use of DateUtil.now() in test 2022-04-04 12:53:47 +02:00
Paul Schaub 50bcb6a135 Fix changelog and change method signature 2022-04-02 16:18:12 +02:00
Paul Schaub f8e66f4d61 Add ProducerOptions.applyCRLFEncoding()
Enabling it will automatically apply CRLF encoding to input data.
Further, disentangle signing from the encryption stream
2022-04-02 16:18:12 +02:00
Paul Schaub e8b03834cb
Annotate fromId(code) methods with Nullable and add Nonnull requireFromId(code) methods 2022-03-22 15:09:09 +01:00
Paul Schaub 3585203557
Prettify user-id info on armor 2022-03-21 16:44:59 +01:00
Simon Frankenberger e569c2c991
ArmorUtils now prints out the primary user-id and brief information about other user-ids 2022-03-21 16:09:45 +01:00
Paul Schaub 9e0aa95a5a
Add documentation for the DecryptOrVerify examples 2022-03-16 21:29:34 +01:00
Paul Schaub d4d29553ec
Add decryption example 2022-03-15 15:10:23 +01:00
Paul Schaub ffdbd21491 Implement configuration option for SignerUserId subpacket verification level.
By default we ignore SignerUserId subpackets on signatures.
This behavior can be changed by calling Policy.setSignerUserIdValidationLevel().
Right now, STRICT and DISABLED are available as options, but it may make sense to implement
another option PARTIALLY, which will accept signatures made by key with user-id 'A <foo@bar>'
but where the sig contains a signer user id of value 'foo@bar' for example.
2022-03-14 11:10:12 +01:00
Paul Schaub 6b9b956c2c
Add OpenPgpFingerprint.parse(String) 2022-03-10 12:22:02 +01:00
Paul Schaub 8f473b513f
Add support for OpenPGP v5 fingerprints.
Obviously we need support for key.getFingerprint() in BC, but once
that is there, this should magically start working.
2022-03-10 12:01:12 +01:00
Paul Schaub 9d160ef047
Reject subkeys with predating binding signatures 2022-03-07 12:17:45 +01:00
Paul Schaub 10e72f6773
Allow custom key creation dates during generation 2022-03-07 11:08:59 +01:00
Paul Schaub 5b9e72d42c
Add KeyRingInfo.isUsableForEncryption() 2022-03-06 14:58:36 +01:00
Paul Schaub 1949cc5eea
Fix generics of CertificationSubpackets callback 2022-03-02 11:15:07 +01:00
Paul Schaub 35dd4f9a67
Fix unused import 2022-03-01 17:37:24 +01:00
Paul Schaub d55d6a1686
Improve RegExs for extracting email addresses from keys
Based on https://github.com/pgpainless/pgpainless/pull/257/
Thanks @bratkartoffel for the initial proposed changes
2022-03-01 12:14:09 +01:00
feri 7a77d0847a Support multiline comments in ProducerOption.setComment(). 2022-02-24 17:46:45 +01:00
feri 928fa12b51
Add new ProducerOption setComment() for Ascii armored EncryptionStreams. (#254)
* Add new ProducerOption setComment() for Ascii armored EncryptionStreams.
2022-02-24 00:51:16 +01:00
Paul Schaub 1753cef10e Simplify handling of cleartext-signed data 2022-02-23 18:45:29 +01:00
Paul Schaub e8da3b30d8 Yet another patch for ASCII armor detection -.- 2022-02-15 14:23:03 +01:00
Paul Schaub 458b4f1f78 Fix detection of unarmored data in detached signature verification 2022-02-11 14:07:29 +01:00
Paul Schaub 01839728f0 Remove workaround for publicKey.getBitStrength() == -1 in BC
see https://github.com/bcgit/bc-java/issues/972
2022-01-15 02:46:41 +01:00
Paul Schaub e374951ed0 Remove ProofUtil.
This does not belong here.
2022-01-15 02:46:41 +01:00
Paul Schaub e7f583c1af Fix KeyRingInfo.get*Algorithm(keyId) 2022-01-15 02:45:21 +01:00
Paul Schaub 9de196d6c5 Fix test for algorithm preference extraction 2022-01-15 02:45:10 +01:00
Paul Schaub b1bde161b4
Fix typos and wording 2021-12-28 13:53:25 +01:00
Paul Schaub ce7b69269b
Various code cleanup 2021-12-28 13:32:50 +01:00
Paul Schaub 59f1a85887
Fix more code issues 2021-12-28 12:30:52 +01:00
Paul Schaub f3b7286eaf Introduce and use DateUtil.toSecondsPrecision 2021-12-28 01:42:12 +01:00
Paul Schaub d0ef8581e8
Add RevokeUserIdsTest 2021-12-27 13:49:31 +01:00
Paul Schaub a0e9c1f555
Add SelectUserId.byEmail() 2021-12-27 13:36:13 +01:00
Paul Schaub 245376d7d0
Remove KeyRingUtils.deleteUserId() in favor of revoking SecretKeyRingEditor.removeUserId() methods 2021-12-27 13:35:58 +01:00
Paul Schaub 3aa9e2915a
Re-certify expired user-ids when changing key expiration date 2021-12-20 13:28:16 +01:00
Paul Schaub 710f961984 Rework key modification API.
Fixes #225
2021-12-20 13:01:58 +01:00
Paul Schaub 78b668880b
Delete unused TestImplementationFactoryProvider 2021-12-14 16:57:50 +01:00
Paul Schaub cf90c25afc
rename invocationContextProvider to TestAllImplementations 2021-12-14 16:56:29 +01:00
Paul Schaub c331dee6b1
Replace @ArgumentSource with @TestTemplate, @ExtendWith 2021-12-14 16:55:04 +01:00
Paul Schaub 2ebf4be39c
Replace @MethodSource annotation with @ArgumentsSource 2021-12-14 15:47:53 +01:00
Paul Schaub a66b45c3d2
Further sourcing of PGPObjectFactory from ImplementationProvider 2021-12-14 15:03:45 +01:00
Paul Schaub 60f7a9d9ec
Source PGPObjectFactory from ImplementationProvider 2021-12-14 14:43:16 +01:00
Paul Schaub 1681f3934f
Fix method name getCommentHeader 2021-12-14 14:42:53 +01:00
Paul Schaub f8968fc075
Add test for CachingSecretKeyRingProtector.replacePassphrase(*) 2021-12-13 13:28:53 +01:00
Paul Schaub 5108b81252
Add test to ensure PGPainless will refuse to decrypt message with incapable key 2021-12-13 12:43:08 +01:00
Paul Schaub 296f811b7f Merge branch 'KO' 2021-12-07 19:08:03 +01:00
Paul Schaub 82cbe467f2
Introduce iteration limit to prevent resource exhaustion when reading keys 2021-12-06 17:11:42 +01:00