Commit Graph

1326 Commits

Author SHA1 Message Date
Paul Schaub 39e170064c
Kotlin conversion: NotationRegistry 2023-10-09 12:44:22 +02:00
Paul Schaub dc064d1727
Kotlin conversion: KeyRingUtils 2023-10-09 12:44:22 +02:00
Paul Schaub ab42a7503f
Replace usage of KeyIdUtil.formatKeyId() in Kotlin classes with Long.hexKeyId() 2023-10-09 12:44:22 +02:00
Paul Schaub 44c22f9044
Kotlin conversion: KeyIdUtil
This PR also introduces LongExtensions.kt which provides extension methods to
parse Long from Hex KeyIDs and to format Longs as Hex KeyIDs.
2023-10-09 12:44:22 +02:00
Paul Schaub d075ed6637
Kotlin conversion: PGPKeyRingCollection 2023-10-09 12:44:21 +02:00
Paul Schaub 0e6a146594
Add missing license header 2023-10-09 12:44:21 +02:00
Paul Schaub f3ea9f62e1
Kotlin conversion: EncryptionOptions 2023-10-09 12:44:21 +02:00
Paul Schaub e9caa4af1f
Kotlin conversion: EncryptionBuilder + Interface 2023-10-09 12:44:21 +02:00
Paul Schaub bbd956dbb7
Kotlin conversion: KeyRingReader 2023-10-09 12:44:21 +02:00
Paul Schaub e3f51fbf56
Kotlin conversion: SecretKeyPassphraseProvider and subclasses
This commit also adds a workaround to build.gradle which enables proper Java interop for
Kotlin interfaces with default implementations
2023-10-09 12:44:20 +02:00
Paul Schaub 5cb6d6e41d
Kotlin conversion: S2KUsageFix 2023-10-09 12:44:20 +02:00
Paul Schaub 873db12125
Kotlin conversion: UnlockSecretKey 2023-10-09 12:44:20 +02:00
Paul Schaub 2547f1c687
Kotlin conversion: KeyRingProtectionSettings 2023-10-09 12:44:20 +02:00
Paul Schaub ee32d9e446
Kotlin conversion: CachingSecretKeyRingProtector 2023-10-09 12:44:20 +02:00
Paul Schaub b9c601b996
Kotlin conversion: PasswordBasedSecretKeyRingProtector 2023-10-09 12:44:19 +02:00
Paul Schaub b125333c89
Kotlin conversion: UnprotectedKeysProtector 2023-10-09 12:44:19 +02:00
Paul Schaub a8bc929f24
Kotlin conversion: BaseSecretKeyRingProtector 2023-10-09 12:44:19 +02:00
Paul Schaub 5fce443ad9
Kotlin conversion: SecretKeyRingProtector and subclasses 2023-10-09 12:44:19 +02:00
Paul Schaub c40e2ba6c2
Move const to companion object 2023-10-09 12:44:19 +02:00
Paul Schaub b343b4ad17
Kotlin conversion: KeyRingTemplates 2023-10-09 12:44:19 +02:00
Paul Schaub 41f56bdf99
Kotlin conversion: KeySpec 2023-10-09 12:44:15 +02:00
Paul Schaub bb17c627ce
Kotlin conversion: KeySpecBuilder 2023-10-09 12:43:16 +02:00
Paul Schaub eaef1fe44a
Kotlin conversion: KeyRingBuilder 2023-10-09 12:33:45 +02:00
Paul Schaub 43335cbcd3
Kotlin conversion: SessionKey 2023-10-09 12:29:34 +02:00
Paul Schaub 02511ac1ca
Kotlin conversion: SignatureVerification 2023-10-09 12:29:34 +02:00
Paul Schaub 48af91efbf
Kotlin conversion: Cleartext Signature Framework 2023-10-09 12:29:34 +02:00
Paul Schaub 8d67820f50
Kotlin conversion: OnePassSignatureCheck 2023-10-09 12:29:34 +02:00
Paul Schaub 145555997c
Kotlin conversion: SignatureCheck 2023-10-09 12:29:33 +02:00
Paul Schaub 1a701333e3
Remove deprecated OpenPgpMetadata class 2023-10-09 12:29:33 +02:00
Paul Schaub 8c25b59c8b
Add missing utility methods to MessageMetadata class 2023-10-09 12:29:33 +02:00
Paul Schaub 23f8777c34
Kotlin conversion: DecryptionStream 2023-10-09 12:29:33 +02:00
Paul Schaub 9988ba9940
Kotlin conversion: DecryptionBuilder 2023-10-09 12:29:33 +02:00
Paul Schaub 4a19e6ca20
WIP: Kotlin conversion: ConsumerOptions 2023-10-09 12:29:32 +02:00
Paul Schaub cc63095ab0
Kotlin conversion: SignatureSubpacketsUtil 2023-10-09 12:29:32 +02:00
Paul Schaub 6dc08e7445
Improve SignatureUtils readability 2023-10-09 12:29:32 +02:00
Paul Schaub fa765fdb0d
Add documentation to PGPSignatureExtensions 2023-10-09 12:29:32 +02:00
Paul Schaub 85b1ffe2e9
Add PGPSignatureExtensions file 2023-10-09 12:29:32 +02:00
Paul Schaub b33ee90845
Kotlin conversion: SignatureUtils 2023-10-09 12:29:32 +02:00
Paul Schaub fca5c88d09
Kotlin conversion: OpenPgpMessageInputStream 2023-10-09 12:29:31 +02:00
Paul Schaub 1ab5377f70
Rename syntax checker enums to screaming snake case 2023-10-09 12:29:31 +02:00
Paul Schaub 603f07d014
Kotlin conversion: Syntax checking 2023-10-09 12:29:31 +02:00
Paul Schaub a1a090028d
Kotlin conversion: PDA 2023-10-09 12:29:31 +02:00
Paul Schaub de73b3b00b
Kotlin conversion: CertifyCertificate 2023-10-09 12:29:27 +02:00
Paul Schaub 39c5d12096
Use IntRange for Trustworthiness range check 2023-10-09 12:24:49 +02:00
Paul Schaub e57e74163c
Finish Policy conversion and move kotlin classes to src/kotlin/ 2023-10-09 12:24:49 +02:00
Paul Schaub b68061373d
Wip: Kolin conversion of Policy 2023-10-09 12:24:49 +02:00
Paul Schaub ca6e18d701
Kotlin conversion: SubkeyIdentifier 2023-10-09 12:24:49 +02:00
Paul Schaub d36e878bf9
Kotlin conversion: OpenPgpFingerprints 2023-10-09 12:24:49 +02:00
Paul Schaub 344421a0f4
Kolin conversion: Some OpenPgpFingerprint classes 2023-10-09 12:24:49 +02:00
Paul Schaub 84e554fc0d
Kotlin conversion: CertificateAuthority 2023-10-09 12:24:48 +02:00
Paul Schaub 075ca4baa3
Kotlin conversion: CertificateAuthenticity 2023-10-09 12:24:48 +02:00
Paul Schaub b91e19fc39
Kotlin conversion: PGPainless 2023-10-09 12:24:48 +02:00
Paul Schaub 5a5b604411
Add missing license header 2023-10-09 12:24:48 +02:00
Paul Schaub cf7a7f3aca
Kotlin conversion: SymmetricKeyAlgorithmNegotiator 2023-10-09 12:24:47 +02:00
Paul Schaub fb235d7810
Kotlin conversion: HashAlgorithmNegotiator 2023-10-09 12:24:47 +02:00
Paul Schaub b5d8126e48
Kotlin conversion: AlgorithmSuite 2023-10-09 12:24:47 +02:00
Paul Schaub 382817dc5f
Kotlin conversion: Trustworthiness 2023-10-09 12:24:47 +02:00
Paul Schaub 3a62b39197
Kotlin conversion: SymmetricKeyAlgorithm 2023-10-09 12:24:47 +02:00
Paul Schaub 5da58904b6
Kotlin conversion: StreamEncoding 2023-10-09 12:24:47 +02:00
Paul Schaub 595b9c7379
Kotlin conversion: SignatureType 2023-10-09 12:24:46 +02:00
Paul Schaub f0082d3fb7
Kotlin conversion: SignatureSubpacket 2023-10-09 12:24:46 +02:00
Paul Schaub 2fb7e6c3a3
Kotlin conversion: RevocationStateType 2023-10-09 12:24:46 +02:00
Paul Schaub c8bfcc807b
Kotlin conversion: RevocationState 2023-10-09 12:24:46 +02:00
Paul Schaub 608edc2378
Kotlin conversion: PublicKeyAlgorithm 2023-10-09 12:24:46 +02:00
Paul Schaub eb07b94bcb
Kotlin conversion: OpenPgpPacket 2023-10-09 12:24:45 +02:00
Paul Schaub 294c469a29
Kotlin conversion: KeyFlag 2023-10-09 12:24:40 +02:00
Paul Schaub 2c38490742
Kotlin conversion: HashAlgorithm 2023-10-09 12:22:04 +02:00
Paul Schaub 98e9c0934d
Kotlin conversion: Feature 2023-10-09 12:22:04 +02:00
Paul Schaub eb94aa6063
Kotlin conversion: EncryptionPurpose 2023-10-09 12:22:03 +02:00
Paul Schaub e9dceb4553
Kotlin conversion: DocumentSignatureType 2023-10-09 12:22:03 +02:00
Paul Schaub dfb33a5ecb
Kotlin conversion: CompressionAlgorithm 2023-10-09 12:22:03 +02:00
Paul Schaub 644700c8ee
Kotlin conversion: CertificationType 2023-10-09 12:22:03 +02:00
Paul Schaub 94ad4cfbe7
Kotlin conversion: AEADAlgorithm 2023-10-09 12:22:03 +02:00
Paul Schaub 64dfefc9e7
Remove usage of PublicKeyAlgorithm.EC 2023-10-09 12:22:02 +02:00
Paul Schaub bf6c89af64
Test usability of keyflag-less key 2023-10-09 12:09:22 +02:00
Paul Schaub 1b96919d84
Allow generation of keys with empty key flags.
Forbid certification of thirdparty certificates if CERTIFY_OTHERS flag is missing
2023-10-09 12:02:10 +02:00
Paul Schaub 41dfe71994
Pad long KeyIDs with zeros to 16 chars 2023-09-04 14:18:13 +02:00
Paul Schaub 29165f3df4
Switch bcpg and bcprov artifacts from -jdk15to18 variant to -jdk18on 2023-08-29 16:57:05 +02:00
Paul Schaub 1c3cc19ff7
Add documentation to OpenPgpInputStream 2023-08-03 15:20:24 +02:00
Paul Schaub db7e1ce942
Allow overriding evluation date in SigningOptions 2023-08-03 14:57:31 +02:00
Paul Schaub 16a4836f8a
Override evaluation date in test with expiring key 2023-08-03 14:51:43 +02:00
Paul Schaub f0e59ecef5
EncryptionOptions: Allow overriding evaluation date for recipient keys 2023-08-03 14:48:57 +02:00
Paul Schaub 975d59c5a9
Add method to allow for encryption for keys with missing keyflags.
There are legacy keys around, which do not carry any key flags.
This commit adds a method to EncryptionOptions that allow PGPainless to encrypt
for such keys.

