1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2024-06-30 07:24:49 +02:00
Commit graph

970 commits

Author SHA1 Message Date
Paul Schaub da6582e1d3 Properly expose signatures 2022-11-03 11:56:38 +01:00
Paul Schaub 78e607ab85 Cleaning up and collect signature verifications 2022-11-03 11:56:38 +01:00
Paul Schaub f4ce669d44 It was the buffering. 2022-11-03 11:56:37 +01:00
Paul Schaub ef310f201f Create TeeBCPGInputStream to move teeing logic out of OpenPgpMessageInputStream 2022-11-03 11:56:05 +01:00
Paul Schaub c65e484bb4 2/3 the way to working sig verification 2022-11-03 11:56:05 +01:00
Paul Schaub 37dc362cc3 WIP: So close to working notarizations 2022-11-03 11:56:04 +01:00
Paul Schaub b31d72bd65 Reformat KeyRingReader 2022-11-03 11:55:35 +01:00
Paul Schaub 9eea028cf7 Suppress DefaultCharset warning 2022-11-03 11:55:35 +01:00
Paul Schaub 17f90eb721 Convert links in javadoc to html 2022-11-03 11:55:35 +01:00
Paul Schaub 73cdf34b02 DO NOT MERGE: Disable broken test 2022-11-03 11:55:35 +01:00
Paul Schaub 6809a490c1 Remove unnecessary throws declarations 2022-11-03 11:55:34 +01:00
Paul Schaub be8439532d Use BCs Arrays.constantTimeAreEqual(char[], char[]) 2022-11-03 11:54:24 +01:00
Paul Schaub fe767389a0 Fix ModificationDetectionException by not calling PGPUtil.getDecoderStream() 2022-11-03 11:54:24 +01:00
Paul Schaub 9ba3fcd8b0 SIGNATURE VERIFICATION IN OPENPGP SUCKS BIG TIME 2022-11-03 11:53:43 +01:00
Paul Schaub c40a7976e2 Wip 2022-11-03 11:53:43 +01:00
Paul Schaub f614c325cb Wip: Work on OPS verification 2022-11-03 11:53:43 +01:00
Paul Schaub 7cb22f1530 Fix checkstyle issues 2022-11-03 11:53:43 +01:00
Paul Schaub 714e424eac Wip: Introduce MessageMetadata class 2022-11-03 11:53:43 +01:00
Paul Schaub a3957d3372 WIP: Play around with TeeInputStreams 2022-11-03 11:53:43 +01:00
Paul Schaub 61949240b3 WIP: Add LayerMetadata class 2022-11-03 11:53:43 +01:00
Paul Schaub ef33d9d584 Implement experimental signature verification (correctness only) 2022-11-03 11:53:43 +01:00
Paul Schaub 3ac17281ea Add read(b,off,len) 2022-11-03 11:53:43 +01:00
Paul Schaub 8625b2086c Clean close() method 2022-11-03 11:53:42 +01:00
Paul Schaub 80e98a02ac Work on getting signature verification to function again 2022-11-03 11:53:42 +01:00
Paul Schaub 8d6db322a1 Fix tests 2022-11-03 11:53:42 +01:00
Paul Schaub 6233ac61e6 WIP: Replace nesting with independent instancing 2022-11-03 11:53:42 +01:00
Paul Schaub 60d6289c4d WIP: Implement custom PGPDecryptionStream 2022-11-03 11:53:42 +01:00
Paul Schaub 7b76a9162d 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-03 11:53:42 +01:00
Paul Schaub f5e4c7571c
Bump BC to 1.72, BCPG to 1.72.1 2022-11-02 10:53:53 +01:00
Paul Schaub 754fcf72a1
Implement ProducerOptions.setHideArmorHeaders()
Fixes #328
2022-10-31 11:43:24 +01:00
Paul Schaub 8834d8ad10
Increase timeframe for some tests which check expiration dates 2022-10-18 15:13:49 +02:00
Paul Schaub f94917d01f
Fix checkstyle issue 2022-09-28 13:18:34 +02:00
Paul Schaub 6a2a604ba4
Update TODO for BC 173 2022-09-27 16:47:23 +02:00
Paul Schaub d74a8d0408
Add PGPainless.asciiArmor(PGPSignature) 2022-09-27 16:28:31 +02:00
Paul Schaub dac059c702
Add test for PGPainless.asciiArmor(key, stream) 2022-09-27 16:17:22 +02:00
Paul Schaub 5bccc1960e Add PGPainless.asciiArmor(key, outputStream) 2022-09-27 16:12:26 +02:00
Paul Schaub 639d2a19f8
Remove unused provideSessionKeyDataDecryptorFactory() methods 2022-09-13 20:27:16 +02:00
Paul Schaub 609bb4556a
Use ImplementationFactory.getSessionKeyDataDecryptorFactory() method 2022-09-13 20:26:13 +02:00
Paul Schaub 0e45de9b4a Formatting 2022-09-13 20:23:06 +02:00
Paul Schaub 9e403c1124 Add ImplementationFactory.getSessionKeyDataDecryptorFactory() and impls 2022-09-13 20:22:53 +02:00
Paul Schaub 8dfabf1842 Test decryption of messages using Session Key 2022-09-12 15:26:06 +02:00
Paul Schaub 7480c47fa7
Add behavior test to ensure that ArmoredInputStream cuts away any data outside of the armor 2022-09-08 18:15:52 +02:00
Paul Schaub 31c4570d10
Move finalization of signatures into own method 2022-09-07 13:48:59 +02:00
Paul Schaub 0dd54f27b7
Add test for processing message byte by byte 2022-09-05 15:43:32 +02:00
Paul Schaub 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
Paul Schaub 9106d98449
Add tests for Certificate merging 2022-09-05 15:25:29 +02:00
Paul Schaub cd0b9603e7
Add KeyRingUtils.injectCertification(keys, certification) 2022-09-05 15:15:58 +02:00
Paul Schaub 5be42b22bd
Add test for KeyRingUtils.keysPlusPublicKey 2022-09-05 14:45:22 +02:00
Paul Schaub 4ec38bb63b
Add tests for ArmoredInputStreamFactory 2022-09-05 14:37:23 +02:00
Paul Schaub 70ce4d45f4
Remove unused CRCinArmoredInputStreamWrapper.possiblyWrap() 2022-09-05 14:20:11 +02:00
Paul Schaub 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
Paul Schaub 3cd5a95d89
Rename inspectionDate to referenceTime 2022-09-03 13:48:02 +02:00
Paul Schaub 7189516dd4
Add documentation for modifyKeyRing(keys, date) 2022-09-03 13:46:32 +02:00
Paul Schaub c3dc3c9d87 Allow modification of keys with custom reference date
Also, bind subkeys using SubkeyBindingSignatureBuilder
2022-09-03 13:42:58 +02:00
Paul Schaub 15046cdc32
Switch default S2K for secret key protection over to use SHA256 and add documentation 2022-08-31 21:37:31 +02:00
Paul Schaub c6676d3c91
Add support for generating keys without user-ids
Fixes #296
2022-08-29 14:12:02 +02:00
Paul Schaub bc24c4626a
Add ConsumerOptions.get() factory method 2022-08-29 13:00:50 +02:00
Paul Schaub 5746985bb7
Add EncryptionOptions.get() factory method 2022-08-29 12:46:36 +02:00
Paul Schaub d1001412a1
Add SigningOptions.addDetachedSignature(protector, key) shortcut method 2022-08-29 12:36:16 +02:00
Paul Schaub 39ff2bca73
Fix javadoc of SigningOptions methods 2022-08-29 12:35:51 +02:00
Paul Schaub 1b04d67e1a
Remove unused SignatureSubpacketGeneratorUtil class and tests 2022-08-29 11:30:26 +02:00
Paul Schaub 0cc884523c
Integrate RevocationState into KeyRingInfo class 2022-08-29 11:30:10 +02:00
Paul Schaub c73905d179
Import RevocationStateTest from wot branch 2022-08-29 11:12:42 +02:00
Paul Schaub d019c0d5db
Add RevocationState implementation from wot branch 2022-08-29 11:09:32 +02:00
Paul Schaub 405e67c0cb
Add documentation to AlgorithmNegotiator classes 2022-08-29 11:06:17 +02:00
Paul Schaub 7faa6c580a
Remove deprecated ArmorUtils.createArmoredOutputStream() 2022-08-29 10:38:44 +02:00
Paul Schaub 054828ef8c
Remove deprecated EncryptionResult.getSymmetricKeyAlgorithm()
Use getEncryptionAlgorithm() instead
2022-08-29 10:37:55 +02:00
Paul Schaub bc5dc50b78
Add KeyRingInfo.isSigningCapable()
Fixes #307
2022-08-09 15:08:59 +02:00
Paul Schaub b9845912ee
Add tests for readKeyRing() 2022-08-08 13:20:28 +02:00
Paul Schaub e6b89e2c3b Add KeyRingReader.keyRing(*) mnethods to read either a public or secret key ring 2022-08-08 13:15:03 +02:00
Paul Schaub ca09ac62ca
KeyRingInfo.isUsableFor*(): Check if primary key is revoked 2022-08-03 13:37:18 +02:00
Paul Schaub c1de66e1d7
Fix javadoc lying about only encrypting to single subkeys
Fixes #305
2022-08-02 16:53:01 +02:00
Paul Schaub 895fcced9a
Add gradle CI action 2022-07-22 20:21:02 +02:00
Paul Schaub 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
Paul Schaub c4bffad478
Abort (skip) tests reading from resources 2022-07-21 21:34:44 +02:00
Paul Schaub f966c1ed07
Explicitly cast Long to long to fix ambiguity in debian tests 2022-07-20 18:07:42 +02:00
Paul Schaub e67d5b405c
Add javadoc to ProducerOptions.noEncryptionNoSigning() 2022-07-18 14:50:53 +02:00
Paul Schaub 9b6d08f3c5
Add MODIFICATION_DETECTION_2 feature constant 2022-07-18 12:03:16 +02:00
Paul Schaub cd5982cd47
Add AEADAlgorithm class and test 2022-07-18 11:30:37 +02:00
Paul Schaub 59adbe1d0a
Add SHA3 hash algorithms to HashAlgorithm class 2022-07-18 11:30:25 +02:00
Paul Schaub fe913172d5
Add missing javadoc 2022-07-16 12:58:22 +02:00
Paul Schaub 6fc1d25db8 Merge branch 'fix298' 2022-07-16 12:37:20 +02:00
Paul Schaub ba191a1d0f
Prevent adding NULL to symmetric algorithm preference when generating key
Fixes #301
2022-07-15 14:19:45 +02:00
Paul Schaub dec3c8be60
Add SecretKeyRingEditor.replaceUserId(old,new,protector) 2022-07-15 14:00:41 +02:00
Paul Schaub 32e1f1234b
Add KeyRingUtils.publicKeyRingCollectionFrom(PGPSecretKeyRingCollection) 2022-07-15 13:21:59 +02:00
Paul Schaub 2ad67a85fb
Add test to make sure we do not allow unencrypted as sym alg preference 2022-07-15 13:20:23 +02:00
Paul Schaub 4730ac427b
Add test for #298 2022-07-13 14:54:16 +02:00
Paul Schaub 223cf009fc
Fix User-ID format in documentation and note invalid user-id formats in tests 2022-07-12 10:33:43 +02:00
Paul Schaub 50d31eb463
KeyRingTemplates: Add methods taking Passphrase as argument 2022-07-11 14:15:54 +02:00
Paul Schaub 52c8439da5
Prevent third-party assigned user-ids from being accidentally returned as primary user-id
Fixes #293
2022-07-10 23:02:00 +02:00
Paul Schaub 3842aa9ced
Add test to explore behavior when dealing with V3 keys 2022-07-08 15:08:45 +02:00
Paul Schaub 170aaaa0c5
Document KO protection utility class 2022-07-04 11:05:16 +02:00
Paul Schaub 8b66b3527e
Add tests for pet name certification and scoped delegation 2022-06-30 13:16:15 +02:00
Paul Schaub a99ce15969
Forward userIdOnCertificate() method call 2022-06-30 13:11:27 +02:00
Paul Schaub b8f4cc3935 Merge branch 'certification' 2022-06-29 16:01:03 +02:00
Paul Schaub b2a5351cc3
Delete unused KeyRingValidator class 2022-06-29 16:00:21 +02:00
Paul Schaub 7e0b1b344c
s/{validation|evaluation}Date/referenceTime/g 2022-06-24 12:47:35 +02:00
Paul Schaub 0c0f82ce2e Add KeyRingInfo constructor that takes Policy instance 2022-06-24 12:29:03 +02:00
Paul Schaub 3f40fb99ef Add RevocationState enum 2022-06-24 12:28:56 +02:00