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