Fixes #400
2023-08-03 14:04:40 +02:00
Paul Schaub e167fa37f3
Make use of new ArmoredOutputStream.Builder 2023-08-01 16:53:55 +02:00
Paul Schaub 8cdb7ee4e0
Add more tests for V6 fingerprints 2023-08-01 15:29:24 +02:00
Paul Schaub 28e4bc44a1
Further integration of pgpainless-wot 2023-07-22 00:30:52 +02:00
Paul Schaub 6ac019a420
Add isAuthenticatablySignedBy() to MessageMetadata 2023-07-21 17:30:11 +02:00
Paul Schaub 44690d063c
Rename CertificateAuthority methods 2023-07-21 17:11:56 +02:00
Paul Schaub c26ddc116e
Add identify API endpoint 2023-07-21 17:08:48 +02:00
Paul Schaub ccbf4ab84d
Add documentation to CertificateAuthority 2023-07-21 16:55:21 +02:00
Paul Schaub 8926ff9dfb
s/identify/lookup 2023-07-21 16:50:49 +02:00
Paul Schaub bf9bf94fb0
Integrate WoT by adding EncryptionOptions.addAuthenticatableRecipients() method 2023-07-21 16:38:34 +02:00
Paul Schaub 9d93c0f5ae
Add CertificateAuthority interface to enable integration with pgpainless-wot 2023-07-21 16:25:29 +02:00
Paul Schaub 59fa51bdf3
Expose SignatureValidator methods 2023-07-19 11:47:53 +02:00
Paul Schaub f46790be00
Require UTF8 for KeyRingBuilder.addUserId(byte[]) 2023-07-12 16:49:38 +02:00
Paul Schaub d3fe850c95
Initial implementation of 'change-key-password' command of SOP-07 2023-07-12 00:40:59 +02:00
Paul Schaub e61d414a98
Manually checkout SignatureSubpacketsUtil methods for wot 2023-07-07 11:26:55 +02:00
Paul Schaub 6487cf2371
Remove unused Certification class 2023-07-07 11:25:26 +02:00
Paul Schaub d52968514c
Add methods to access delegations and 3rd-party certifications from keys 2023-07-07 11:25:08 +02:00
Paul Schaub 172972fe29
Add utility methods to KeyRingInfo 2023-07-07 11:24:43 +02:00
Paul Schaub 30481cd510
Fix unreliable unit test
Fixes #389
2023-07-07 11:07:14 +02:00
Paul Schaub 50bbdddc73
Update comment of KeyRingReader.publicKeyRingCollection() 2023-07-07 10:47:02 +02:00
Paul Schaub 4cc8054cff
KeyRingReader.readPublicKeyRingCollection: Handle secret keys as public keys 2023-07-07 10:43:41 +02:00
Paul Schaub bbdb300814
Add test to verify correct behavior dealing with non-utf8 userID 2023-07-07 10:42:32 +02:00
Paul Schaub f37aa1097c
Prevent IAE when encountering non-UTF8 User-ID on a public key
Fixes #392
2023-07-07 10:42:18 +02:00
Paul Schaub 4be2956469
Remove unused methods from ImplementationFactory 2023-06-27 23:22:23 +02:00
Paul Schaub 0505b943de
Fix javadoc 2023-06-27 14:56:29 +02:00
Paul Schaub f7576abd35
Minimal revocation certificate test: Test merging 2023-06-20 17:37:18 +02:00
Paul Schaub 53d6260210
Implement method to create minimal revocation certificate.
Fixes #386
2023-06-20 17:30:19 +02:00
Paul Schaub 2a7c6af022
Rename SecretKeyRingEditor.createRevocationCertificate() to createRevocation() 2023-06-20 16:41:46 +02:00
Paul Schaub beccd6c5c7
Postpone removal of OpenPgpMetadata to 1.6.X 2023-06-19 12:36:59 +02:00
Paul Schaub c962b7920b
Update workaround description in KeyInfo 2023-06-19 12:36:59 +02:00
Paul Schaub 90626a8a76
Add SignatureSubpacketsUtil.getRegularExpressions() 2023-06-19 11:27:49 +02:00
Paul Schaub 82cea93e7b
Replace JcaPGPObjectFactory with custom PGPObjectFactory.
Workaround for https://github.com/bcgit/bc-java/issues/1428
2023-06-15 15:20:08 +02:00
Paul Schaub 2b119e8214
Basic V6 parsing test (only check non-crashing) 2023-06-15 14:41:41 +02:00
Paul Schaub 6b145475a8
Add test for anonymous recipients 2023-06-15 14:28:56 +02:00
Paul Schaub e9cd6c55cf
Bump Bouncycastle 2023-06-15 14:28:45 +02:00
Paul Schaub 558e6693e6 Add javadoc 2023-06-15 14:10:52 +02:00
Paul Schaub 344f1fc67c Allow hidden recipients using wildcard keyIDs 2023-06-15 14:10:52 +02:00
Paul Schaub 383c9799c3
Add test for minimal revocation certificate 2023-06-13 19:46:56 +02:00
Paul Schaub 8369333355
Clean unused methods from SignatureUtils 2023-06-12 15:04:57 +02:00
Paul Schaub 814421fe79
Test constructor of RevocationState.softRevoked() requires non-null date 2023-06-12 15:04:57 +02:00
Paul Schaub b9c2e8dfe9
Add test for weak public key behavior 2023-06-12 14:27:07 +02:00
Paul Schaub 1fca51d771
SigningOptions: Add methods to sign with a single, chosen signing subkey 2023-06-08 14:04:06 +02:00
Paul Schaub 5aabd1ced4
Fix faulty bit-strength policy check for signing subkeys 2023-06-08 13:54:20 +02:00
Paul Schaub 25cde8225d
Remove outdated javadoc @throws annotations 2023-06-08 03:18:24 +02:00
Paul Schaub 7769ff8173
Direct-Key signatures are calculated over the signee only, not the signer plus signee 2023-06-06 11:00:44 +02:00
Paul Schaub d3ef513960
Fix checkstyle issues 2023-06-05 21:12:16 +02:00
Paul Schaub 41e663e25b
Allow setting custom version header when encrypting/signing message 2023-06-05 20:18:06 +02:00
Paul Schaub add1b89019
Add test for MultiMap.putAll() 2023-06-05 19:44:58 +02:00
Paul Schaub 324302c536
Add MultiMap.flatten() 2023-06-05 19:44:47 +02:00
Paul Schaub 41d734f2db
ProviderFactory: Provide default implementation of _getProviderName() 2023-06-05 19:30:14 +02:00
Paul Schaub 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
Paul Schaub e1038a8bb3
Replace more occurrences of new Date().getTime() with System.currentTimeMillis() 2023-06-02 00:03:55 +02:00
Paul Schaub d25e7419c9
Replace new Date().getTime() with System.getCurrentTimeMillis() 2023-06-02 00:01:34 +02:00
Paul Schaub 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
Paul Schaub be5562d273
Fix typo in feature name 2023-05-30 14:51:32 +02:00
Paul Schaub 55058d6070
Rename GNUPG features 2023-05-22 14:37:02 +02:00
Paul Schaub 5c11b8af08
Mark ArmoredInputStreamFactory methods as @Nonnull 2023-05-16 16:44:26 +02:00
Paul Schaub 772c0407b3
Mark ArmoredOutputStreamFactory methods as @Nullable 2023-05-16 16:43:53 +02:00
Paul Schaub 8b4dd0fc25
Annotate CollectionUtils methods with @Nullable, @Nonnull 2023-05-16 16:39:58 +02:00
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 92a5e559f8
Earlier catching of NPEs in tests 2023-05-03 17:26:21 +02:00
Paul Schaub e08505e07d
CertificateValidator: Skip revocation signatures not made by primary key 2023-05-03 17:25:59 +02:00
Paul Schaub 495ff6aa5d
Fix javadoc reference 2023-05-03 17:25:19 +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