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
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
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
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
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
ae88fdf4ab
Document ArmoredOutputStreamFactory.setVersionInfo(null)
2022-11-11 13:49:28 +01:00
86b06ee5e3
SOP: Hide armor version header by default
2022-11-11 13:46:43 +01:00
c253732ad9
Do not reject bnacksig signatures when they predate subkey binding date
...
Fixes #334
2022-11-09 15:44:20 +01:00
50d18a4581
Fix NPE when validating signature made by key without keyflags on direct key sigature
...
(Presumably) fixes #332
2022-11-07 15:34:18 +01:00
b02ae86ff6
Annotate SignatureSubpacketsUtil methods with @Nullable and @Nonnull
2022-11-07 15:34:18 +01:00
754fcf72a1
Implement ProducerOptions.setHideArmorHeaders()
...
Fixes #328
2022-10-31 11:43:24 +01:00
f94917d01f
Fix checkstyle issue
2022-09-28 13:18:34 +02:00
d74a8d0408
Add PGPainless.asciiArmor(PGPSignature)
2022-09-27 16:28:31 +02:00
5bccc1960e
Add PGPainless.asciiArmor(key, outputStream)
2022-09-27 16:12:26 +02:00
639d2a19f8
Remove unused provideSessionKeyDataDecryptorFactory() methods
2022-09-13 20:27:16 +02:00
609bb4556a
Use ImplementationFactory.getSessionKeyDataDecryptorFactory() method
2022-09-13 20:26:13 +02:00
0e45de9b4a
Formatting
2022-09-13 20:23:06 +02:00
9e403c1124
Add ImplementationFactory.getSessionKeyDataDecryptorFactory() and impls
2022-09-13 20:22:53 +02:00
31c4570d10
Move finalization of signatures into own method
2022-09-07 13:48:59 +02:00
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
cd0b9603e7
Add KeyRingUtils.injectCertification(keys, certification)
2022-09-05 15:15:58 +02:00
70ce4d45f4
Remove unused CRCinArmoredInputStreamWrapper.possiblyWrap()
2022-09-05 14:20:11 +02:00
3cd5a95d89
Rename inspectionDate to referenceTime
2022-09-03 13:48:02 +02:00
7189516dd4
Add documentation for modifyKeyRing(keys, date)
2022-09-03 13:46:32 +02:00
c3dc3c9d87
Allow modification of keys with custom reference date
...
Also, bind subkeys using SubkeyBindingSignatureBuilder
2022-09-03 13:42:58 +02:00
15046cdc32
Switch default S2K for secret key protection over to use SHA256 and add documentation
2022-08-31 21:37:31 +02:00
c6676d3c91
Add support for generating keys without user-ids
...
Fixes #296
2022-08-29 14:12:02 +02:00
bc24c4626a
Add ConsumerOptions.get() factory method
2022-08-29 13:00:50 +02:00
5746985bb7
Add EncryptionOptions.get() factory method
2022-08-29 12:46:36 +02:00
d1001412a1
Add SigningOptions.addDetachedSignature(protector, key) shortcut method
2022-08-29 12:36:16 +02:00
39ff2bca73
Fix javadoc of SigningOptions methods
2022-08-29 12:35:51 +02:00
1b04d67e1a
Remove unused SignatureSubpacketGeneratorUtil class and tests
2022-08-29 11:30:26 +02:00
0cc884523c
Integrate RevocationState into KeyRingInfo class
2022-08-29 11:30:10 +02:00
c73905d179
Import RevocationStateTest from wot branch
2022-08-29 11:12:42 +02:00
d019c0d5db
Add RevocationState implementation from wot branch
2022-08-29 11:09:32 +02:00
405e67c0cb
Add documentation to AlgorithmNegotiator classes
2022-08-29 11:06:17 +02:00
7faa6c580a
Remove deprecated ArmorUtils.createArmoredOutputStream()
2022-08-29 10:38:44 +02:00
054828ef8c
Remove deprecated EncryptionResult.getSymmetricKeyAlgorithm()
...
Use getEncryptionAlgorithm() instead
2022-08-29 10:37:55 +02:00
bc5dc50b78
Add KeyRingInfo.isSigningCapable()
...
Fixes #307
2022-08-09 15:08:59 +02:00
e6b89e2c3b
Add KeyRingReader.keyRing(*) mnethods to read either a public or secret key ring
2022-08-08 13:15:03 +02:00
ca09ac62ca
KeyRingInfo.isUsableFor*(): Check if primary key is revoked
2022-08-03 13:37:18 +02:00
c1de66e1d7
Fix javadoc lying about only encrypting to single subkeys
...
Fixes #305
2022-08-02 16:53:01 +02:00
e67d5b405c
Add javadoc to ProducerOptions.noEncryptionNoSigning()
2022-07-18 14:50:53 +02:00
9b6d08f3c5
Add MODIFICATION_DETECTION_2 feature constant
2022-07-18 12:03:16 +02:00
cd5982cd47
Add AEADAlgorithm class and test
2022-07-18 11:30:37 +02:00
59adbe1d0a
Add SHA3 hash algorithms to HashAlgorithm class
2022-07-18 11:30:25 +02:00
fe913172d5
Add missing javadoc
2022-07-16 12:58:22 +02:00
6fc1d25db8
Merge branch 'fix298'
2022-07-16 12:37:20 +02:00
ba191a1d0f
Prevent adding NULL to symmetric algorithm preference when generating key
...
Fixes #301
2022-07-15 14:19:45 +02:00
dec3c8be60
Add SecretKeyRingEditor.replaceUserId(old,new,protector)
2022-07-15 14:00:41 +02:00
32e1f1234b
Add KeyRingUtils.publicKeyRingCollectionFrom(PGPSecretKeyRingCollection)
2022-07-15 13:21:59 +02:00
50d31eb463
KeyRingTemplates: Add methods taking Passphrase as argument
2022-07-11 14:15:54 +02:00
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
170aaaa0c5
Document KO protection utility class
2022-07-04 11:05:16 +02:00
a99ce15969
Forward userIdOnCertificate() method call
2022-06-30 13:11:27 +02:00
b8f4cc3935
Merge branch 'certification'
2022-06-29 16:01:03 +02:00
b2a5351cc3
Delete unused KeyRingValidator class
2022-06-29 16:00:21 +02:00
7e0b1b344c
s/{validation|evaluation}Date/referenceTime/g
2022-06-24 12:47:35 +02:00
0c0f82ce2e
Add KeyRingInfo constructor that takes Policy instance
2022-06-24 12:29:03 +02:00
3f40fb99ef
Add RevocationState enum
2022-06-24 12:28:56 +02:00
0c28c7a389
symmetrically encrypted messages are still encrypted
2022-06-23 11:46:19 +02:00
e5ba4f9933
Add buffer to improve encryption performance
2022-06-21 19:48:49 +02:00
8d1794544a
Fix indentation
2022-06-21 19:48:38 +02:00
82ff62b4e6
Remove unused NotYetImplementedException
2022-06-20 17:58:27 +02:00
a944d2a6b9
Fix build errors
2022-06-20 15:09:02 +02:00
7223b40b23
Add javadoc and indentation
2022-06-20 12:44:40 +02:00
8d2afdf3b6
Make certify() methods public
2022-06-20 12:44:40 +02:00
bbd94c6c9a
More documentation
2022-06-20 12:44:40 +02:00
870af0e005
Add javadoc documentation to Trustworthiness class
2022-06-20 12:44:40 +02:00
d2b48e83d9
Implement certifying of certifications
2022-06-20 12:44:40 +02:00
fa5ddfd112
WIP: Implement delegations
...
THERE ARE THINGS BROKEN NOW. DO NOT MERGE!
2022-06-20 12:44:40 +02:00
c1170773bc
Implement certification of third party keys
2022-06-20 12:44:40 +02:00
75455f1a3c
Add OpenPgpMetadata.isCleartextSigned and use it in sop to determine if message was cleartext signed
2022-06-19 17:31:48 +02:00
2d60650cc6
Progress on SOP04 support
2022-06-19 16:59:42 +02:00
53df487e59
Adopt changes from SOP-Java and add test for using incapable keys
2022-06-19 16:59:42 +02:00
9a545a2936
Wip: SOP 4
2022-06-19 16:59:42 +02:00
57fbb469ea
Fix performance issue of encrypt and sign operations by buffering
2022-06-16 11:22:35 +02:00
444ec6d593
Add documentation to enforceBounds()
2022-06-01 13:40:07 +02:00
44c32d0620
When setting expiration dates: Prevent integer overflow
2022-06-01 13:36:00 +02:00
70a861611c
Improve SignatureUtils.wasIssuedBy() by adding support for v5 fingerprints
2022-05-18 14:21:22 +02:00
9921fc6ff6
Add and test OpenPgpFingerprint.parseFromBinary(bytes)
2022-05-18 14:19:08 +02:00
1a37058c66
Add SignatureUtils.getSignaturesForUserIdBy(key, userId, keyId)
2022-05-17 18:38:48 +02:00
77d010ec94
Add CollectionUtils.addAll(iterator, collection)
2022-05-17 18:38:48 +02:00
51baa0e5cb
Add modernKeyRing(userId) shortcut method
2022-05-17 18:38:48 +02:00
8fd67da973
Add comment about readSignatures skipping compressed data packets
2022-05-08 11:34:56 +02:00
12e62d381c
Make readSignatures skip over compressed data packets without decompression.
2022-05-08 11:24:34 +02:00
49d65788b4
Remove support for processing compressed detached signatures
...
Signatures are indistinguishable from randomness, so there is no point in
compressing them, apart from attempting to exploit flaws in compression
algorithms.
Thanks to @DemiMarie for pointing this out
Fixes #286
2022-05-07 21:46:12 +02:00
d3f412873b
Fix checkstyle issues
2022-05-07 21:44:52 +02:00
374e6452f0
Add RevokedKeyException
2022-05-07 14:12:18 +02:00
3e7e6df3f9
Disallow stripping of primary secret keys
2022-05-07 14:11:39 +02:00
64a50266f1
Test for detection of uncompressed, signed messages, and improve decryption of seip messages
2022-05-05 12:43:44 +02:00
826331917f
Add comments to unexhaustive parsing method
2022-05-05 11:15:19 +02:00
69f84f24b6
Implement heavy duty packet inspection to figure out nature of data
2022-05-04 20:55:29 +02:00
288f1b414b
Fix javadoc links
2022-05-03 11:31:19 +02:00
2b37c4c9cb
Deprecate Policy.*.default*Policy() methods in favor of methods with more expressive names
...
You cannot tell, what defaultHashAlgorithmPolicy() really means.
Therefore the default methods were deprecated in favor for more expressive methods
2022-05-03 11:23:40 +02:00
b980fcd7b1
EncryptionOptions.addRecipients(collection): Disallow empty collections
...
Fixes #281
2022-04-29 22:49:45 +02:00
4698b68015
Fix javadoc generation
2022-04-23 01:47:44 +02:00
9b8cf37dd1
Use smart hash algorithm policy as default revocation hash policy
2022-04-22 23:06:40 +02:00
6c983d66e0
Take hash algorithm usage date into account when checking algorithm acceptance
2022-04-22 22:45:39 +02:00
4764202ac9
Change visibility of BcPGPHashContextContentSignerBuilder constructor
2022-04-22 22:43:19 +02:00
6c442e9568
Merge remote-tracking branch 'origin/hashContextSigner'
2022-04-22 21:36:47 +02:00
230725f6ff
Add option to force handling of data as non-openpgp
2022-04-22 21:33:13 +02:00
8172aa1083
Update documentation of #96 workaround
2022-04-22 20:56:02 +02:00
46f69b9fa5
Introduce OpenPgpInputStream to distinguish between armored, binary and non-OpenPGP data
2022-04-22 20:53:44 +02:00
73b7f1b9bb
Refactoring
2022-04-19 21:07:46 +02:00
c3dfb254b1
Experimental implementation of signing of existing hash contexts (MessageDigest instances)
2022-04-16 00:23:20 +02:00
b64d6e8e55
Stabilize HashAlgorithm.fromName()
2022-04-16 00:22:41 +02:00
05022fcbb5
Fix whitespace error
2022-04-07 21:17:00 +02:00
e4bccaf58d
Add support for RegularExpression subpackets ( fixes #246 )
2022-04-07 20:47:47 +02:00
7710845454
Simplify setPolicyUrl implementation
2022-04-07 20:46:21 +02:00
d4c56f655f
Add support for PolicyURI subpackets ( fixes #248 )
2022-04-07 20:41:21 +02:00
5f65ca4437
Remove workaround for BC not properly parsing RevocationKey subpacket
2022-04-07 20:28:45 +02:00
d0544e690e
Fix KeyRingUtils.keysPlusPublicKey()
2022-04-07 20:24:36 +02:00
361d2376f5
Update documentation on curve oid workaround
2022-04-07 20:21:07 +02:00
73fa46895e
Implement merging of certificates
...
Fixes #211
2022-04-07 19:51:42 +02:00
a22336a795
Create dedicated KeyException class for key-related exceptions.
2022-04-07 19:42:58 +02:00
a7d56e3461
PGPainless 1.1.5
2022-04-05 14:48:44 +02:00
Péter Barabás
30c9ea254a
Fix XML comment
2022-04-05 14:36:58 +02:00
Péter Barabás
8c6813ce56
#266 Handle ClassCastException in signature.init calls
2022-04-05 14:36:58 +02:00
f6c6b9aded
Do not attempt to verify signatures made by external keys using primary key.
...
This aims at fixing #266 in combination with #267 .
2022-04-05 14:10:04 +02:00
0bce68d6ee
Add shortcut SigningOptions.addSignature() method
2022-04-04 20:18:15 +02:00
d0b070f0f3
Fix javadoc
2022-04-04 20:17:57 +02:00
2065b4e4ed
Document planned removal of BCUtil.constantTimeAreEquals(char[], char[])
2022-04-04 13:08:24 +02:00
2c86d8dfe4
Document various KeyRingSelectionStrategies
2022-04-04 12:49:00 +02:00
7ca9934cbe
Document KeyRingSelectionStrategy
2022-04-04 12:32:37 +02:00
bfbe03f9e0
Document SelectUserIds
2022-04-04 12:19:07 +02:00
4aaa242d64
Add javadoc to SignatureSubpacketsUtil
2022-04-04 10:40:57 +02:00
58dee0d970
Fix javadoc warnings
2022-04-02 18:56:05 +02:00
4bd01578fb
Fix javadoc generation
2022-04-02 18:14:17 +02:00
6869c66937
Add TODOs to remove deprecated methods in 1.2.X
2022-04-02 17:12:12 +02:00
8ec86e6464
Rename KeyRingUtil.removeSecretKey() to stripSecretKey()
2022-04-02 17:03:38 +02:00
50bcb6a135
Fix changelog and change method signature
2022-04-02 16:18:12 +02:00
39382c7de6
Add annotations to SignatureGenerationStream constructor
2022-04-02 16:18:12 +02:00
131c0c6d03
Add javadoc header to SignatureGenerationStream
2022-04-02 16:18:12 +02:00
f8e66f4d61
Add ProducerOptions.applyCRLFEncoding()
...
Enabling it will automatically apply CRLF encoding to input data.
Further, disentangle signing from the encryption stream
2022-04-02 16:18:12 +02:00
6bef376992
Fix signature generation with all format and signature type combinations
...
This comes at the cost of that we no longer CR/LF encode literal data before encryption/signing.
That means that applications that rely on PGPainless to do the CR/LF encoding must manually
do the encoding before feeding the message to PGPainless.
The newly introduced CRLFGeneratorStream has documentation on how to do that.
Fixes #264
2022-03-30 16:13:08 +02:00
87e6b044d9
Add EncryptionStream class description
2022-03-30 12:18:03 +02:00
620deaa1f9
Deprecate ProducerOptions.setEncoding()
...
The reason is that values other than BINARY oftentimes cause issues
(see https://github.com/pgpainless/pgpainless/issues/264 ), and further
experts recommended to ignore the metadata of the LiteralData packet
and only produce with ('b'/0/) as metadata values.
2022-03-27 17:34:24 +02:00
1cb3e559b5
Eliminate removed 'm' StreamEncoding
2022-03-27 17:29:42 +02:00
80d97b1bc0
Fix malformed signature packets
2022-03-27 17:01:31 +02:00
8ff405d6ad
Add toString() to SessionKey
2022-03-24 14:16:13 +01:00
405c7225f6
Deprecate ProducerOptions.setForYourEyesOnly()
...
Use of this special file name is deprecated since at least crypto-refresh-05
2022-03-23 15:17:29 +01:00
e8b03834cb
Annotate fromId(code) methods with Nullable and add Nonnull requireFromId(code) methods
2022-03-22 15:09:09 +01:00
16b0d0730e
Annotate and document ArmorUtils class
2022-03-22 14:17:35 +01:00
e89e0f216c
Annotate KeyRingUtils methods with Nullable and Nonnull
2022-03-22 13:20:36 +01:00
4bae2e74c4
Add documentation for further KeyRingUtils methods
2022-03-22 13:05:27 +01:00
b5ccb23a62
Add documentation for KeyRingUtils.removeSecretKey()
2022-03-22 12:49:30 +01:00
3585203557
Prettify user-id info on armor
2022-03-21 16:44:59 +01:00
Simon Frankenberger
e569c2c991
ArmorUtils now prints out the primary user-id and brief information about other user-ids
2022-03-21 16:09:45 +01:00
29dc20d0bc
Add EncryptionResult.isEncryptedFor(certificate)
2022-03-15 17:02:02 +01:00
ecfa3823fb
Add utility method to remove secret subkey from key ring
...
This might be useful for offline primary keys
2022-03-15 17:01:50 +01:00
ffdbd21491
Implement configuration option for SignerUserId subpacket verification level.
...
By default we ignore SignerUserId subpackets on signatures.
This behavior can be changed by calling Policy.setSignerUserIdValidationLevel().
Right now, STRICT and DISABLED are available as options, but it may make sense to implement
another option PARTIALLY, which will accept signatures made by key with user-id 'A <foo@bar>'
but where the sig contains a signer user id of value 'foo@bar' for example.
2022-03-14 11:10:12 +01:00
661c043cdc
DFix KeyRingInfo.getValidAndExpiredUserIds considering unbound user-ids as valid
2022-03-13 16:52:57 +01:00