1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2024-11-10 14:35:59 +01:00
Commit graph

377 commits

Author SHA1 Message Date
Ivan Pizhenko
e5aaebe174 issue #91 Improve class UserId 2021-02-21 15:11:09 +02:00
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
81393a7285
Abort decryption process at a depth of 16 nested packets 2021-02-19 21:37:54 +01:00
217609679d
Add SignatureValidationUtil and NotationRegistry classes 2021-02-19 21:22:25 +01:00
ce5f8990ef
Add HashAlgorithmPolicy and SymmetricKeyAlgorithmPolicy 2021-02-19 19:51:44 +01:00
c75a192513
Use ArmoredOutputStreamFactory to hide version string in ascii armor
Partially fixes #82
2021-02-19 19:50:36 +01:00
ea89289852
Check MDC when stream is closed 2021-02-17 21:04:05 +01:00
d2a581de9b
Fix decryption of messages with Wildcard recipient
Fixes #76
2021-02-17 20:20:10 +01:00
506a8b18af
Reject NULL encryption algorithm when decrypting messages
Fixes #77
2021-02-17 20:07:54 +01:00
cb7f38f003
Do no emit an uncompressed compressed-data-packet
Fixes #74
2021-02-17 19:52:30 +01:00
d2202dcb0f
Retry key generation on invalid private key encoding length
Workaround for #70
2021-02-15 23:37:03 +01:00
f2f7305fec
Allow for setting of expiration date during key generation 2021-02-13 12:22:28 +01:00
83117c99cb
Add two more tests 2021-02-12 01:23:32 +01:00
651bb63175
Deprecate withMasterKey(spec) in favor of withPrimaryKey(spec) 2021-02-11 17:18:59 +01:00
10de44ebd3
Add modern key ring archetype 2021-02-11 17:10:22 +01:00
fbb4061164
Switch simpleEcKeyRing over to curve25519 2021-02-11 17:10:00 +01:00
79b2d42f9c
Add support for more elliptic curves and start implementing KeyInfo class 2021-02-11 16:58:00 +01:00
ebf46fa05e
Add tests for SelectUserId 2021-02-07 03:12:59 +01:00
ab39f0e2f3
UserID: prevent double angle brackets around email address 2021-02-07 03:12:35 +01:00
6386579376
De-deprecate SecretKeyRingProtector for now 2021-02-07 03:10:29 +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
567291ac17
Rename UserIdSelectionStrategy -> SelectUserId 2021-02-03 16:38:28 +01:00
138ea0d572
Add convenience method to delete userIds from the primary key 2021-02-03 16:31:45 +01:00
449881bd8d
Add deleteUserIds(keyId, userIdSelectionStrategy, protector) method to SecretKeyRingEditor 2021-02-03 16:26:15 +01:00
eaee5a27fc
Move selection strategies to util package and implement UserIdSelectionStrategy 2021-02-03 16:05:21 +01:00
ff1fb7e07f
Respect Policy when negotiating hash algorithm 2021-01-29 15:15:27 +01:00
d7ef05775d
Add getPrimaryUserId() 2021-01-29 15:08:11 +01:00
4ddbca4908
Expose keySpec.getSubpacketGenerator() and move setPrimaryUserId to builder 2021-01-29 14:51:24 +01:00
4e7c1c023c
Make fields final where possible 2021-01-29 14:48:02 +01:00
bilalashraf123
560effc7c6 Wrong primary user ID when setting withAdditionalUserId 2021-01-29 02:33:43 +05:00
bdae079515
Delete KeyRingCollection 2021-01-23 01:22:29 +01:00
59a14c2918
Make ImplementationFactory methods abstract 2021-01-23 01:09:55 +01:00
bec2fb5ce1
Increase test coverage by writing bunch of JUnit tests 2021-01-22 20:03:20 +01:00
ee1f90e850
Test and implement revocation of single userIDs 2021-01-22 18:28:48 +01:00
c4d670821f
Test if revoked userIds are no longer accepted as valid userIDs 2021-01-22 16:56:41 +01:00
85ed20cfae
Test if subpackets are being preserved when changing expiration time 2021-01-22 16:56:06 +01:00
9aae9ecc93
Add support for checking for revoked userIds 2021-01-22 16:52:09 +01:00
7864add645
Introduce Policy class for default algorithms 2021-01-22 16:50:08 +01:00
39ab6ebddf
Add test for SignatureSubpacketGeneratorUtil 2021-01-22 16:48:30 +01:00
93df791700
Test revocation reason related code 2021-01-21 14:59:55 +01:00
87eab2fb9a
More UserID tests 2021-01-21 14:52:11 +01:00
2880e0bed0
Test SecretKeySelectionStrategy.selectKeysFromKeyRing() 2021-01-21 14:46:28 +01:00
ccae32ca3f
Test getSecretKey() 2021-01-21 14:38:25 +01:00
c35154813a
More code cleanup and tests 2021-01-21 14:35:33 +01:00
bd9a580600
Remove unused BCUtil.publicKeyRingFromSecretKeyRing method
Use KeyRingUtils.publicKeyRingFrom(secertKeys) instead
2021-01-21 14:33:52 +01:00
74c0c8a32e
Fix signature creation using keys without preferred algorithms 2021-01-21 13:47:43 +01:00
3e5ff1fe70
PGPainless 0.2.0-alpha6 2021-01-20 00:51:59 +01:00
21dae7541c
Add test to verify that key with generic certification can be revoked properly 2021-01-19 15:36:31 +01:00
2009f7f7e3
Accept GENERIC_CERTIFICATION signatures when negotiating algorithms 2021-01-19 15:36:06 +01:00
1ce28a09af
Make UserId constructor private in favor of factory methods 2021-01-18 18:12:53 +01:00
b25a78bc29
Fix changing of expiration dates for keys and subkeys 2021-01-18 17:09:57 +01:00
bf8e29caa4
Add KeyRingInfo.getExpirationDate(fingerprint) to get subkey exp dates 2021-01-18 17:09:34 +01:00
21ba97c598
Add SubpacketInspector and SignatureSubpacketGeneratorUtil classes 2021-01-18 17:08:52 +01:00
7ad1cb4169
Add SignatureSubpacket enum 2021-01-18 17:08:20 +01:00
7303c9b47d
Improve logging and verify purpose of signing keys 2021-01-09 21:03:24 +01:00
c89558a01b
Split KeyFlagSelectionStrategies up into Has{Any|All}KeyFlagsSelectionStrategy 2021-01-09 20:55:19 +01:00
83362816d0
toRecipients(): Throw IllegalArgumentException instead of IllegalStateException 2021-01-09 20:44:33 +01:00
4f0493bce7
Test that the encryptionStreamBuilder will not encrypt to keys with missing flags 2021-01-09 20:40:10 +01:00
11c41e7ba7
Allow the user to specify a purpose for encryption 2021-01-09 20:30:34 +01:00
8df752e995
Add HasKeyFlagsSelectionStrategy 2021-01-09 20:16:13 +01:00
83bd157a78
Get rid of generics in selection strategies 2021-01-09 19:23:50 +01:00
e53a21ff77
Add some weird keys and test for multi sub key encryption 2021-01-09 18:57:48 +01:00
63bf5a8e69
Add support for decryption with hidden recipients 2021-01-09 16:16:17 +01:00
f5338e13e7
Get rid of ElGamal_GENERAL and rename ElGamal_ENCRYPT to ElGamal 2021-01-03 17:06:38 +01:00
5143da1311
Verify that keys can carry certain key flags 2021-01-03 17:01:08 +01:00
2378162953
Remove withDefaultKeyFlags method 2021-01-03 16:26:53 +01:00
d014c00aaa
Refactor implementationfactory 2021-01-03 15:52:33 +01:00
82014ef6e5
Fix checkstyle issues 2021-01-03 15:52:18 +01:00
1c1f9d49ab
Introduce ImplementationFactory 2020-12-27 01:56:18 +01:00
c7ede0fc8a
Add junit test for symmetric decryption 2020-12-26 23:36:33 +01:00
7d374f10a7
Allow encryption and decryption using symmetric passphrases in the main API 2020-12-26 19:04:27 +01:00
ff8c6d8b6d Fix NPE when signing key is not found during signature verification 2020-12-16 20:11:45 +01:00
4870bda4f2 Allow specification of signature type 2020-12-16 20:11:28 +01:00
aeed8bf705 SignatureType: Reuse BC signature type codes 2020-12-16 20:11:04 +01:00
ca6089eeac
Add test to verify that primary key can certify§ 2020-12-11 22:54:27 +01:00
5a04669661
Add missing package.info 2020-12-11 22:54:11 +01:00
0194bd5924
Add documentation to PublicKeyAlgorithms 2020-12-11 22:52:28 +01:00
d65646efc6
Add XDH keytype factory method 2020-12-11 22:09:49 +01:00
aff2e6b9f0
Verify that certification key has signing capable algorithm 2020-12-11 22:09:21 +01:00
c38477f277
Add more javadoc 2020-12-11 18:53:10 +01:00
ac08827f91
Move ECDSA and ECDH to ecc subpackage 2020-12-11 18:16:31 +01:00
799265f332
mark RSA_ENCRYPT and RSA_SIGN as deprecated 2020-12-11 18:15:54 +01:00
5f289f4fe1
ElGamal: Deprecate GENERAL 2020-12-11 18:14:36 +01:00
3c88bdde9b
Refactor keytype related classes 2020-12-08 20:02:41 +01:00
4550425609 Wip: Add more elliptic curves, support for {X,Ed}25519 2020-12-08 19:26:57 +01:00
980782e629
Remove deprecated class PGPKeyRing 2020-12-08 19:14:52 +01:00
db2e97b449
Fix some javadoc issues 2020-12-05 00:17:32 +01:00
451313d945
Fix checkstyle issues 2020-12-05 00:01:12 +01:00
1be3d4d7d8
Add documentation to KeyRingUtils 2020-12-03 22:46:59 +01:00
3173ddbc45
Add static factory methods for SecretKeyRingProtector implementations 2020-11-29 19:08:52 +01:00
935af80d14
Add some more utility methods 2020-11-29 19:06:49 +01:00
e1be34e007
Fix checkstyle issues 2020-11-29 16:18:17 +01:00
145fa8c83c
Move unlockSecretKey method to KeyRingUtils 2020-11-29 16:04:15 +01:00
d9d25ed6fb
Merge pull request #31 from wiktor-k/add-expiration
Add ability to modify expiration dates for keys
2020-11-29 15:45:10 +01:00
fa2615b434
Forgot to deprecate encryptor method 2020-11-29 15:35:34 +01:00
cc1e4601e3
replace create{Encryptor,Decryptor} methods with encryptAndOrSign,decryptAndOrVerify 2020-11-29 15:33:54 +01:00
Wiktor Kwapisiewicz
2a672aaf03
Add ability to change expiration date for the primary key 2020-11-27 17:11:56 +01:00
93abfd5517
SecretKeyRingEditor: Add revoke() shortcut method 2020-11-22 21:25:52 +01:00
d7aea4b0f7
Add test for KeyRingInfo class 2020-11-22 21:19:10 +01:00
1174a7f787
Add expiration date of emil test key as constant 2020-11-22 21:07:31 +01:00
c266adb5a5
Fix getExpirationDate method for keys without expiration 2020-11-22 21:07:14 +01:00
5ee17fac69
Deprecate PGPainless's PGPKeyRing 2020-11-22 20:49:07 +01:00
cae93022ad
Add KeyRingInfo class that helps to extract information about key rings 2020-11-22 20:48:09 +01:00
8305fcf0ee
Allow for revocation attributes to be passed in when revoking subkey directly 2020-11-20 12:19:45 +01:00
0edd8b616f
Add support for creating detached revocation certificates 2020-11-20 12:01:39 +01:00
5cdbb125b0
Refactoring: move KeyRingEditor to SecretKeyRingEditor in prep for more editor classes 2020-11-19 17:51:57 +01:00
9f95e7925b De-duplicate KeyPrinter class 2020-11-18 12:20:59 +01:00
4dd2b2f71a
Implement revoking subkeys for key-ids as well 2020-11-13 16:59:55 +01:00
aafc9be888
Switch to Jupiter JUnit for tests 2020-11-13 16:31:59 +01:00
4ed2cdaed9
Introduce UserId utility class 2020-11-13 15:59:28 +01:00
31844c5212
break for-loop of addUserId method when finding key 2020-11-13 15:11:33 +01:00
86c3487ad4
Some code cleanup 2020-11-13 15:08:37 +01:00
9b2ad24bda
Implement revocation of subkeys 2020-11-13 14:32:29 +01:00
b4967db1a2
Implement adding subkeys to keyrings 2020-11-10 17:25:35 +01:00
99a2fcf1c0
Simplify KeyType API 2020-11-07 18:24:12 +01:00
cb3190a0fc
Add JUnit tests for user-id addition/deletion 2020-11-06 18:32:44 +01:00
6159428c9a
Add support for deleting user-ids (untested) 2020-11-03 19:56:35 +01:00
92e2828885
Add support for deleting subKeys (untested) 2020-11-03 19:32:01 +01:00
2d899e0a3b
Allow adding user-ids to sub keys 2020-11-03 19:29:15 +01:00
47b1ccc071
More rigurous testing of key re-encryption 2020-10-30 13:30:21 +01:00
7c102334ed
expand expression to simplify debugging 2020-10-30 13:30:04 +01:00
70ad4a274e
Change method name to toNoPassphrase() 2020-10-30 13:29:18 +01:00
d0580918fa
Fix checkstyle issues 2020-10-30 12:38:59 +01:00
8097a9d964
Passphrase.isEmpty: also check for validity 2020-10-30 12:31:52 +01:00
423a3f1354
Merge pull request #18 from wiktor-k/fix-empty-passphrase
Fix creating keys with `Passphrase.emptyPassphrase()`
2020-10-30 12:31:06 +01:00
04420f8dac
Extract secret key checksum algorithm into constant 2020-10-30 12:28:11 +01:00
Wiktor Kwapisiewicz
59fe53c594
Fix creating keys with Passphrase.emptyPassphrase()
Previously the code supplied `null` to BouncyCastle's
encryptor/decryptor builder's build method and that caused
NullPointerException to be thrown.

