1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2024-06-30 15:26:43 +02:00
Commit graph

957 commits

Author SHA1 Message Date
Paul Schaub 126571a6cd
Document ProviderFactory 2023-05-16 16:34:57 +02:00
Paul Schaub d3ae02f137
Mark KeyRingReader.read*KeyRing() as @Nullable/@Nonnull 2023-05-16 16:26:52 +02:00
Paul Schaub 1bf9abbdaf
Add link to EdDSA spec 2023-05-16 16:19:20 +02:00
Paul Schaub 0805076392
Deprecate ElGamal key type 2023-05-16 16:16:42 +02:00
Paul Schaub e08505e07d
CertificateValidator: Skip revocation signatures not made by primary key 2023-05-03 17:25:59 +02:00
Paul Schaub 88de47490b
SignatureValidator: Prevent NPE when no EmbeddedSignature subpacket is found 2023-05-03 17:24:16 +02:00
Paul Schaub 005b9d477a
KeyRingReader: Remove unused @throws IOException 2023-05-03 17:23:13 +02:00
Paul Schaub fb581f11c7
UserId.parse(): Prevent self-referencing javadoc 2023-05-03 17:20:02 +02:00
Paul Schaub 3cea985365
TeeBCPGInputStream: Annotate byte[] arg as @Nonnull 2023-05-03 17:19:18 +02:00
Paul Schaub 78cb2ec3d0
Do not catch and immediatelly rethrow exception 2023-05-03 17:16:56 +02:00
Paul Schaub 7a194c517a
Remove KeyRingUtils.removeSecretKey() in favor of stripSecretKey() 2023-05-03 17:15:30 +02:00
Paul Schaub 09bacd40d1
SecretKeyRingEditor: referenceTime cannot be null anymore 2023-05-03 17:14:18 +02:00
Paul Schaub 21ae48d8c1
Use assert statements to flag impossible NPEs 2023-05-03 17:13:29 +02:00
Paul Schaub d05ffd0451
Make DateUtil null-safe 2023-05-03 16:11:06 +02:00
Paul Schaub 953206b4ed
Make more of the API null-safe by using @Nonnull/@Nullable 2023-05-03 16:03:50 +02:00
Paul Schaub 3b8a1b47d7
Add javadoc p-tags 2023-05-03 16:03:12 +02:00
Paul Schaub 64c6d7a904
Annotate EncryptionOptions methods with @Nonnull 2023-05-03 14:38:52 +02:00
Paul Schaub 304350fe5c
Add p-tags to EncryptionOptions javadoc 2023-05-03 14:38:38 +02:00
Paul Schaub 15f6cc70b1
Add MessageMetadata.getRecipientKeyIds()
Fixes #376
2023-05-03 14:30:08 +02:00
Paul Schaub 8869d9bd78
Simplify key template methods by replacing String and UserID args with CharSequence 2023-05-03 13:51:59 +02:00
Paul Schaub 9c81137f48
Add template methods to generate RSA keys with primary and subkeys 2023-05-03 13:51:34 +02:00
Paul Schaub 52fa7e4d46
OpenPgpMessageInputStream: Return -1 instead of throwing MalformedOpenPgpMessageException when calling read() on drained stream 2023-05-01 09:35:28 +02:00
Paul Schaub 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
Paul Schaub 2587f19df3
BC173: Fix CRC error detection by improving error check 2023-04-09 18:49:20 +02:00
Paul Schaub 46f7cfdb1a
Introduce OpenPgpv6Fingerprint 2023-04-07 12:28:27 +02:00
Paul Schaub e744668f5a
Deprecate OpenPgpFingerprint.parse() methods 2023-04-07 11:47:40 +02:00
Paul Schaub acb5d3fd9e
getEncryptionSubkeys(): Compare expirations against reference date 2023-04-07 11:26:38 +02:00
Paul Schaub ed2c53f5d6
Make getLastModified() @Nonnull 2023-02-25 11:26:58 +01:00
Bastien JANSEN 30771f470a Support version 3 signature packets 2023-02-08 14:42:22 +01:00
Paul Schaub 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
Paul Schaub a50c2d9714
More missing javadoc 2023-01-16 20:15:57 +01:00
Paul Schaub 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
Paul Schaub 7a2c9d864c Add javadoc to DecryptionBuilder 2023-01-13 17:53:06 +01:00
Paul Schaub 980daeca31
Add missing javadoc to CustomPublicKeyDataDecryptorFactory 2023-01-04 18:55:57 +01:00
Paul Schaub 41cc71c274
Add missing javadoc to ConsumerOptions 2023-01-04 18:50:10 +01:00
Paul Schaub abf723cc6c
Add note about UserId.parse().toString() not guaranteing identity 2023-01-04 18:27:14 +01:00
Paul Schaub 94d9efa1e7
OpenPgpMessageInputStream: Ignore non-integrity-protected data if configured 2023-01-02 13:12:14 +01:00
Paul Schaub 35c62663e9
Fix javadoc 2022-12-22 15:30:11 +01:00
Paul Schaub 44738766e5
Add comments to regexes 2022-12-22 15:19:42 +01:00
Paul Schaub 533b54a6b7
Add some more tests for valid email address formats 2022-12-22 15:01:10 +01:00
Paul Schaub 75f69c0473
Fix Android compatibility by using Matcher.group(int) instead of Matcher.group(String) 2022-12-20 17:27:32 +01:00
Paul Schaub 94851ccb8f Add javadoc for UserId.parse() 2022-12-20 17:20:44 +01:00
Paul Schaub 59217d2501 Implement UserId.parse(mailbox) 2022-12-20 17:20:32 +01:00
Paul Schaub 6a5c6c5509 Improve ElGamal validation by refraining from biginteger for loop variable 2022-12-15 18:05:55 +01:00
Paul Schaub bfbaa30e4c Make KO-countermeasures configurable (off by default) 2022-12-15 18:05:46 +01:00
Paul Schaub 2d46fb18f7 SOP: Allow generation of keys without user-ids 2022-12-15 18:04:59 +01:00
Paul Schaub 4f435a0fa0 Fix parameter check for DSA keys
Fixes #345
2022-12-15 18:04:34 +01:00
Paul Schaub f5414bcc19 Use proper method to unlock private key when detached-signing 2022-12-15 18:04:19 +01:00
Paul Schaub bfcfaa04c4 Add UserId.compare(uid1, uid2, comparator) along with some default comparators 2022-12-15 18:03:37 +01:00
Paul Schaub 837fbd3635 Simplify UserIdTests 2022-12-15 18:03:04 +01:00
Paul Schaub 4c1d359971 Deprecate UserId.asString() 2022-12-15 18:02:53 +01:00
Paul Schaub b0c283e143 Clean up UserId.toString() behavior 2022-12-15 18:02:44 +01:00
Paul Schaub ae6a427d90
Add test for UniversalSignatureBuilder 2022-11-25 15:34:54 +01:00
Paul Schaub e1ab128c2e
Add annotations to GnuPGDummyKeyUtil 2022-11-25 14:40:57 +01:00
Paul Schaub 7cc2751527
Add @Nonnull annotations to OpenPgpMessageSyntax 2022-11-25 14:38:45 +01:00
Paul Schaub 3f70936ff1
Add documetation to PDA class 2022-11-25 14:26:55 +01:00
Paul Schaub e88a88a447
Add javadoc for OpenPgpMessageInputStream factory method return value 2022-11-24 22:24:12 +01:00
Paul Schaub 39d656d2dd
Add javadoc for HardwareDataDecryptorFactory constructor argument 2022-11-24 22:22:21 +01:00
Paul Schaub a495f2275c
Precise error message for IntegrityProtectedInputStream 2022-11-24 21:34:25 +01:00
Paul Schaub be7349f0b5 Clean up CachingBcPublicKeyDataDecryptorFactory 2022-11-23 20:42:54 +01:00
Paul Schaub b495e602e5 More precise error message for malformed message 2022-11-23 20:42:54 +01:00
Paul Schaub 25190fc5df SOP: Use new MessageMetadata class 2022-11-23 20:42:54 +01:00
Paul Schaub b36b5413e2 Fix isEncryptedFor() 2022-11-23 20:42:54 +01:00
Paul Schaub f005885318 Add MessageMetadata.isVerifiedSigned() and .getVerifiedSignatures() 2022-11-23 20:42:54 +01:00
Paul Schaub 6926cedf61 Fix compilation errors and simplify LayerIterator by introducing Packet interface 2022-11-23 20:42:54 +01:00
Paul Schaub 39f8f89fe0 Add convenience methods to MessageMetadata 2022-11-23 20:42:54 +01:00
Paul Schaub e4560ac5b5 Cleartext Signaure Framework: Support for multiple Hash: headers 2022-11-23 20:42:17 +01:00
Paul Schaub 6ba7e91f2a Add documentation and removal-TODO to old OpenPgpMetadata class 2022-11-23 20:42:17 +01:00
Paul Schaub fd2f6523ec More specific exception message for when nesting depth is exceeded 2022-11-23 20:42:17 +01:00
Paul Schaub 1437604836 Add documentation to DecryptionStream 2022-11-23 20:42:17 +01:00
Paul Schaub 70cca563d7 Add javadoc to getMetadata() and getResult() 2022-11-23 20:42:17 +01:00
Paul Schaub 33d9a784bb Add javadoc to MEssageMetadata class 2022-11-23 20:42:17 +01:00
Paul Schaub 3023d532e3 Make DecryptionStream.getMetadata() first-class, deprecate getResult() 2022-11-23 20:42:17 +01:00
Paul Schaub e976cc6dd2 Move getResult() method around 2022-11-23 20:42:17 +01:00
Paul Schaub d7e4fcaec6 OpenPgpMessageInputStream: Source verification certs from ConsumerOptions.getCertificateSource() 2022-11-23 20:42:17 +01:00
Paul Schaub 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
Paul Schaub c19b8297a3 Add TODO for when bumping cert-d-java 2022-11-23 20:42:17 +01:00
Paul Schaub 4594b494a9 Implement signature verification with certificate stores as cert source 2022-11-23 20:42:17 +01:00
Paul Schaub 6dc5b84d66 Depend on pgp-certificate-store again 2022-11-23 20:42:17 +01:00
Paul Schaub d486a17cf1 Implement EncryptionOptions.addRecipient(store, fingerprint) 2022-11-23 20:42:17 +01:00
Paul Schaub 59e81dc514 Use BCs PGPEncryptedDataList.extractSessionKeyEncryptedData() for decryption with session key 2022-11-23 20:42:17 +01:00
Paul Schaub f80b3e0cdb Use BCs PGPEncryptedDataList.isIntegrityProtected() 2022-11-23 20:42:17 +01:00
Paul Schaub b1f9a1398a Add comment for ArmorUtils method 2022-11-23 20:40:40 +01:00
Paul Schaub f86aae4997 Implement efficient read(buf,off,len) for DelayedInputStream 2022-11-23 20:40:40 +01:00
Paul Schaub ca49ed087b Small clean-ups in OpenPgpMessageInputStream 2022-11-23 20:40:40 +01:00
Paul Schaub 58195c19b1 Properly handle failed decryption caused by removed private keys 2022-11-23 20:40:40 +01:00
Paul Schaub 58aa9f5712 Move classes related to GNU dummy keys to gnupg package 2022-11-23 20:40:40 +01:00
Paul Schaub df4fc94ce7 Add test for decryption with removed private key 2022-11-23 20:40:40 +01:00
Paul Schaub 3af6ab1b85 Rename GnuPGDummyExtension + GnuPGDummyKeyUtil 2022-11-23 20:40:40 +01:00
Paul Schaub 033beaa8f2 Use S2K usage SHA1 in GnuDummyKeyUtil 2022-11-23 20:40:40 +01:00
Paul Schaub a8d2319d63 Add documentation to GnuDummyKeyUtil 2022-11-23 20:40:40 +01:00
Paul Schaub 2487e3300a Add and test GnuDummyKeyUtil 2022-11-23 20:40:40 +01:00
Paul Schaub 07320ed3cf Fix HardwareSecurity.getIdsOfHardwareBackedKeys() 2022-11-23 20:40:40 +01:00
Paul Schaub 8c0d096fc6 Fix CachingBcPublicKeyDataDecryptorFactory 2022-11-23 20:40:40 +01:00
Paul Schaub 705e36080c Implement caching PublicKeyDataDecryptorFactory 2022-11-23 20:40:40 +01:00
Paul Schaub 8fafb6aa56 Add comments 2022-11-23 20:40:40 +01:00
Paul Schaub 208612ab56 Add (commented-out) read(buf, off, len) implementation for DelayedTeeInputStream 2022-11-23 20:40:40 +01:00
Paul Schaub 8cb7d19487 Allow injection of different syntax into PDA 2022-11-23 20:40:40 +01:00
Paul Schaub 161ce57711 Clean up old unused code 2022-11-23 20:40:40 +01:00
Paul Schaub ec793c66ff More cleanup and better error reporting 2022-11-23 20:40:40 +01:00
Paul Schaub 8ca0cfd3ae Rename *Alphabet to *Symbol and add javadoc 2022-11-23 20:40:40 +01:00
Paul Schaub b3d61b0494 Separate out syntax logic 2022-11-23 20:40:40 +01:00
Paul Schaub 798e68e87f Improve syntax error reporting 2022-11-23 20:40:40 +01:00
Paul Schaub a2a5c9223e Remove debugging fields 2022-11-23 20:40:40 +01:00
Paul Schaub a0ba6828c9 Remove superfluous states 2022-11-23 20:40:40 +01:00
Paul Schaub 7e8841abf3 Handle unknown packet versions gracefully 2022-11-23 20:40:40 +01:00
Paul Schaub 192aa98326 Add missing REUSE license headers 2022-11-23 20:40:40 +01:00
Paul Schaub a013ab4ebb Wrap MalformedOpenPgpMessageException in BadData 2022-11-23 20:40:40 +01:00
Paul Schaub 8097c87b7f Fix last two broken tests 2022-11-23 20:40:40 +01:00
Paul Schaub e0b2145793 Fix more tests 2022-11-23 20:40:40 +01:00
Paul Schaub aa398f9963 Only check message integrity once 2022-11-23 20:40:40 +01:00
Paul Schaub e281143d48 Delete old DecryptionStreamFactory 2022-11-23 20:40:40 +01:00
Paul Schaub 3f8653cf2e Fix CRCing test and fully depend on new stream for decryption 2022-11-23 20:40:40 +01:00
Paul Schaub 977f8c4101 Rename automaton package to syntax_check 2022-11-23 20:40:40 +01:00
Paul Schaub a27c0ff36e Add detailled logging to OpenPgpMessageInputStream 2022-11-23 20:40:40 +01:00
Paul Schaub a9993fd866 Throw UnacceptableAlgEx for unencrypted encData 2022-11-23 20:40:40 +01:00
Paul Schaub 3d5916c545 Implement custom decryptor factories in pda 2022-11-23 20:40:40 +01:00
Paul Schaub a39c6bc881 Identify custom decryptor factories by subkey id 2022-11-23 20:40:40 +01:00
Paul Schaub cfd3f77491 Make map final 2022-11-23 20:40:40 +01:00
Paul Schaub 228918f96b Change HardwareSecurity DecryptionCallback to emit key-id 2022-11-23 20:40:40 +01:00
Paul Schaub 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
Paul Schaub d39d062a0d WIP: Explore Hardware Decryption 2022-11-23 20:40:40 +01:00
Paul Schaub 7da34c8329 Work on postponed keys 2022-11-23 20:40:40 +01:00
Paul Schaub d3f07a2250 Reuse *SignatureCheck class 2022-11-23 20:40:40 +01:00
Paul Schaub dfbb01d61c Enfore max recursion depth and fix CRC test 2022-11-23 20:40:40 +01:00
Paul Schaub 7097d44916 Fix NPEs and expose decryption keys 2022-11-23 20:40:40 +01:00
Paul Schaub 6fd705b1dc Fix checkstyle issues 2022-11-23 20:40:40 +01:00
Paul Schaub 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
Paul Schaub 654493dfcc Properly expose signatures 2022-11-23 20:40:40 +01:00
Paul Schaub a9f77ea100 Cleaning up and collect signature verifications 2022-11-23 20:40:40 +01:00
Paul Schaub 43c369f1f9 It was the buffering. 2022-11-23 20:40:40 +01:00
Paul Schaub bdc968dd43 Create TeeBCPGInputStream to move teeing logic out of OpenPgpMessageInputStream 2022-11-23 20:40:40 +01:00
Paul Schaub e420678076 2/3 the way to working sig verification 2022-11-23 20:40:40 +01:00
Paul Schaub 5e37d8038a WIP: So close to working notarizations 2022-11-23 20:40:39 +01:00
Paul Schaub 5288fb81c3 Reformat KeyRingReader 2022-11-23 20:40:03 +01:00
Paul Schaub 18b1fadeb6 Suppress DefaultCharset warning 2022-11-23 20:40:03 +01:00
Paul Schaub 2ce4486e89 Convert links in javadoc to html 2022-11-23 20:40:03 +01:00
Paul Schaub 09f94944b3 Remove unnecessary throws declarations 2022-11-23 20:40:03 +01:00
Paul Schaub 81bb8cba54 Use BCs Arrays.constantTimeAreEqual(char[], char[]) 2022-11-23 20:40:03 +01:00
Paul Schaub 527aab922e Fix ModificationDetectionException by not calling PGPUtil.getDecoderStream() 2022-11-23 20:40:03 +01:00
Paul Schaub ec28ba2924 SIGNATURE VERIFICATION IN OPENPGP SUCKS BIG TIME 2022-11-23 20:40:03 +01:00
Paul Schaub 4e44691ef6 Wip 2022-11-23 20:40:03 +01:00
Paul Schaub 45555bf82d Wip: Work on OPS verification 2022-11-23 20:40:03 +01:00
Paul Schaub e25f6e1712 Fix checkstyle issues 2022-11-23 20:40:03 +01:00
Paul Schaub 5c93eb3705 Wip: Introduce MessageMetadata class 2022-11-23 20:40:03 +01:00
Paul Schaub efdf2bca0d WIP: Play around with TeeInputStreams 2022-11-23 20:40:03 +01:00
Paul Schaub 7537c9520c WIP: Add LayerMetadata class 2022-11-23 20:40:03 +01:00
Paul Schaub 54d7d0c7ae Implement experimental signature verification (correctness only) 2022-11-23 20:40:03 +01:00
Paul Schaub 9366700895 Add read(b,off,len) 2022-11-23 20:40:03 +01:00