1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2024-11-05 12:05:58 +01:00
Commit graph

1385 commits

Author SHA1 Message Date
bf9bf94fb0
Integrate WoT by adding EncryptionOptions.addAuthenticatableRecipients() method 2023-07-21 16:38:34 +02:00
9d93c0f5ae
Add CertificateAuthority interface to enable integration with pgpainless-wot 2023-07-21 16:25:29 +02:00
59fa51bdf3
Expose SignatureValidator methods 2023-07-19 11:47:53 +02:00
f46790be00
Require UTF8 for KeyRingBuilder.addUserId(byte[]) 2023-07-12 16:49:38 +02:00
d3fe850c95
Initial implementation of 'change-key-password' command of SOP-07 2023-07-12 00:40:59 +02:00
e61d414a98
Manually checkout SignatureSubpacketsUtil methods for wot 2023-07-07 11:26:55 +02:00
6487cf2371
Remove unused Certification class 2023-07-07 11:25:26 +02:00
d52968514c
Add methods to access delegations and 3rd-party certifications from keys 2023-07-07 11:25:08 +02:00
172972fe29
Add utility methods to KeyRingInfo 2023-07-07 11:24:43 +02:00
30481cd510
Fix unreliable unit test
Fixes #389
2023-07-07 11:07:14 +02:00
50bbdddc73
Update comment of KeyRingReader.publicKeyRingCollection() 2023-07-07 10:47:02 +02:00
4cc8054cff
KeyRingReader.readPublicKeyRingCollection: Handle secret keys as public keys 2023-07-07 10:43:41 +02:00
bbdb300814
Add test to verify correct behavior dealing with non-utf8 userID 2023-07-07 10:42:32 +02:00
f37aa1097c
Prevent IAE when encountering non-UTF8 User-ID on a public key
Fixes #392
2023-07-07 10:42:18 +02:00
4be2956469
Remove unused methods from ImplementationFactory 2023-06-27 23:22:23 +02:00
0505b943de
Fix javadoc 2023-06-27 14:56:29 +02:00
f7576abd35
Minimal revocation certificate test: Test merging 2023-06-20 17:37:18 +02:00
53d6260210
Implement method to create minimal revocation certificate.
Fixes #386
2023-06-20 17:30:19 +02:00
2a7c6af022
Rename SecretKeyRingEditor.createRevocationCertificate() to createRevocation() 2023-06-20 16:41:46 +02:00
beccd6c5c7
Postpone removal of OpenPgpMetadata to 1.6.X 2023-06-19 12:36:59 +02:00
c962b7920b
Update workaround description in KeyInfo 2023-06-19 12:36:59 +02:00
90626a8a76
Add SignatureSubpacketsUtil.getRegularExpressions() 2023-06-19 11:27:49 +02:00
82cea93e7b
Replace JcaPGPObjectFactory with custom PGPObjectFactory.
Workaround for https://github.com/bcgit/bc-java/issues/1428
2023-06-15 15:20:08 +02:00
2b119e8214
Basic V6 parsing test (only check non-crashing) 2023-06-15 14:41:41 +02:00
6b145475a8
Add test for anonymous recipients 2023-06-15 14:28:56 +02:00
e9cd6c55cf
Bump Bouncycastle 2023-06-15 14:28:45 +02:00
558e6693e6 Add javadoc 2023-06-15 14:10:52 +02:00
344f1fc67c Allow hidden recipients using wildcard keyIDs 2023-06-15 14:10:52 +02:00
383c9799c3
Add test for minimal revocation certificate 2023-06-13 19:46:56 +02:00
8369333355
Clean unused methods from SignatureUtils 2023-06-12 15:04:57 +02:00
814421fe79
Test constructor of RevocationState.softRevoked() requires non-null date 2023-06-12 15:04:57 +02:00
b9c2e8dfe9
Add test for weak public key behavior 2023-06-12 14:27:07 +02:00
1fca51d771
SigningOptions: Add methods to sign with a single, chosen signing subkey 2023-06-08 14:04:06 +02:00
5aabd1ced4
Fix faulty bit-strength policy check for signing subkeys 2023-06-08 13:54:20 +02:00
25cde8225d
Remove outdated javadoc @throws annotations 2023-06-08 03:18:24 +02:00
7769ff8173
Direct-Key signatures are calculated over the signee only, not the signer plus signee 2023-06-06 11:00:44 +02:00
d3ef513960
Fix checkstyle issues 2023-06-05 21:12:16 +02:00
41e663e25b
Allow setting custom version header when encrypting/signing message 2023-06-05 20:18:06 +02:00
add1b89019
Add test for MultiMap.putAll() 2023-06-05 19:44:58 +02:00
324302c536
Add MultiMap.flatten() 2023-06-05 19:44:47 +02:00
41d734f2db
ProviderFactory: Provide default implementation of _getProviderName() 2023-06-05 19:30:14 +02:00
96da3db2b8
Set AES-128 as default symmetric algorithm.
The crypto-refresh marks AES-128 as MUST implement.
2023-06-02 14:28:19 +02:00
e1038a8bb3
Replace more occurrences of new Date().getTime() with System.currentTimeMillis() 2023-06-02 00:03:55 +02:00
d25e7419c9
Replace new Date().getTime() with System.getCurrentTimeMillis() 2023-06-02 00:01:34 +02:00
528591f906
Key generation: Set default expiration periof of 5 years
Can be changed by calling 'keyRingBuilder.setExpirationDate(null);'
2023-06-01 23:43:41 +02:00
be5562d273
Fix typo in feature name 2023-05-30 14:51:32 +02:00
55058d6070
Rename GNUPG features 2023-05-22 14:37:02 +02:00
5c11b8af08
Mark ArmoredInputStreamFactory methods as @Nonnull 2023-05-16 16:44:26 +02:00
772c0407b3
Mark ArmoredOutputStreamFactory methods as @Nullable 2023-05-16 16:43:53 +02:00
8b4dd0fc25
Annotate CollectionUtils methods with @Nullable, @Nonnull 2023-05-16 16:39:58 +02:00
126571a6cd
Document ProviderFactory 2023-05-16 16:34:57 +02:00
d3ae02f137
Mark KeyRingReader.read*KeyRing() as @Nullable/@Nonnull 2023-05-16 16:26:52 +02:00
1bf9abbdaf
Add link to EdDSA spec 2023-05-16 16:19:20 +02:00
0805076392
Deprecate ElGamal key type 2023-05-16 16:16:42 +02:00
92a5e559f8
Earlier catching of NPEs in tests 2023-05-03 17:26:21 +02:00
e08505e07d
CertificateValidator: Skip revocation signatures not made by primary key 2023-05-03 17:25:59 +02:00
495ff6aa5d
Fix javadoc reference 2023-05-03 17:25:19 +02:00
88de47490b
SignatureValidator: Prevent NPE when no EmbeddedSignature subpacket is found 2023-05-03 17:24:16 +02:00
005b9d477a
KeyRingReader: Remove unused @throws IOException 2023-05-03 17:23:13 +02:00
fb581f11c7
UserId.parse(): Prevent self-referencing javadoc 2023-05-03 17:20:02 +02:00
3cea985365
TeeBCPGInputStream: Annotate byte[] arg as @Nonnull 2023-05-03 17:19:18 +02:00
78cb2ec3d0
Do not catch and immediatelly rethrow exception 2023-05-03 17:16:56 +02:00
5c76f9046f
Turn empty catch block into test failure 2023-05-03 17:16:10 +02:00
7a194c517a
Remove KeyRingUtils.removeSecretKey() in favor of stripSecretKey() 2023-05-03 17:15:30 +02:00
09bacd40d1
SecretKeyRingEditor: referenceTime cannot be null anymore 2023-05-03 17:14:18 +02:00
21ae48d8c1
Use assert statements to flag impossible NPEs 2023-05-03 17:13:29 +02:00
d05ffd0451
Make DateUtil null-safe 2023-05-03 16:11:06 +02:00
953206b4ed
Make more of the API null-safe by using @Nonnull/@Nullable 2023-05-03 16:03:50 +02:00
3b8a1b47d7
Add javadoc p-tags 2023-05-03 16:03:12 +02:00
1d26751b45
Remove unused KeyRingEditorTest 2023-05-03 15:59:21 +02:00
64c6d7a904
Annotate EncryptionOptions methods with @Nonnull 2023-05-03 14:38:52 +02:00
304350fe5c
Add p-tags to EncryptionOptions javadoc 2023-05-03 14:38:38 +02:00
15f6cc70b1
Add MessageMetadata.getRecipientKeyIds()
Fixes #376
2023-05-03 14:30:08 +02:00
8869d9bd78
Simplify key template methods by replacing String and UserID args with CharSequence 2023-05-03 13:51:59 +02:00
9c81137f48
Add template methods to generate RSA keys with primary and subkeys 2023-05-03 13:51:34 +02:00
52fa7e4d46
OpenPgpMessageInputStream: Return -1 instead of throwing MalformedOpenPgpMessageException when calling read() on drained stream 2023-05-01 09:35:28 +02:00
0cb0885251
Relax constraints on decryption keys to improve interop with faulty, broken legacy clients that have been very naughty and need punishment 2023-04-25 13:28:07 +02:00
44608744c2
Add missing license header 2023-04-14 16:17:58 +02:00
2587f19df3
BC173: Fix CRC error detection by improving error check 2023-04-09 18:49:20 +02:00
46f7cfdb1a
Introduce OpenPgpv6Fingerprint 2023-04-07 12:28:27 +02:00
e744668f5a
Deprecate OpenPgpFingerprint.parse() methods 2023-04-07 11:47:40 +02:00
acb5d3fd9e
getEncryptionSubkeys(): Compare expirations against reference date 2023-04-07 11:26:38 +02:00
ed2c53f5d6
Make getLastModified() @Nonnull 2023-02-25 11:26:58 +01:00
d03f84f415
Add reuse header to VerifyVersion3SignaturePacketTest 2023-02-08 14:49:10 +01:00
Bastien JANSEN
30771f470a Support version 3 signature packets 2023-02-08 14:42:22 +01:00
695e03f8b6
Add EncryptionOptions.hasEncryptionMethod() 2023-01-31 18:19:08 +01:00
DenBond7
9f98e4ce37 Fixed redundant dot an exception message. 2023-01-23 10:47:37 +01:00
a50c2d9714
More missing javadoc 2023-01-16 20:15:57 +01:00
8cb773841b
Revert certificate-store integration
Integration of certificate-store and pgpainless-cert-d makes packaging
complicated. Alternatively, users can simply integrate the certificate-store
with PGPainless themselves.
2023-01-13 19:18:02 +01:00
7a2c9d864c Add javadoc to DecryptionBuilder 2023-01-13 17:53:06 +01:00
980daeca31
Add missing javadoc to CustomPublicKeyDataDecryptorFactory 2023-01-04 18:55:57 +01:00
41cc71c274
Add missing javadoc to ConsumerOptions 2023-01-04 18:50:10 +01:00
abf723cc6c
Add note about UserId.parse().toString() not guaranteing identity 2023-01-04 18:27:14 +01:00
00b593823a
Modify SED test to test successful decryption of SED packet 2023-01-02 13:18:18 +01:00
94d9efa1e7
OpenPgpMessageInputStream: Ignore non-integrity-protected data if configured 2023-01-02 13:12:14 +01:00
35c62663e9
Fix javadoc 2022-12-22 15:30:11 +01:00
44738766e5
Add comments to regexes 2022-12-22 15:19:42 +01:00
533b54a6b7
Add some more tests for valid email address formats 2022-12-22 15:01:10 +01:00
a376587680
Add tests for international user-ids 2022-12-22 14:43:09 +01:00
75f69c0473
Fix Android compatibility by using Matcher.group(int) instead of Matcher.group(String) 2022-12-20 17:27:32 +01:00
94851ccb8f Add javadoc for UserId.parse() 2022-12-20 17:20:44 +01:00
59217d2501 Implement UserId.parse(mailbox) 2022-12-20 17:20:32 +01:00
6a5c6c5509 Improve ElGamal validation by refraining from biginteger for loop variable 2022-12-15 18:05:55 +01:00
bfbaa30e4c Make KO-countermeasures configurable (off by default) 2022-12-15 18:05:46 +01:00
2d46fb18f7 SOP: Allow generation of keys without user-ids 2022-12-15 18:04:59 +01:00
4f435a0fa0 Fix parameter check for DSA keys
Fixes #345
2022-12-15 18:04:34 +01:00
f5414bcc19 Use proper method to unlock private key when detached-signing 2022-12-15 18:04:19 +01:00
907d1c4d1c move V5OpenPgpKeyTest to org.pgpainless.key 2022-12-15 18:03:49 +01:00
bfcfaa04c4 Add UserId.compare(uid1, uid2, comparator) along with some default comparators 2022-12-15 18:03:37 +01:00
b07e0c2be5 Programmatically confirm that we do not yet support OpenPGP V5 keys :/ 2022-12-15 18:03:25 +01:00
e69c4a8cf7 More UserId tests 2022-12-15 18:03:15 +01:00
837fbd3635 Simplify UserIdTests 2022-12-15 18:03:04 +01:00
4c1d359971 Deprecate UserId.asString() 2022-12-15 18:02:53 +01:00
b0c283e143 Clean up UserId.toString() behavior 2022-12-15 18:02:44 +01:00
6913aa3d6d
Add more tests for RevocationState 2022-11-25 15:41:56 +01:00
ae6a427d90
Add test for UniversalSignatureBuilder 2022-11-25 15:34:54 +01:00
4426895814
Add tests for CollectionUtils 2022-11-25 14:55:46 +01:00
e1ab128c2e
Add annotations to GnuPGDummyKeyUtil 2022-11-25 14:40:57 +01:00
7cc2751527
Add @Nonnull annotations to OpenPgpMessageSyntax 2022-11-25 14:38:45 +01:00
3f70936ff1
Add documetation to PDA class 2022-11-25 14:26:55 +01:00
e88a88a447
Add javadoc for OpenPgpMessageInputStream factory method return value 2022-11-24 22:24:12 +01:00
39d656d2dd
Add javadoc for HardwareDataDecryptorFactory constructor argument 2022-11-24 22:22:21 +01:00
5bdd4f6ad0
Test rejection of messages with unacceptable skesk kek algorithm 2022-11-24 22:09:22 +01:00
a495f2275c
Precise error message for IntegrityProtectedInputStream 2022-11-24 21:34:25 +01:00
c72b3a4b8e Improve CachingBcPublicKeyDataDecryptorFactoryTest 2022-11-23 20:42:54 +01:00
be7349f0b5 Clean up CachingBcPublicKeyDataDecryptorFactory 2022-11-23 20:42:54 +01:00
b495e602e5 More precise error message for malformed message 2022-11-23 20:42:54 +01:00
25190fc5df SOP: Use new MessageMetadata class 2022-11-23 20:42:54 +01:00
b36b5413e2 Fix isEncryptedFor() 2022-11-23 20:42:54 +01:00
27fd15a012 Update examples with new MessageMetadata class 2022-11-23 20:42:54 +01:00
f005885318 Add MessageMetadata.isVerifiedSigned() and .getVerifiedSignatures() 2022-11-23 20:42:54 +01:00
c031ea9285 Remove empty newlines 2022-11-23 20:42:54 +01:00
6926cedf61 Fix compilation errors and simplify LayerIterator by introducing Packet interface 2022-11-23 20:42:54 +01:00
8f6227c14b Rework some tests to use MessageMetadata 2022-11-23 20:42:54 +01:00
39f8f89fe0 Add convenience methods to MessageMetadata 2022-11-23 20:42:54 +01:00
616e14d043 Enable tests for unsupported s2k identifiers 2022-11-23 20:42:54 +01:00
e4560ac5b5 Cleartext Signaure Framework: Support for multiple Hash: headers 2022-11-23 20:42:17 +01:00
6ba7e91f2a Add documentation and removal-TODO to old OpenPgpMetadata class 2022-11-23 20:42:17 +01:00
4e4c095d8d Rename tests to end in Test 2022-11-23 20:42:17 +01:00
b95568f30a Rename IgnoreMarkerPacketsTest 2022-11-23 20:42:17 +01:00
8faec25ecf Enable previously disabled test for marker+seipd packet processing 2022-11-23 20:42:17 +01:00
fd2f6523ec More specific exception message for when nesting depth is exceeded 2022-11-23 20:42:17 +01:00
1437604836 Add documentation to DecryptionStream 2022-11-23 20:42:17 +01:00
70cca563d7 Add javadoc to getMetadata() and getResult() 2022-11-23 20:42:17 +01:00
33d9a784bb Add javadoc to MEssageMetadata class 2022-11-23 20:42:17 +01:00
3023d532e3 Make DecryptionStream.getMetadata() first-class, deprecate getResult() 2022-11-23 20:42:17 +01:00
e976cc6dd2 Move getResult() method around 2022-11-23 20:42:17 +01:00
03d04fb324 Tests: Replace usages of default algorithm policies with specific policies 2022-11-23 20:42:17 +01:00
d7e4fcaec6 OpenPgpMessageInputStream: Source verification certs from ConsumerOptions.getCertificateSource() 2022-11-23 20:42:17 +01:00
a792952845 Remove code to manually throw NSEE for missing certs
This is now done further down in the store itself
2022-11-23 20:42:17 +01:00
c19b8297a3 Add TODO for when bumping cert-d-java 2022-11-23 20:42:17 +01:00
4594b494a9 Implement signature verification with certificate stores as cert source 2022-11-23 20:42:17 +01:00
22abb62443 Add test for encryption to cert from certificate store 2022-11-23 20:42:17 +01:00
d0277fbbec Bump cert-d-java to 0.2.0 2022-11-23 20:42:17 +01:00
6dc5b84d66 Depend on pgp-certificate-store again 2022-11-23 20:42:17 +01:00
d486a17cf1 Implement EncryptionOptions.addRecipient(store, fingerprint) 2022-11-23 20:42:17 +01:00
b287d28a28 Depend on pgp-certificate-store 2022-11-23 20:42:17 +01:00
963b678a9e Enable test for decryption of messages without ESKs 2022-11-23 20:42:17 +01:00
59e81dc514 Use BCs PGPEncryptedDataList.extractSessionKeyEncryptedData() for decryption with session key 2022-11-23 20:42:17 +01:00
f80b3e0cdb Use BCs PGPEncryptedDataList.isIntegrityProtected() 2022-11-23 20:42:17 +01:00
b1f9a1398a Add comment for ArmorUtils method 2022-11-23 20:40:40 +01:00
f86aae4997 Implement efficient read(buf,off,len) for DelayedInputStream 2022-11-23 20:40:40 +01:00
ca49ed087b Small clean-ups in OpenPgpMessageInputStream 2022-11-23 20:40:40 +01:00
58195c19b1 Properly handle failed decryption caused by removed private keys 2022-11-23 20:40:40 +01:00
58aa9f5712 Move classes related to GNU dummy keys to gnupg package 2022-11-23 20:40:40 +01:00
df4fc94ce7 Add test for decryption with removed private key 2022-11-23 20:40:40 +01:00
3af6ab1b85 Rename GnuPGDummyExtension + GnuPGDummyKeyUtil 2022-11-23 20:40:40 +01:00
033beaa8f2 Use S2K usage SHA1 in GnuDummyKeyUtil 2022-11-23 20:40:40 +01:00
a8d2319d63 Add documentation to GnuDummyKeyUtil 2022-11-23 20:40:40 +01:00
2487e3300a Add and test GnuDummyKeyUtil 2022-11-23 20:40:40 +01:00
7467170bcc Move CachingBcPublicKeyDataDecryptorFactoryTest to correct package 2022-11-23 20:40:40 +01:00
07320ed3cf Fix HardwareSecurity.getIdsOfHardwareBackedKeys() 2022-11-23 20:40:40 +01:00
8c0d096fc6 Fix CachingBcPublicKeyDataDecryptorFactory 2022-11-23 20:40:40 +01:00
705e36080c Implement caching PublicKeyDataDecryptorFactory 2022-11-23 20:40:40 +01:00
8fafb6aa56 Add comments 2022-11-23 20:40:40 +01:00
208612ab56 Add (commented-out) read(buf, off, len) implementation for DelayedTeeInputStream 2022-11-23 20:40:40 +01:00
8cb7d19487 Allow injection of different syntax into PDA 2022-11-23 20:40:40 +01:00
161ce57711 Clean up old unused code 2022-11-23 20:40:40 +01:00
ec793c66ff More cleanup and better error reporting 2022-11-23 20:40:40 +01:00
8ca0cfd3ae Rename *Alphabet to *Symbol and add javadoc 2022-11-23 20:40:40 +01:00
b3d61b0494 Separate out syntax logic 2022-11-23 20:40:40 +01:00
798e68e87f Improve syntax error reporting 2022-11-23 20:40:40 +01:00
a2a5c9223e Remove debugging fields 2022-11-23 20:40:40 +01:00
a0ba6828c9 Remove superfluous states 2022-11-23 20:40:40 +01:00
7e8841abf3 Handle unknown packet versions gracefully 2022-11-23 20:40:40 +01:00
192aa98326 Add missing REUSE license headers 2022-11-23 20:40:40 +01:00
a013ab4ebb Wrap MalformedOpenPgpMessageException in BadData 2022-11-23 20:40:40 +01:00
8097c87b7f Fix last two broken tests 2022-11-23 20:40:40 +01:00
e0b2145793 Fix more tests 2022-11-23 20:40:40 +01:00
aa398f9963 Only check message integrity once 2022-11-23 20:40:40 +01:00
e281143d48 Delete old DecryptionStreamFactory 2022-11-23 20:40:40 +01:00
3f8653cf2e Fix CRCing test and fully depend on new stream for decryption 2022-11-23 20:40:40 +01:00
54cb9dad71 Further increase coverage of PDA class 2022-11-23 20:40:40 +01:00
3977d1f407 Add more direct PDA tests 2022-11-23 20:40:40 +01:00
977f8c4101 Rename automaton package to syntax_check 2022-11-23 20:40:40 +01:00
a27c0ff36e Add detailled logging to OpenPgpMessageInputStream 2022-11-23 20:40:40 +01:00
b7acb2a59c Enable logging in tests 2022-11-23 20:40:40 +01:00
a9993fd866 Throw UnacceptableAlgEx for unencrypted encData 2022-11-23 20:40:40 +01:00
3d5916c545 Implement custom decryptor factories in pda 2022-11-23 20:40:40 +01:00
a39c6bc881 Identify custom decryptor factories by subkey id 2022-11-23 20:40:40 +01:00
cfd3f77491 Make map final 2022-11-23 20:40:40 +01:00
228918f96b Change HardwareSecurity DecryptionCallback to emit key-id 2022-11-23 20:40:40 +01:00
529c64cf43 Implement exploratory support for custom decryption factories
This may enable decryption of messages with hardware-backed keys
2022-11-23 20:40:40 +01:00
d39d062a0d WIP: Explore Hardware Decryption 2022-11-23 20:40:40 +01:00
7da34c8329 Work on postponed keys 2022-11-23 20:40:40 +01:00
d3f07a2250 Reuse *SignatureCheck class 2022-11-23 20:40:40 +01:00
dfbb01d61c Enfore max recursion depth and fix CRC test 2022-11-23 20:40:40 +01:00
7097d44916 Fix NPEs and expose decryption keys 2022-11-23 20:40:40 +01:00
6fd705b1dc Fix checkstyle issues 2022-11-23 20:40:40 +01:00
fbcde13df3 Reinstate integrity-protection and fix tests
Integrity Protection is now checked when reading from the stream,
not only when closing.
2022-11-23 20:40:40 +01:00
654493dfcc Properly expose signatures 2022-11-23 20:40:40 +01:00
a9f77ea100 Cleaning up and collect signature verifications 2022-11-23 20:40:40 +01:00
43c369f1f9 It was the buffering. 2022-11-23 20:40:40 +01:00
bdc968dd43 Create TeeBCPGInputStream to move teeing logic out of OpenPgpMessageInputStream 2022-11-23 20:40:40 +01:00
e420678076 2/3 the way to working sig verification 2022-11-23 20:40:40 +01:00
5e37d8038a WIP: So close to working notarizations 2022-11-23 20:40:39 +01:00
5288fb81c3 Reformat KeyRingReader 2022-11-23 20:40:03 +01:00
18b1fadeb6 Suppress DefaultCharset warning 2022-11-23 20:40:03 +01:00
2ce4486e89 Convert links in javadoc to html 2022-11-23 20:40:03 +01:00
babd1542e3 DO NOT MERGE: Disable broken test 2022-11-23 20:40:03 +01:00
09f94944b3 Remove unnecessary throws declarations 2022-11-23 20:40:03 +01:00
81bb8cba54 Use BCs Arrays.constantTimeAreEqual(char[], char[]) 2022-11-23 20:40:03 +01:00
527aab922e Fix ModificationDetectionException by not calling PGPUtil.getDecoderStream() 2022-11-23 20:40:03 +01:00
ec28ba2924 SIGNATURE VERIFICATION IN OPENPGP SUCKS BIG TIME 2022-11-23 20:40:03 +01:00
4e44691ef6 Wip 2022-11-23 20:40:03 +01:00
45555bf82d Wip: Work on OPS verification 2022-11-23 20:40:03 +01:00
e25f6e1712 Fix checkstyle issues 2022-11-23 20:40:03 +01:00
5c93eb3705 Wip: Introduce MessageMetadata class 2022-11-23 20:40:03 +01:00
efdf2bca0d WIP: Play around with TeeInputStreams 2022-11-23 20:40:03 +01:00
7537c9520c WIP: Add LayerMetadata class 2022-11-23 20:40:03 +01:00
54d7d0c7ae Implement experimental signature verification (correctness only) 2022-11-23 20:40:03 +01:00
9366700895 Add read(b,off,len) 2022-11-23 20:40:03 +01:00
7b9db97212 Clean close() method 2022-11-23 20:40:03 +01:00
0753f4d38a Work on getting signature verification to function again 2022-11-23 20:40:03 +01:00
d81c0d4400 Fix tests 2022-11-23 20:40:02 +01:00
e86062c427 WIP: Replace nesting with independent instancing 2022-11-23 20:40:02 +01:00
bf8949d7f4 WIP: Implement custom PGPDecryptionStream 2022-11-23 20:40:02 +01:00
bc73d26118 Add Pushdown Automaton for checking OpenPGP message syntax
The automaton implements what is described in
https://github.com/pgpainless/pgpainless/blob/main/misc/OpenPGPMessageFormat.md