The fix checks if the passphrase is empty and omits the BouncyCastle
builder in that case.

Fixes #16.
2020-10-30 12:22:05 +01:00
Wiktor Kwapisiewicz
e30d0f6293
Remove RSA_SIGN and RSA_ENCRYPT as they are deprecated
This change removes two mechanisms that are deprecated in RFC 4880. The
spec explicitly mentions that "RSA Encrypt-Only (2) and RSA Sign-Only
are deprecated and SHOULD NOT be generated" [0].

The remaining RSA_GENERAL key type was renamed to just RSA for ease of
use for developers.

[0]: https://tools.ietf.org/html/rfc4880#section-9.1
2020-10-30 11:48:28 +01:00
cdd1bf4198
Add documentation and throw NotYetImplementedException in stubs 2020-10-29 15:15:13 +01:00
99af9e0171
Re-encrypting whole keyring successful 2020-10-25 20:43:09 +01:00
623c4c930d
Adding user-ids works 2020-10-25 19:54:03 +01:00
651a69c118
Work on the editing api 2020-10-23 16:44:21 +02:00
207c41d411
Add initial draft interface for a key editor API 2020-10-22 01:20:43 +02:00
f21231ad53
Trim user-ids 2020-10-20 23:23:25 +02:00
c06bedd656
Introduce SignatureType enum 2020-10-20 22:59:06 +02:00
1b389f678a
Fix checkstyle issues 2020-10-20 22:58:45 +02:00
9670e5ecb9
Prevent additional user-id from being equal to primary user-id 2020-10-20 22:14:56 +02:00
2f85c9a8d0
Test if userId is present 2020-10-16 13:18:07 +02:00
11e7bc69fc
Fix NPE by initializing the SignatureGenerator 2020-10-16 13:11:46 +02:00
8c30db9bf1
Wip: Allow for additional user-ids to be added 2020-10-16 12:46:58 +02:00
6a4fa47c12
Remove unused imports 2020-09-09 20:49:31 +02:00
2af60454f5
Add KeyRingProtectionSettings.secureDefaultSettings() factory method 2020-08-31 12:37:34 +02:00
20f32926bb
Add Passphrase.fromPassword() and PasswordBasedSecretKeyRingProtector.forKey() factory methods 2020-08-31 12:26:07 +02:00
01f81fabaa
Add OnePassSignature verification test 2020-08-30 13:16:47 +02:00
7de04c2949
Add handy shortcut methods to the API 2020-08-24 16:57:14 +02:00
f10d698a09
Remove dependency on jetbrains annotations 2020-08-24 16:44:14 +02:00
4f6a7d2838
Fix checkstyle issues 2020-08-24 16:26:29 +02:00
848a7a428b
Add handy default methods for the API and add documentation 2020-08-24 16:00:23 +02:00
65b670740e Add support for detached signatures 2020-08-24 14:56:42 +02:00
0a3f688b23
Add documentation for openpgp4fpr fingerprint methods 2020-07-10 20:31:33 +02:00
46af22cc50
Add toUri/fromUri methods to OpenPgpV4Fingerprint 2020-07-10 18:17:29 +02:00
6c449b86af
Move charset utf8 to static constant 2020-07-10 18:16:22 +02:00
f108ccc30c
Fix compatibility with java8 2020-04-21 17:34:21 +02:00
2c008ecf50
Add bcpg as transitive dependency 2020-04-11 12:48:07 +02:00
ba6e850f6f
Improve logging of tests 2020-04-11 11:35:48 +02:00
5fa05e08fc
Add test for password protected keys 2020-01-14 22:11:01 +01:00
9c1f6fc812
return null-cryptors for unprotected keys 2020-01-14 22:10:07 +01:00
4b61745c46
Add default constructor and fix condition 2020-01-14 22:09:13 +01:00
795a7783d4
Remove unused import 2020-01-12 23:45:41 +01:00
5b249f5b3d
Add junit test of Passphrase 2020-01-12 23:42:53 +01:00
33183cb899
Add encrypted key pair for cryptie 2020-01-12 23:40:39 +01:00
fd13a1278a
Improve BCUtilTest 2020-01-12 23:34:47 +01:00
745e296799
Move GenerateKeyTest to generate package 2020-01-12 23:34:12 +01:00
fa89a4d3b3
Test UnprotectedKeysProtector 2020-01-12 20:33:31 +01:00
750d93b009
Easier generation of simple keys with password 2020-01-12 20:32:55 +01:00
700f9cbca4
Add JUnit tests for Wildcard selection strategy 2020-01-12 20:04:23 +01:00
244f13308d
JUnit tests for XMPP selection strategy 2020-01-12 19:57:29 +01:00
db15a3e962
Fix XMPP key selection strategy by auto appending xmpp: if missing 2020-01-12 19:56:16 +01:00
e7ff9f0354
JUnit test for Email selection strategy§ 2020-01-12 19:55:34 +01:00
1c576bd647
Add ignored test for generating ec key 2020-01-12 19:17:58 +01:00
5a7ced81a8
Add test key with email uid 2020-01-12 19:17:28 +01:00
064ff5b962
Remove unused imports 2020-01-12 19:15:39 +01:00
790b0cf7de
Add encrypt/decrypt test using existing keys 2020-01-12 18:36:03 +01:00
6dce063685
Add Whitelist selection strategy test 2020-01-12 18:35:42 +01:00
09e0a5360d
Reuse MultiMap constructor of Whitelist selection strategy 2020-01-12 18:34:21 +01:00
8a2051904a
Further refactoring of KeyRingBuilder 2020-01-12 16:37:24 +01:00
81c3a471a7
Refactor KeyRingBuilder 2020-01-12 15:40:50 +01:00
79b04d1535
Refactor KeyRingReader 2020-01-12 13:11:10 +01:00
6e5dce8261
Reorganize tests 2020-01-11 13:11:14 +01:00
18abebbf9e
Fix ProviderFactoryTest 2020-01-10 22:16:42 +01:00
218c068ddb
Work on Tests. Disable costly freshkeys tests for now. 2020-01-10 22:07:54 +01:00
cd4bf1ef96
Rely on ProviderFactory for access to BouncyCastleProvider 2020-01-10 19:03:04 +01:00
ead54cb00b
Fix checkstyle issues 2020-01-10 18:46:31 +01:00
5134463883
Fix animalsniffer bugs! 2020-01-10 18:42:39 +01:00
b615ef74b0
Further refactoring of SignatureVerifyingInputStream 2020-01-10 18:31:43 +01:00
2902c81b6c
Simplify integrity protection assignment of resultBuilder 2020-01-10 18:31:27 +01:00
dd976b7319
Add hint about mutli assignment 2020-01-10 18:30:48 +01:00
db09a0ffbe
First Refactoring of DecryptionStreamFactory 2020-01-10 17:12:13 +01:00
be33206d03
Refactor SignatureVerifyingInputStream 2020-01-10 15:57:15 +01:00
ad070d0c34
Refactor EncryptionStream 2020-01-10 15:43:22 +01:00
530a22ba0e
Improve tests and add signatures to result 2020-01-10 15:12:04 +01:00
cbb9b00b88 Rename KeyFlag.fromInteger -> fromBitmask 2020-01-09 20:53:46 +01:00
8780d5a7b0 algorithm: Use ConcurrentHashMap instead of HashMap
Signed-off-by: Paul Schaub <vanitasvitae@fsfe.org>
2020-01-09 20:53:42 +01:00
2c816dd84c
Use ProviderFactory instead of 'BC' 2020-01-09 20:45:21 +01:00
9a9f706e83
Introduce ProviderFactory.
The goal is to become Provider-agnostic one day
2020-01-09 20:20:51 +01:00
ed440e4434
Make toString() @NonNull 2020-01-09 20:00:28 +01:00
e9b5e6278a
Use StandardCharsets.UTF_8 2020-01-09 20:00:17 +01:00
2e3a435d4e
Wildcard Selection Strategy: make inner classes static 2020-01-09 19:58:52 +01:00