1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2024-12-23 19:38:00 +01:00
Commit graph

545 commits

Author SHA1 Message Date
c11f334fa4 Policy: Use EnumMap for improved performance 2021-08-15 15:46:41 +02:00
e5b15fe0c2 Use String-formatting in Logger statements 2021-08-15 15:46:41 +02:00
485666c72a Change static variable names 2021-08-15 15:46:41 +02:00
20b3080e94 getBitStrenght: Throw NoSuchAlgorithmException for unknown curves 2021-08-15 15:46:41 +02:00
ccc62e090c Make DateUtil thread-safe 2021-08-15 15:46:41 +02:00
bb27fddc89 Remove default constructor of NotationRegistry 2021-08-15 15:46:41 +02:00
ab951fcf03 InputStreams: overwrite read(b, off, len) for improved performance 2021-08-15 15:46:41 +02:00
5eb470862e Remove OpenPgpMetadata.FileInfo subclass 2021-08-15 15:46:41 +02:00
2bd71617bd PGPException is not thrown during secret key reading 2021-08-15 15:46:41 +02:00
6251e01d57 Make classes final where sensible 2021-08-15 15:46:41 +02:00
1ce6632f18 Rename KeyValidationException -> KeyValidationError 2021-08-15 15:46:41 +02:00
66293bf333
Add documentation to ArmoredOutputStreamFactory 2021-08-15 13:41:07 +02:00
fd867bbfbe
Allow customization of ASCII armor comment and version headers 2021-08-14 13:56:16 +02:00
a678ff1b6e
Add documentation to classes related to verification of cleartext signed data 2021-08-14 11:39:13 +02:00
468159b2ad
Add documentation to SignatureSubpacketsUtil 2021-08-14 11:19:40 +02:00
3c68840a29
Add documentation to SignatureUtils methods 2021-08-14 11:09:51 +02:00
8256cd3a5b
Test some methods of KeyRingInfo 2021-08-08 18:26:38 +02:00
50e7fd96b8
Fix javadoc issues 2021-08-08 18:13:48 +02:00
08a5ce73dc
Test SignatureValidator.verifyWasPossiblyMadeByKey() 2021-08-08 17:55:57 +02:00
aa0aaf134d
Bundle ASCII-Armor CRC related tests 2021-08-08 17:39:36 +02:00
cae099eabe
Properly evaluate key expiration dates 2021-08-08 16:58:32 +02:00
a0be510fc2
Update test key to have no key-expiration date 2021-08-08 16:57:37 +02:00
944d79b009
Rearrange armored input stream workaround code 2021-08-08 15:58:12 +02:00
1983cfb4ac
ArmoredInputStreams: Properly catch ignorable IOExceptions caused by missing CRC sums 2021-08-08 15:35:05 +02:00
089b81b070
Improve parsing of data containing invalid signatures
partial workaround for https://github.com/bcgit/bc-java/pull/1006
2021-08-05 15:18:33 +02:00
245e4a380d
Add JUnit test to ensure proper bracketing and nested-ness of multiple OnePassSignatures 2021-08-05 13:12:12 +02:00
9a485a3354
Encrypt to all capable subkeys by default 2021-08-04 16:38:17 +02:00
2d76cb5c82
Fix partial length encoding of some messages
Fixes #160

