1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2024-07-01 15:56:43 +02:00
Commit graph

231 commits

Author SHA1 Message Date
Paul Schaub 5bb4fd3687
Add PublicKeyAlgorithmPolicy to reject weak public keys
BCs PGPPublicKey.getBitStrenght() appears to fail to recognize some elliptic curves.
In such cases, bitStrength is reported as -1.
I added BCUtil.getBitStrength(publicKey) to manually determine the bit strenght by OID.
See https://github.com/bcgit/bc-java/issues/972 for an upstream bug report.
2021-06-11 16:20:29 +02:00
Paul Schaub 6b99f0aadc
Add tests for PGPKeyRingCollection 2021-06-10 16:21:04 +02:00
Paul Schaub ed8584df95
Add policy tests 2021-06-10 15:41:44 +02:00
Paul Schaub 7696f120e6
Even more EncryptionOptions tests 2021-06-10 15:18:31 +02:00
Paul Schaub 762d9d4803
More EncryptionOptions tests 2021-06-10 15:04:21 +02:00
Paul Schaub 512825aad4
Add test for EncryptionOptions 2021-06-10 14:25:00 +02:00
Paul Schaub a2d0a75d42
Add SignatureStructureTest to test various signature field accessors 2021-06-10 13:37:10 +02:00
Paul Schaub 9b9064beae
Small code style fixes and optimizations 2021-06-10 12:42:48 +02:00
Paul Schaub 845779d40b
Avoid deprecated methods 2021-06-10 12:42:03 +02:00
Paul Schaub 27370fa925
Bump Bouncycastle to 1.69 2021-06-10 12:41:12 +02:00
Paul Schaub 1ad23366a7
Implement KeyRingInfo.getKeysWithFlag() and KeyRingInfo.getExpirationDateForUse() 2021-05-31 15:13:28 +02:00
Paul Schaub 8618d1faea
More tests 2021-05-31 13:59:56 +02:00
Paul Schaub b07cb2467b
Alter tests to cover untested KeyRingBuilderInterface methods 2021-05-30 18:05:38 +02:00
Paul Schaub 8e02df9a3e
Test FileBasedMultiPassStrategy 2021-05-29 14:13:08 +02:00
Paul Schaub 82536eaa77
Improve support for PGP[Secret|Public]KeyRingCollections 2021-05-29 13:52:29 +02:00
Paul Schaub 1a5baa0fa4
Clean up BCUtils class 2021-05-29 12:43:31 +02:00
Paul Schaub 13c7572c8c
Restore functionality of MissingPublicKeyCallback + JUnit test it 2021-05-29 12:19:12 +02:00
Paul Schaub 7bbc23d826
Test MissingDecryptionMethodException 2021-05-28 23:29:41 +02:00
Paul Schaub fd0734b247
Remove legacy symmetric encryption code 2021-05-28 23:22:11 +02:00
Paul Schaub 77800f26e8
SecretKeyRingEditor: UserIDs only reside on primary keys 2021-05-28 23:14:20 +02:00
Paul Schaub 57c11a63e5
Remove unused throws declarations 2021-05-28 22:39:27 +02:00
Paul Schaub c255439ee2
Cleanse duplicated code 2021-05-28 22:37:16 +02:00
Paul Schaub a23f2c4401
Delete SelectSignatureFromKey class 2021-05-28 22:21:03 +02:00
Paul Schaub 826c761e69
Test invalid keys cannot sign behavior 2021-05-28 21:41:02 +02:00
Paul Schaub 9883d1537b
Move EncryptionPurpose to own class 2021-05-27 15:52:43 +02:00
Paul Schaub 4e63313c91 Do some first prototype algorithm negotiation 2021-05-25 14:24:38 +02:00
Paul Schaub 909f0e7be3 Work on KeyRingInfo 2021-05-25 14:24:26 +02:00
Paul Schaub 6cb9091b2a Work on signaturePicker 2021-05-25 14:24:16 +02:00
Paul Schaub a30767eb91 Fix tests 2021-05-25 14:24:10 +02:00
Paul Schaub d70ee86468 Prevent plaintext encryption 2021-05-25 14:23:58 +02:00
Paul Schaub 89a0adddd8 Reworking encryption/decryption API. 2021-05-25 14:23:42 +02:00
Paul Schaub 7e2c89b1b3 Trim passphrases 2021-05-20 12:41:51 +02:00
Paul Schaub a72cff28d8
Improve user-id revocation tests 2021-05-17 18:28:37 +02:00
Paul Schaub 197cfab0d6
Respect symmetric algorithm policy during decryption and throw UnacceptableAlgorithmException if policy is violated 2021-05-17 13:47:46 +02:00
Paul Schaub 225bc78ee1
Implement signature verification of cleartext-signatures 2021-05-15 18:44:03 +02:00
Paul Schaub 14ff0e9cc5
ArmorUtils: Add support for messageIds 2021-05-15 16:24:01 +02:00
Paul Schaub b05f6887bd Better support for Armor headers 2021-05-15 15:57:42 +02:00
Paul Schaub 9358e58fb3
Improve CachingSecretKeyRingProtector 2021-05-14 18:55:26 +02:00
Paul Schaub 95121e2a55
Get rid of redundant SecretKeyRingProtector implementations. 2021-05-14 18:37:47 +02:00
Paul Schaub 8313895f26
Remove redundant exceptions 2021-05-14 13:20:16 +02:00
Paul Schaub 5a56949dd7
Throw WrongPassphraseException when wrong passphrase is provided to unlock secret key 2021-05-14 13:18:34 +02:00
Paul Schaub ec611d7c5f
OpenPgpV4Fingerprint: Support pretty print format 2021-05-08 14:01:42 +02:00
Paul Schaub 431a65517e
Add documentation to signature related classes 2021-05-03 13:37:47 +02:00
Paul Schaub ec85f53bb6
Incorporate feedback from @IvanPizhenko. Thanks! 2021-04-30 10:23:12 +02:00
Paul Schaub 64cc9ecca4 Proper Signature Verification 2021-04-30 09:49:19 +02:00
Paul Schaub 6ee8a9416f
Prevent decryption of messages using SED instead of SEIP packets and create dedicated exceptions for MDC related errors 2021-04-27 12:27:25 +02:00
Ivan Pizhenko eb47e5caa3
issue #107 Add method KeyRingInfo.isFullyEncrypted() (#110)
Add method KeyRingInfo.isFullyEncrypted()

