cc63095ab0
Kotlin conversion: SignatureSubpacketsUtil
2023-10-09 12:29:32 +02:00
6dc08e7445
Improve SignatureUtils readability
2023-10-09 12:29:32 +02:00
fa765fdb0d
Add documentation to PGPSignatureExtensions
2023-10-09 12:29:32 +02:00
85b1ffe2e9
Add PGPSignatureExtensions file
2023-10-09 12:29:32 +02:00
b33ee90845
Kotlin conversion: SignatureUtils
2023-10-09 12:29:32 +02:00
fca5c88d09
Kotlin conversion: OpenPgpMessageInputStream
2023-10-09 12:29:31 +02:00
1ab5377f70
Rename syntax checker enums to screaming snake case
2023-10-09 12:29:31 +02:00
603f07d014
Kotlin conversion: Syntax checking
2023-10-09 12:29:31 +02:00
a1a090028d
Kotlin conversion: PDA
2023-10-09 12:29:31 +02:00
de73b3b00b
Kotlin conversion: CertifyCertificate
2023-10-09 12:29:27 +02:00
39c5d12096
Use IntRange for Trustworthiness range check
2023-10-09 12:24:49 +02:00
e57e74163c
Finish Policy conversion and move kotlin classes to src/kotlin/
2023-10-09 12:24:49 +02:00
b68061373d
Wip: Kolin conversion of Policy
2023-10-09 12:24:49 +02:00
ca6e18d701
Kotlin conversion: SubkeyIdentifier
2023-10-09 12:24:49 +02:00
d36e878bf9
Kotlin conversion: OpenPgpFingerprints
2023-10-09 12:24:49 +02:00
344421a0f4
Kolin conversion: Some OpenPgpFingerprint classes
2023-10-09 12:24:49 +02:00
84e554fc0d
Kotlin conversion: CertificateAuthority
2023-10-09 12:24:48 +02:00
075ca4baa3
Kotlin conversion: CertificateAuthenticity
2023-10-09 12:24:48 +02:00
b91e19fc39
Kotlin conversion: PGPainless
2023-10-09 12:24:48 +02:00
5a5b604411
Add missing license header
2023-10-09 12:24:48 +02:00
cf7a7f3aca
Kotlin conversion: SymmetricKeyAlgorithmNegotiator
2023-10-09 12:24:47 +02:00
fb235d7810
Kotlin conversion: HashAlgorithmNegotiator
2023-10-09 12:24:47 +02:00
b5d8126e48
Kotlin conversion: AlgorithmSuite
2023-10-09 12:24:47 +02:00
382817dc5f
Kotlin conversion: Trustworthiness
2023-10-09 12:24:47 +02:00
3a62b39197
Kotlin conversion: SymmetricKeyAlgorithm
2023-10-09 12:24:47 +02:00
5da58904b6
Kotlin conversion: StreamEncoding
2023-10-09 12:24:47 +02:00
595b9c7379
Kotlin conversion: SignatureType
2023-10-09 12:24:46 +02:00
f0082d3fb7
Kotlin conversion: SignatureSubpacket
2023-10-09 12:24:46 +02:00
2fb7e6c3a3
Kotlin conversion: RevocationStateType
2023-10-09 12:24:46 +02:00
c8bfcc807b
Kotlin conversion: RevocationState
2023-10-09 12:24:46 +02:00
608edc2378
Kotlin conversion: PublicKeyAlgorithm
2023-10-09 12:24:46 +02:00
eb07b94bcb
Kotlin conversion: OpenPgpPacket
2023-10-09 12:24:45 +02:00
294c469a29
Kotlin conversion: KeyFlag
2023-10-09 12:24:40 +02:00
2c38490742
Kotlin conversion: HashAlgorithm
2023-10-09 12:22:04 +02:00
98e9c0934d
Kotlin conversion: Feature
2023-10-09 12:22:04 +02:00
eb94aa6063
Kotlin conversion: EncryptionPurpose
2023-10-09 12:22:03 +02:00
e9dceb4553
Kotlin conversion: DocumentSignatureType
2023-10-09 12:22:03 +02:00
dfb33a5ecb
Kotlin conversion: CompressionAlgorithm
2023-10-09 12:22:03 +02:00
644700c8ee
Kotlin conversion: CertificationType
2023-10-09 12:22:03 +02:00
94ad4cfbe7
Kotlin conversion: AEADAlgorithm
2023-10-09 12:22:03 +02:00
64dfefc9e7
Remove usage of PublicKeyAlgorithm.EC
2023-10-09 12:22:02 +02:00
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
41dfe71994
Pad long KeyIDs with zeros to 16 chars
2023-09-04 14:18:13 +02:00
1c3cc19ff7
Add documentation to OpenPgpInputStream
2023-08-03 15:20:24 +02:00
db7e1ce942
Allow overriding evluation date in SigningOptions
2023-08-03 14:57:31 +02:00
f0e59ecef5
EncryptionOptions: Allow overriding evaluation date for recipient keys
2023-08-03 14:48:57 +02:00
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
e167fa37f3
Make use of new ArmoredOutputStream.Builder
2023-08-01 16:53:55 +02:00
8cdb7ee4e0
Add more tests for V6 fingerprints
2023-08-01 15:29:24 +02:00
28e4bc44a1
Further integration of pgpainless-wot
2023-07-22 00:30:52 +02:00
6ac019a420
Add isAuthenticatablySignedBy() to MessageMetadata
2023-07-21 17:30:11 +02:00
44690d063c
Rename CertificateAuthority methods
2023-07-21 17:11:56 +02:00
c26ddc116e
Add identify API endpoint
2023-07-21 17:08:48 +02:00
ccbf4ab84d
Add documentation to CertificateAuthority
2023-07-21 16:55:21 +02:00
8926ff9dfb
s/identify/lookup
2023-07-21 16:50:49 +02:00
bf9bf94fb0
Integrate WoT by adding EncryptionOptions.addAuthenticatableRecipients() method
2023-07-21 16:38:34 +02:00
9d93c0f5ae
Add CertificateAuthority interface to enable integration with pgpainless-wot
2023-07-21 16:25:29 +02:00
59fa51bdf3
Expose SignatureValidator methods
2023-07-19 11:47:53 +02:00
f46790be00
Require UTF8 for KeyRingBuilder.addUserId(byte[])
2023-07-12 16:49:38 +02:00
d3fe850c95
Initial implementation of 'change-key-password' command of SOP-07
2023-07-12 00:40:59 +02:00
e61d414a98
Manually checkout SignatureSubpacketsUtil methods for wot
2023-07-07 11:26:55 +02:00
6487cf2371
Remove unused Certification class
2023-07-07 11:25:26 +02:00
d52968514c
Add methods to access delegations and 3rd-party certifications from keys
2023-07-07 11:25:08 +02:00
172972fe29
Add utility methods to KeyRingInfo
2023-07-07 11:24:43 +02:00
30481cd510
Fix unreliable unit test
...
Fixes #389
2023-07-07 11:07:14 +02:00
50bbdddc73
Update comment of KeyRingReader.publicKeyRingCollection()
2023-07-07 10:47:02 +02:00
4cc8054cff
KeyRingReader.readPublicKeyRingCollection: Handle secret keys as public keys
2023-07-07 10:43:41 +02:00
f37aa1097c
Prevent IAE when encountering non-UTF8 User-ID on a public key
...
Fixes #392
2023-07-07 10:42:18 +02:00
4be2956469
Remove unused methods from ImplementationFactory
2023-06-27 23:22:23 +02:00
0505b943de
Fix javadoc
2023-06-27 14:56:29 +02:00
53d6260210
Implement method to create minimal revocation certificate.
...
Fixes #386
2023-06-20 17:30:19 +02:00
2a7c6af022
Rename SecretKeyRingEditor.createRevocationCertificate() to createRevocation()
2023-06-20 16:41:46 +02:00
beccd6c5c7
Postpone removal of OpenPgpMetadata to 1.6.X
2023-06-19 12:36:59 +02:00
c962b7920b
Update workaround description in KeyInfo
2023-06-19 12:36:59 +02:00
90626a8a76
Add SignatureSubpacketsUtil.getRegularExpressions()
2023-06-19 11:27:49 +02:00
82cea93e7b
Replace JcaPGPObjectFactory with custom PGPObjectFactory.
...
Workaround for https://github.com/bcgit/bc-java/issues/1428
2023-06-15 15:20:08 +02:00
6b145475a8
Add test for anonymous recipients
2023-06-15 14:28:56 +02:00
e9cd6c55cf
Bump Bouncycastle
2023-06-15 14:28:45 +02:00
558e6693e6
Add javadoc
2023-06-15 14:10:52 +02:00
344f1fc67c
Allow hidden recipients using wildcard keyIDs
2023-06-15 14:10:52 +02:00
8369333355
Clean unused methods from SignatureUtils
2023-06-12 15:04:57 +02:00
1fca51d771
SigningOptions: Add methods to sign with a single, chosen signing subkey
2023-06-08 14:04:06 +02:00
5aabd1ced4
Fix faulty bit-strength policy check for signing subkeys
2023-06-08 13:54:20 +02:00
25cde8225d
Remove outdated javadoc @throws annotations
2023-06-08 03:18:24 +02:00
7769ff8173
Direct-Key signatures are calculated over the signee only, not the signer plus signee
2023-06-06 11:00:44 +02:00
41e663e25b
Allow setting custom version header when encrypting/signing message
2023-06-05 20:18:06 +02:00
324302c536
Add MultiMap.flatten()
2023-06-05 19:44:47 +02:00
41d734f2db
ProviderFactory: Provide default implementation of _getProviderName()
2023-06-05 19:30:14 +02:00
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
d25e7419c9
Replace new Date().getTime() with System.getCurrentTimeMillis()
2023-06-02 00:01:34 +02:00
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
be5562d273
Fix typo in feature name
2023-05-30 14:51:32 +02:00
55058d6070
Rename GNUPG features
2023-05-22 14:37:02 +02:00
5c11b8af08
Mark ArmoredInputStreamFactory methods as @Nonnull
2023-05-16 16:44:26 +02:00
772c0407b3
Mark ArmoredOutputStreamFactory methods as @Nullable
2023-05-16 16:43:53 +02:00
8b4dd0fc25
Annotate CollectionUtils methods with @Nullable, @Nonnull
2023-05-16 16:39:58 +02:00
126571a6cd
Document ProviderFactory
2023-05-16 16:34:57 +02:00
d3ae02f137
Mark KeyRingReader.read*KeyRing() as @Nullable/@Nonnull
2023-05-16 16:26:52 +02:00
1bf9abbdaf
Add link to EdDSA spec
2023-05-16 16:19:20 +02:00
0805076392
Deprecate ElGamal key type
2023-05-16 16:16:42 +02:00
e08505e07d
CertificateValidator: Skip revocation signatures not made by primary key
2023-05-03 17:25:59 +02:00
88de47490b
SignatureValidator: Prevent NPE when no EmbeddedSignature subpacket is found
2023-05-03 17:24:16 +02:00
005b9d477a
KeyRingReader: Remove unused @throws IOException
2023-05-03 17:23:13 +02:00
fb581f11c7
UserId.parse(): Prevent self-referencing javadoc
2023-05-03 17:20:02 +02:00
3cea985365
TeeBCPGInputStream: Annotate byte[] arg as @Nonnull
2023-05-03 17:19:18 +02:00
78cb2ec3d0
Do not catch and immediatelly rethrow exception
2023-05-03 17:16:56 +02:00
7a194c517a
Remove KeyRingUtils.removeSecretKey() in favor of stripSecretKey()
2023-05-03 17:15:30 +02:00
09bacd40d1
SecretKeyRingEditor: referenceTime cannot be null anymore
2023-05-03 17:14:18 +02:00
21ae48d8c1
Use assert statements to flag impossible NPEs
2023-05-03 17:13:29 +02:00
d05ffd0451
Make DateUtil null-safe
2023-05-03 16:11:06 +02:00
953206b4ed
Make more of the API null-safe by using @Nonnull/@Nullable
2023-05-03 16:03:50 +02:00
3b8a1b47d7
Add javadoc p-tags
2023-05-03 16:03:12 +02:00
64c6d7a904
Annotate EncryptionOptions methods with @Nonnull
2023-05-03 14:38:52 +02:00
304350fe5c
Add p-tags to EncryptionOptions javadoc
2023-05-03 14:38:38 +02:00
15f6cc70b1
Add MessageMetadata.getRecipientKeyIds()
...
Fixes #376
2023-05-03 14:30:08 +02:00
8869d9bd78
Simplify key template methods by replacing String and UserID args with CharSequence
2023-05-03 13:51:59 +02:00
9c81137f48
Add template methods to generate RSA keys with primary and subkeys
2023-05-03 13:51:34 +02:00
52fa7e4d46
OpenPgpMessageInputStream: Return -1 instead of throwing MalformedOpenPgpMessageException when calling read() on drained stream
2023-05-01 09:35:28 +02:00
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
2587f19df3
BC173: Fix CRC error detection by improving error check
2023-04-09 18:49:20 +02:00
46f7cfdb1a
Introduce OpenPgpv6Fingerprint
2023-04-07 12:28:27 +02:00
e744668f5a
Deprecate OpenPgpFingerprint.parse() methods
2023-04-07 11:47:40 +02:00
acb5d3fd9e
getEncryptionSubkeys(): Compare expirations against reference date
2023-04-07 11:26:38 +02:00
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
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
a50c2d9714
More missing javadoc
2023-01-16 20:15:57 +01:00
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
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
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
bfcfaa04c4
Add UserId.compare(uid1, uid2, comparator) along with some default comparators
2022-12-15 18:03:37 +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
ae6a427d90
Add test for UniversalSignatureBuilder
2022-11-25 15:34:54 +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
a495f2275c
Precise error message for IntegrityProtectedInputStream
2022-11-24 21:34:25 +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
f005885318
Add MessageMetadata.isVerifiedSigned() and .getVerifiedSignatures()
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
39f8f89fe0
Add convenience methods to MessageMetadata
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
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
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
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
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
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