However, some differences exist to adopt it to BouncyCastle

Part of #237
2022-11-23 20:40:02 +01:00
ae88fdf4ab
Document ArmoredOutputStreamFactory.setVersionInfo(null) 2022-11-11 13:49:28 +01:00
86b06ee5e3 SOP: Hide armor version header by default 2022-11-11 13:46:43 +01:00
c253732ad9 Do not reject bnacksig signatures when they predate subkey binding date
Fixes #334
2022-11-09 15:44:20 +01:00
50d18a4581 Fix NPE when validating signature made by key without keyflags on direct key sigature
(Presumably) fixes #332
2022-11-07 15:34:18 +01:00
b02ae86ff6 Annotate SignatureSubpacketsUtil methods with @Nullable and @Nonnull 2022-11-07 15:34:18 +01:00
f5e4c7571c
Bump BC to 1.72, BCPG to 1.72.1 2022-11-02 10:53:53 +01:00
754fcf72a1
Implement ProducerOptions.setHideArmorHeaders()
Fixes #328
2022-10-31 11:43:24 +01:00
8834d8ad10
Increase timeframe for some tests which check expiration dates 2022-10-18 15:13:49 +02:00
f94917d01f
Fix checkstyle issue 2022-09-28 13:18:34 +02:00
6a2a604ba4
Update TODO for BC 173 2022-09-27 16:47:23 +02:00
d74a8d0408
Add PGPainless.asciiArmor(PGPSignature) 2022-09-27 16:28:31 +02:00
dac059c702
Add test for PGPainless.asciiArmor(key, stream) 2022-09-27 16:17:22 +02:00
5bccc1960e Add PGPainless.asciiArmor(key, outputStream) 2022-09-27 16:12:26 +02:00
639d2a19f8
Remove unused provideSessionKeyDataDecryptorFactory() methods 2022-09-13 20:27:16 +02:00
609bb4556a
Use ImplementationFactory.getSessionKeyDataDecryptorFactory() method 2022-09-13 20:26:13 +02:00
0e45de9b4a Formatting 2022-09-13 20:23:06 +02:00
9e403c1124 Add ImplementationFactory.getSessionKeyDataDecryptorFactory() and impls 2022-09-13 20:22:53 +02:00
8dfabf1842 Test decryption of messages using Session Key 2022-09-12 15:26:06 +02:00
7480c47fa7
Add behavior test to ensure that ArmoredInputStream cuts away any data outside of the armor 2022-09-08 18:15:52 +02:00
31c4570d10
Move finalization of signatures into own method 2022-09-07 13:48:59 +02:00
0dd54f27b7
Add test for processing message byte by byte 2022-09-05 15:43:32 +02:00
0bafc410a0
Add missing parseAndCombineSignatures call
For some reason this was missing from the single-byte read() method
of the SignatureInputStream, causing issues if draining the stream
byte by byte
2022-09-05 15:41:58 +02:00
9106d98449
Add tests for Certificate merging 2022-09-05 15:25:29 +02:00
cd0b9603e7
Add KeyRingUtils.injectCertification(keys, certification) 2022-09-05 15:15:58 +02:00
5be42b22bd
Add test for KeyRingUtils.keysPlusPublicKey 2022-09-05 14:45:22 +02:00
4ec38bb63b
Add tests for ArmoredInputStreamFactory 2022-09-05 14:37:23 +02:00
70ce4d45f4
Remove unused CRCinArmoredInputStreamWrapper.possiblyWrap() 2022-09-05 14:20:11 +02:00
3a33bb126a
Add RNGPerformanceTest to help diagnose performance bottlenecks
Related to https://github.com/pgpainless/pgpainless/issues/309
2022-09-03 14:24:37 +02:00
3cd5a95d89
Rename inspectionDate to referenceTime 2022-09-03 13:48:02 +02:00
7189516dd4
Add documentation for modifyKeyRing(keys, date) 2022-09-03 13:46:32 +02:00
c3dc3c9d87 Allow modification of keys with custom reference date
Also, bind subkeys using SubkeyBindingSignatureBuilder
2022-09-03 13:42:58 +02:00
15046cdc32
Switch default S2K for secret key protection over to use SHA256 and add documentation 2022-08-31 21:37:31 +02:00
c6676d3c91
Add support for generating keys without user-ids
Fixes #296
2022-08-29 14:12:02 +02:00
bc24c4626a
Add ConsumerOptions.get() factory method 2022-08-29 13:00:50 +02:00
5746985bb7
Add EncryptionOptions.get() factory method 2022-08-29 12:46:36 +02:00
d1001412a1
Add SigningOptions.addDetachedSignature(protector, key) shortcut method 2022-08-29 12:36:16 +02:00
39ff2bca73
Fix javadoc of SigningOptions methods 2022-08-29 12:35:51 +02:00
1b04d67e1a
Remove unused SignatureSubpacketGeneratorUtil class and tests 2022-08-29 11:30:26 +02:00
0cc884523c
Integrate RevocationState into KeyRingInfo class 2022-08-29 11:30:10 +02:00
c73905d179
Import RevocationStateTest from wot branch 2022-08-29 11:12:42 +02:00
d019c0d5db
Add RevocationState implementation from wot branch 2022-08-29 11:09:32 +02:00
405e67c0cb
Add documentation to AlgorithmNegotiator classes 2022-08-29 11:06:17 +02:00
7faa6c580a
Remove deprecated ArmorUtils.createArmoredOutputStream() 2022-08-29 10:38:44 +02:00
054828ef8c
Remove deprecated EncryptionResult.getSymmetricKeyAlgorithm()
Use getEncryptionAlgorithm() instead
2022-08-29 10:37:55 +02:00
bc5dc50b78
Add KeyRingInfo.isSigningCapable()
Fixes #307
2022-08-09 15:08:59 +02:00
b9845912ee
Add tests for readKeyRing() 2022-08-08 13:20:28 +02:00
e6b89e2c3b Add KeyRingReader.keyRing(*) mnethods to read either a public or secret key ring 2022-08-08 13:15:03 +02:00
ca09ac62ca
KeyRingInfo.isUsableFor*(): Check if primary key is revoked 2022-08-03 13:37:18 +02:00
c1de66e1d7
Fix javadoc lying about only encrypting to single subkeys
Fixes #305
2022-08-02 16:53:01 +02:00
895fcced9a
Add gradle CI action 2022-07-22 20:21:02 +02:00
cb23cad625
Fix checkstyle issues and java API compatibility 2022-07-22 13:59:15 +02:00
Jérôme Charaoui
5a86d9db62 Fix tests that read from jar-embedded resources
It seems that none of the functions used here actually require a File
object as arguments, and will happily work on InputStream objects.
This also changes readFromResource() to use InputStream.readAllBytes()
instead of File.readAllBytes(), which is available from Java 9.
2022-07-22 13:55:05 +02:00
c4bffad478
Abort (skip) tests reading from resources 2022-07-21 21:34:44 +02:00
f966c1ed07
Explicitly cast Long to long to fix ambiguity in debian tests 2022-07-20 18:07:42 +02:00
e67d5b405c
Add javadoc to ProducerOptions.noEncryptionNoSigning() 2022-07-18 14:50:53 +02:00
9b6d08f3c5
Add MODIFICATION_DETECTION_2 feature constant 2022-07-18 12:03:16 +02:00
cd5982cd47
Add AEADAlgorithm class and test 2022-07-18 11:30:37 +02:00
59adbe1d0a
Add SHA3 hash algorithms to HashAlgorithm class 2022-07-18 11:30:25 +02:00
fe913172d5
Add missing javadoc 2022-07-16 12:58:22 +02:00
6fc1d25db8 Merge branch 'fix298' 2022-07-16 12:37:20 +02:00
ba191a1d0f
Prevent adding NULL to symmetric algorithm preference when generating key
Fixes #301
2022-07-15 14:19:45 +02:00
dec3c8be60
Add SecretKeyRingEditor.replaceUserId(old,new,protector) 2022-07-15 14:00:41 +02:00