Fixes #107 

Co-authored-by: Ivan Pizhenko <IvanPizhenko@users.noreply.github.com>
2021-04-27 11:06:04 +02:00
Paul Schaub 2c4a3fca6a
Introduce OpenPgpMetadata.FileInfo class for setting/getting file name, mod date, encoding... 2021-04-25 00:28:48 +02:00
Paul Schaub 39e87f9ce4
Fix checkstyle issues 2021-04-10 13:09:32 +02:00
DenBond7 43647f3145 Added PGPKeyRingCollection. Added tests to KeyRingReaderTest to cover parsing of private/pub keys combinations. 2021-04-10 13:08:04 +02:00
DenBond7 8e569e7931 Added tests to KeyRingReaderTest to cover different cases of the source. 2021-04-10 13:08:04 +02:00
Paul Schaub d0a162ce74 Merge branch 'parse_public_key_ring_collection_from_armored_source' 2021-03-23 01:06:37 +01:00
Paul Schaub 46140e6561
Fix checkstyle issues in tests and make small adjustments 2021-03-23 01:06:15 +01:00
Paul Schaub 883c819536
GenerateKeyTest: Print public key instead of secret key 2021-03-18 21:33:39 +01:00
Paul Schaub 8c97b6ead1
In PasswordBasedSecretKeyRingProtector.forKey(ring, passphrase): Return passphrase also for subkeys
Fixes #97, thanks @DenBond7
2021-03-18 21:28:08 +01:00
DenBond7 fb82f711d8
Updated KeyRingReaderTest. Added publicKeyRingCollectionFromNotArmoredStream() 2021-03-17 14:55:05 +02:00
DenBond7 f34c787a4d
Added working tests(string, bytes) to EncryptDecryptTest 2021-03-17 13:49:31 +02:00
DenBond7 447593a65d
Added tests for PGPainless.readKeyRing().publicKeyRingCollection()(different resources) 2021-03-17 12:51:02 +02:00
Paul Schaub c5fbdbbc9b
Disable MultiPassphraseEncryptionTest until https://github.com/pgpainless/pgpainless/issues/72 is fixed 2021-02-27 15:22:29 +01:00
Paul Schaub bfab4b60f0
Introduce parametrized tests to also test the JceImplementationFactory 2021-02-25 23:27:08 +01:00
Paul Schaub 9587d52f29
Add test for Feature class 2021-02-25 20:02:42 +01:00
Paul Schaub 577ee143b5
Add NotationRegistryTest 2021-02-25 19:57:18 +01:00
Ivan Pizhenko e5aaebe174 issue #91 Improve class UserId 2021-02-21 15:11:09 +02:00
Paul Schaub 3e75d325a8 Stabilize test
The test was sometimes failing, as generating RSA keys can take longer than 1 second, which would result in the delta in the check being exceeded
2021-02-20 01:08:51 +01:00
Paul Schaub 81393a7285
Abort decryption process at a depth of 16 nested packets 2021-02-19 21:37:54 +01:00
Paul Schaub c75a192513
Use ArmoredOutputStreamFactory to hide version string in ascii armor
Partially fixes #82
2021-02-19 19:50:36 +01:00
Paul Schaub ea89289852
Check MDC when stream is closed 2021-02-17 21:04:05 +01:00
Paul Schaub d2a581de9b
Fix decryption of messages with Wildcard recipient
Fixes #76
2021-02-17 20:20:10 +01:00
Paul Schaub f2f7305fec
Allow for setting of expiration date during key generation 2021-02-13 12:22:28 +01:00
Paul Schaub 83117c99cb
Add two more tests 2021-02-12 01:23:32 +01:00
Paul Schaub 651bb63175
Deprecate withMasterKey(spec) in favor of withPrimaryKey(spec) 2021-02-11 17:18:59 +01:00
Paul Schaub 79b2d42f9c
Add support for more elliptic curves and start implementing KeyInfo class 2021-02-11 16:58:00 +01:00
Paul Schaub ebf46fa05e
Add tests for SelectUserId 2021-02-07 03:12:59 +01:00
Ivan Pizhenko 72e0dea20f remove unused imports 2021-02-04 09:56:08 +02:00
Ivan Pizhenko a807ddbb4e use PGPainless.readKeyRing().secretKeyRing() 2021-02-04 09:45:08 +02:00
Ivan Pizhenko c9982ccfe6 Additional user id manipulation test 2021-02-03 23:09:02 +02:00
Paul Schaub eaee5a27fc
Move selection strategies to util package and implement UserIdSelectionStrategy 2021-02-03 16:05:21 +01:00
Paul Schaub d7ef05775d
Add getPrimaryUserId() 2021-01-29 15:08:11 +01:00
Paul Schaub bec2fb5ce1
Increase test coverage by writing bunch of JUnit tests 2021-01-22 20:03:20 +01:00
Paul Schaub ee1f90e850
Test and implement revocation of single userIDs 2021-01-22 18:28:48 +01:00
Paul Schaub c4d670821f
Test if revoked userIds are no longer accepted as valid userIDs 2021-01-22 16:56:41 +01:00
Paul Schaub 85ed20cfae
Test if subpackets are being preserved when changing expiration time 2021-01-22 16:56:06 +01:00
Paul Schaub 39ab6ebddf
Add test for SignatureSubpacketGeneratorUtil 2021-01-22 16:48:30 +01:00
Paul Schaub 93df791700
Test revocation reason related code 2021-01-21 14:59:55 +01:00
Paul Schaub 87eab2fb9a
More UserID tests 2021-01-21 14:52:11 +01:00
Paul Schaub 2880e0bed0
Test SecretKeySelectionStrategy.selectKeysFromKeyRing() 2021-01-21 14:46:28 +01:00
Paul Schaub ccae32ca3f
Test getSecretKey() 2021-01-21 14:38:25 +01:00
Paul Schaub c35154813a
More code cleanup and tests 2021-01-21 14:35:33 +01:00
Paul Schaub 74c0c8a32e
Fix signature creation using keys without preferred algorithms 2021-01-21 13:47:43 +01:00
Paul Schaub 3e5ff1fe70
PGPainless 0.2.0-alpha6 2021-01-20 00:51:59 +01:00
Paul Schaub 21dae7541c
Add test to verify that key with generic certification can be revoked properly 2021-01-19 15:36:31 +01:00
Paul Schaub b25a78bc29
Fix changing of expiration dates for keys and subkeys 2021-01-18 17:09:57 +01:00
Paul Schaub c89558a01b
Split KeyFlagSelectionStrategies up into Has{Any|All}KeyFlagsSelectionStrategy 2021-01-09 20:55:19 +01:00
Paul Schaub 4f0493bce7
Test that the encryptionStreamBuilder will not encrypt to keys with missing flags 2021-01-09 20:40:10 +01:00
Paul Schaub 8df752e995
Add HasKeyFlagsSelectionStrategy 2021-01-09 20:16:13 +01:00
Paul Schaub 83bd157a78
Get rid of generics in selection strategies 2021-01-09 19:23:50 +01:00
Paul Schaub e53a21ff77
Add some weird keys and test for multi sub key encryption 2021-01-09 18:57:48 +01:00
Paul Schaub 63bf5a8e69
Add support for decryption with hidden recipients 2021-01-09 16:16:17 +01:00
Paul Schaub f5338e13e7
Get rid of ElGamal_GENERAL and rename ElGamal_ENCRYPT to ElGamal 2021-01-03 17:06:38 +01:00
Paul Schaub 5143da1311
Verify that keys can carry certain key flags 2021-01-03 17:01:08 +01:00