I'm not yet sure, why this issue only happened with some keys and not others,
but this fix works for now.
2021-08-04 16:02:35 +02:00
16c3116518
Fix order and nested-ness of one-pass-signatures
Fixes #164
2021-08-04 15:42:25 +02:00
e4fdc3bc1e
SubkeyIdentifier: Throw NoSuchElementException for non-existent subkey 2021-08-01 17:23:17 +02:00
1327e08ac3
Add tests for SubkeyIdentifier 2021-08-01 17:19:04 +02:00
99ff6d537b
Prevent IllegalArgumentException for non-v4 issuer fingerprints 2021-08-01 16:11:47 +02:00
b674a412b5
Reformat issuer-fingerprint inclusion code 2021-08-01 16:03:30 +02:00
bd04e35a53
Commit investigation code for #160 (Thunderbird interop issues) 2021-08-01 15:54:19 +02:00
6a11e39d76
Add issuer-fingerprint to message signatures 2021-08-01 15:53:51 +02:00
5422468d73
Check key flags on binding sig to determine if backsig is required 2021-07-31 22:25:55 +02:00
e7ed0f76a3
Properly ignore marker packets when reading keys/sigs 2021-07-31 22:25:12 +02:00
fb16db5db4
Improve handling of signatures with missing issuerKeyId packets 2021-07-31 22:24:39 +02:00
311c842196
Revert introduction of StreamUtil 2021-07-31 20:40:31 +02:00
107e53c03e
Fully drain ArmoredInputStreams to verify CRC checksum.
Fixes #159 (for real this time)
2021-07-27 15:09:59 +02:00
fc311fe781
Workaround for #159: Avoid to prevent swallowing IOExceptions 2021-07-26 16:19:30 +02:00
3e9979240b Add javadoc to the SignatureValidator class 2021-07-22 15:28:24 +02:00
1f08815633 Explicitly reject non-self signatures when picking user-id self sigs 2021-07-22 15:28:24 +02:00
726d22b8d6 Change passphrase: Skip GNU_DUMMY_S2K keys 2021-07-19 15:05:03 +02:00
4244107994
Add readmes for all modules 2021-07-17 00:27:58 +02:00
8cf5347b52 Base PGPainlessCLI on new sop-java module
* Rename pgpainless-sop -> pgpainless-cli
* Introduce sop-java (implementation-independent SOP API)
* Introduce sop-java-picocli (CLI frontend for sop-java)
* Introduce pgpainless-sop (implementation of sop-java using PGPainless)
* Rework pgpainless-cli (plugs pgpainless-sop into sop-java-picocli)
2021-07-15 17:03:56 +02:00
2ba782c451
Move file-related encryption-info into ProducerOptions 2021-07-10 12:22:47 +02:00
447c08b446 Add tests for ignoring marker packets when reading keys 2021-07-10 11:48:56 +02:00
0330d3cfa3 Add getMarkerPacket() test method 2021-07-10 11:48:46 +02:00
be4962c531 Fix KeyRingReader methods not ignoring marker packets 2021-07-10 11:48:39 +02:00
6a90c4303e
OpenPgpMetadat: identify verified sigs by SubkeyIdentifier 2021-07-04 13:08:24 +02:00
48314fde40
Assign sensible names to test() methods 2021-07-03 13:23:11 +02:00
70666d276b
Rework MultiMapTest 2021-07-03 13:20:25 +02:00
43a21de53a
Delete useless GenerateKeyTest 2021-07-03 12:59:33 +02:00
0321a6170c
Execute signature related tests on all implementations 2021-07-03 12:56:42 +02:00
a5dba7a368
Enable MultiPassphraseSymEncTest 2021-07-03 12:56:30 +02:00
7c612dd2ef
Parametrize BindingSignatureSubpacketsTest to run on all implementations 2021-07-03 12:50:44 +02:00
b4b84badc0
ImplementationFactory: override toString() 2021-07-03 12:44:21 +02:00
84ff6ce015
Improve tests 2021-07-03 12:42:17 +02:00
63c75f1f86
Rename TestUtil -> TestImplementationFactoryProvider 2021-07-03 12:42:12 +02:00
9ac4b30ec7
Delete unused NonEmptyList class 2021-07-03 12:24:08 +02:00
863d443052
Request deletion of temp test files upon exit 2021-07-03 12:23:40 +02:00
c8a281d6a4
Move UTC timestamp methods to DateUtil class 2021-07-03 12:23:24 +02:00
9b046a0cf1
Change SymmetricEncryptionAlgorithmNegotiator to return the 'best' avail. alg 2021-07-01 21:33:38 +02:00
30740aba4f
Add SymAlgoNegotiatorTest 2021-07-01 19:24:17 +02:00
3cb014e3f6
Add TestUtils.now() to have stable 'rounded' UTC dates in tests 2021-07-01 19:12:23 +02:00
9f76d16a34
Execute more tests on both implementation providers 2021-07-01 19:11:55 +02:00
cce0605ac3
Remove probably buggy, unused code 2021-07-01 18:55:21 +02:00
c234e38ae2
Add key extraction and ascii armor examples 2021-07-01 17:37:30 +02:00
77fbd8763e
PGPainless.java: Add extractCertificate and asciiArmor methods 2021-07-01 17:15:25 +02:00
b6eed91f47
Remove deprecated encryption API 2021-06-29 16:43:37 +02:00
ab347dab43 Remove deprecated decryption API code 2021-06-29 16:15:36 +02:00
42aed70719
Add SignatureTypeTest 2021-06-29 15:10:22 +02:00
fee3041bcb
Add test for SignatureSubpacket.fromCodes() 2021-06-29 15:03:37 +02:00
4947f17842
JUnit test the AlgorithmSuite class 2021-06-29 14:58:50 +02:00
733dcf0a7e
Remove deprecated method from PGPainless.java 2021-06-29 14:47:05 +02:00
9637ef5d35
Increase test coverage 2021-06-29 14:42:22 +02:00
dff47d17d1
Remove more unused methods and fix method name 2021-06-28 21:14:40 +02:00
02ddb71c07
Remove deprecated methods from PGPainless.java 2021-06-28 21:10:20 +02:00
9395fa80a2
Revert if-conditions to reduce indentation level 2021-06-28 21:06:12 +02:00
e13a2fce73
Solve some TODOs 2021-06-26 19:20:58 +02:00
60cbcac58b
Fix test and use new decryption API 2021-06-26 18:41:02 +02:00
715ae707ed Merge branch 'decryptionAPI2' 2021-06-26 18:36:04 +02:00
fc14a86d9c Add user-id revocation example 2021-06-26 18:33:41 +02:00
f6ffc4c28d Add examples for encryption and decryption of messages 2021-06-26 18:33:41 +02:00
9b34664ba2 Add example for unlocking secret keys 2021-06-26 18:33:41 +02:00
8d05eea92d Add documentation to ManagePolicy 2021-06-26 18:33:41 +02:00
e8311f0cc5 Add link to keylength.com 2021-06-26 18:33:41 +02:00
ac8fb5ad6b Add ManagePolicy example 2021-06-26 18:33:41 +02:00
4a0ef1ac6b Add ConvertKeys example 2021-06-26 18:33:41 +02:00
3de076eb31 Add modify keys tests 2021-06-26 18:33:41 +02:00
5c2910f6c1 Wip 2021-06-26 18:33:41 +02:00
0958915b4c Add examples for key generation and parsing 2021-06-26 18:33:41 +02:00
41b8d15cec CachingSecretKeyRingProtector: Add addPassphrase(OpenPgpV4Fingerprint, Passphrase) 2021-06-26 18:33:33 +02:00
dae5288456
Add KeyRingInfo.getVersion() 2021-06-26 16:30:54 +02:00
8a4908d29d TestUtils: Set UTC timezone and add formatUTCDate() 2021-06-24 15:10:13 +02:00
a6e5ca898f Fix NPEs in KeyRingInfo.getExpirationDateForUse() 2021-06-24 15:09:59 +02:00
548bfff93f
Fix: Respect user requested keyflags when adding a subkey. 2021-06-24 14:11:18 +02:00
259f629b3c
Further deletion of unused selection classes 2021-06-23 19:39:10 +02:00
3c37072774
Remove unused Selection classes 2021-06-23 19:33:13 +02:00
e7f685e63b
Tests: Make use of KeyRingInfo to determine encryption subkeys 2021-06-23 19:20:47 +02:00
df22c2a102
Remove duplicate code and throw NotYetImplementedExceptions where sensible 2021-06-16 15:49:43 +02:00
88891e1337
Remove usage of deprecated decryption/verification API in tests 2021-06-16 15:38:02 +02:00
715d055b41
Add documentation and deprecate old methods 2021-06-15 17:56:36 +02:00
8f425cd31d
Fix parsing of non-OpenPGP messages when handling detached signatures 2021-06-15 17:35:58 +02:00
70c4dcd1d2
Begin introducing new Decryption API 2021-06-15 17:08:40 +02:00
a65ea26181
Add tests for PublicKeyAlgorithmPolicy 2021-06-11 16:47:22 +02:00
5bb4fd3687
Add PublicKeyAlgorithmPolicy to reject weak public keys
BCs PGPPublicKey.getBitStrenght() appears to fail to recognize some elliptic curves.
In such cases, bitStrength is reported as -1.
I added BCUtil.getBitStrength(publicKey) to manually determine the bit strenght by OID.
See https://github.com/bcgit/bc-java/issues/972 for an upstream bug report.
2021-06-11 16:20:29 +02:00
e587fc46b8
SOP: Ignore marker packets in certificates 2021-06-10 16:56:36 +02:00
6b99f0aadc
Add tests for PGPKeyRingCollection 2021-06-10 16:21:04 +02:00
ed8584df95
Add policy tests 2021-06-10 15:41:44 +02:00
7696f120e6
Even more EncryptionOptions tests 2021-06-10 15:18:31 +02:00
762d9d4803
More EncryptionOptions tests 2021-06-10 15:04:21 +02:00
e297dfd3c1
EncryptionOptions: Consistent exceptions 2021-06-10 15:04:08 +02:00
512825aad4
Add test for EncryptionOptions 2021-06-10 14:25:00 +02:00
a2d0a75d42
Add SignatureStructureTest to test various signature field accessors 2021-06-10 13:37:10 +02:00
cc8a7826fc
Add KeyIdUtil with method to convert from 16 digit hex key-id to long 2021-06-10 13:36:44 +02:00
f7525dde65
Add get{,Un}HashedNotationData(sig, notationName) to SignatureSubpacketUtils 2021-06-10 13:35:55 +02:00
bedfef49fe
Add getSignatureDigestPrefix utility method to SignatureUtils 2021-06-10 13:35:09 +02:00
9b9064beae
Small code style fixes and optimizations 2021-06-10 12:42:48 +02:00
845779d40b
Avoid deprecated methods 2021-06-10 12:42:03 +02:00
27370fa925
Bump Bouncycastle to 1.69 2021-06-10 12:41:12 +02:00
ce4869e15a
UnlockSecretKey: Do not try to get decryptor for unencrypted keys 2021-05-31 15:38:47 +02:00
73f6c54fa2
More documentation 2021-05-31 15:33:42 +02:00
a871bc3a0c
Add documentation 2021-05-31 15:24:41 +02:00
1ad23366a7
Implement KeyRingInfo.getKeysWithFlag() and KeyRingInfo.getExpirationDateForUse() 2021-05-31 15:13:28 +02:00
8618d1faea
More tests 2021-05-31 13:59:56 +02:00
b07cb2467b
Alter tests to cover untested KeyRingBuilderInterface methods 2021-05-30 18:05:38 +02:00
ccdcd49c58
Remove deprecated method withMasterKey from KeyRingBuilderInterface 2021-05-30 18:05:09 +02:00
8e02df9a3e
Test FileBasedMultiPassStrategy 2021-05-29 14:13:08 +02:00
82536eaa77
Improve support for PGP[Secret|Public]KeyRingCollections 2021-05-29 13:52:29 +02:00
1a5baa0fa4
Clean up BCUtils class 2021-05-29 12:43:31 +02:00
13c7572c8c
Restore functionality of MissingPublicKeyCallback + JUnit test it 2021-05-29 12:19:12 +02:00
7bbc23d826
Test MissingDecryptionMethodException 2021-05-28 23:29:41 +02:00
fd0734b247
Remove legacy symmetric encryption code 2021-05-28 23:22:11 +02:00
ea03c66400
Throw MissingDecryptionMethodException when missing decryption key or -passphrase 2021-05-28 23:20:25 +02:00
77800f26e8
SecretKeyRingEditor: UserIDs only reside on primary keys 2021-05-28 23:14:20 +02:00
57c11a63e5
Remove unused throws declarations 2021-05-28 22:39:27 +02:00
c255439ee2
Cleanse duplicated code 2021-05-28 22:37:16 +02:00
a23f2c4401
Delete SelectSignatureFromKey class 2021-05-28 22:21:03 +02:00
293442d699
Delete unused EvaluatedKeyRing class 2021-05-28 21:42:31 +02:00
826c761e69
Test invalid keys cannot sign behavior 2021-05-28 21:41:02 +02:00
6f0cf35e31
Delete redundant classes 2021-05-28 21:33:20 +02:00
b1deb75969
Deprecate PGPainless.encryptAndOrSign(purpose) 2021-05-27 15:57:21 +02:00
9883d1537b
Move EncryptionPurpose to own class 2021-05-27 15:52:43 +02:00
3edaa60b52
Make KeyRingInfo NPE-safe 2021-05-27 14:50:48 +02:00
e3749f5734
Add SigningOptions.add{Inline|Detached}Signatures(decryptor, pgpSecretKeyRingCollection, type) 2021-05-27 13:55:18 +02:00
8e6abe5d02
Add EncryptionOptions.addRecipients(PGPPublicKeyRingCollection) 2021-05-27 13:47:24 +02:00
e67854310d
Change visibilit of non-API methods to package 2021-05-27 13:47:04 +02:00
629ebbd46d
Add missing javadoc 2021-05-27 13:46:40 +02:00