8539157405
Move builder() method above Builder class
2021-08-15 15:46:41 +02:00
54a4625fed
fix comments and javadoc
2021-08-15 15:46:41 +02:00
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
80a6baf0b1
Move File-based MultiPassStrategy from factory method into own class
2021-05-25 22:23:08 +02:00
3cd64b61ca
Fix SOP encrypt-decrypt test
2021-05-25 16:25:22 +02:00
b0692b4dc5
Fix javadoc reference
2021-05-25 14:24:47 +02:00
5965742e5f
Document DocumentSignatureType
2021-05-25 14:24:47 +02:00
412b0aa119
Add SymmetricKeyAlgorithmNegotiator
2021-05-25 14:24:47 +02:00
821a49576f
AlgorithmSuite: Use LinkedHashSet instead of List
2021-05-25 14:24:47 +02:00
1550e4ff4e
Delete SelectPublicKey
2021-05-25 14:24:47 +02:00
4e63313c91
Do some first prototype algorithm negotiation
2021-05-25 14:24:38 +02:00
909f0e7be3
Work on KeyRingInfo
2021-05-25 14:24:26 +02:00
6cb9091b2a
Work on signaturePicker
2021-05-25 14:24:16 +02:00
a30767eb91
Fix tests
2021-05-25 14:24:10 +02:00
d70ee86468
Prevent plaintext encryption
2021-05-25 14:23:58 +02:00
803e507ae7
Add some comments
2021-05-25 14:23:58 +02:00
89a0adddd8
Reworking encryption/decryption API.
2021-05-25 14:23:42 +02:00
7e2c89b1b3
Trim passphrases
2021-05-20 12:41:51 +02:00
a72cff28d8
Improve user-id revocation tests
2021-05-17 18:28:37 +02:00
87e5fe71e5
Fix javadoc warning
2021-05-17 13:50:34 +02:00
197cfab0d6
Respect symmetric algorithm policy during decryption and throw UnacceptableAlgorithmException if policy is violated
2021-05-17 13:47:46 +02:00
03fb81a77e
Create separate symmetric key algorithm policies for encryption/decryption
2021-05-15 20:43:56 +02:00
3be7f12887
Remove SignatureValidationDateProvider
2021-05-15 20:30:21 +02:00
11b67ea6d2
Add documentation to Policy
2021-05-15 20:27:43 +02:00
225bc78ee1
Implement signature verification of cleartext-signatures
2021-05-15 18:44:03 +02:00
14ff0e9cc5
ArmorUtils: Add support for messageIds
2021-05-15 16:24:01 +02:00
937ec2aa86
Add HashAlgorithm.getAlgorithmName()
2021-05-15 16:23:35 +02:00
b05f6887bd
Better support for Armor headers
2021-05-15 15:57:42 +02:00
f2e89bae36
Remove deprecated/reserved hash algorithms and add algo names
2021-05-15 15:57:42 +02:00
9358e58fb3
Improve CachingSecretKeyRingProtector
2021-05-14 18:55:26 +02:00
95121e2a55
Get rid of redundant SecretKeyRingProtector implementations.
2021-05-14 18:37:47 +02:00
8313895f26
Remove redundant exceptions
2021-05-14 13:20:16 +02:00
5a56949dd7
Throw WrongPassphraseException when wrong passphrase is provided to unlock secret key
2021-05-14 13:18:34 +02:00
32e1b0c838
KeyRingBuilder: Do not info-log exception when generated key has wrong length
2021-05-12 12:56:07 +02:00
892f452da8
Print fingerprint+user-id in comment headers of Armor
2021-05-08 14:02:44 +02:00
ec611d7c5f
OpenPgpV4Fingerprint: Support pretty print format
2021-05-08 14:01:42 +02:00
99be722875
Do not spaghetti
2021-05-03 14:11:59 +02:00
431a65517e
Add documentation to signature related classes
2021-05-03 13:37:47 +02:00
ec85f53bb6
Incorporate feedback from @IvanPizhenko. Thanks!
2021-04-30 10:23:12 +02:00
64cc9ecca4
Proper Signature Verification
2021-04-30 09:49:19 +02:00
6ee8a9416f
Prevent decryption of messages using SED instead of SEIP packets and create dedicated exceptions for MDC related errors
2021-04-27 12:27:25 +02:00
Ivan Pizhenko
eb47e5caa3
issue #107 Add method KeyRingInfo.isFullyEncrypted() ( #110 )
...
Add method KeyRingInfo.isFullyEncrypted()
Fixes #107
Co-authored-by: Ivan Pizhenko <IvanPizhenko@users.noreply.github.com>
2021-04-27 11:06:04 +02:00
0b3511486c
Add documentation to DecryptionStream(Interface)
2021-04-25 13:34:30 +02:00
7916bf77d1
Add javadoc to enums
2021-04-25 13:28:33 +02:00
2c4a3fca6a
Introduce OpenPgpMetadata.FileInfo class for setting/getting file name, mod date, encoding...
2021-04-25 00:28:48 +02:00
Den
491ab93c41
Modified Passphrase.fromPassword() to fit Kotlin needs ( #101 )
...
* Added @Nonnull annotation to Passphrase.fromPassword()
2021-04-10 14:32:24 +02:00
39e87f9ce4
Fix checkstyle issues
2021-04-10 13:09:32 +02:00
DenBond7
43647f3145
Added PGPKeyRingCollection. Added tests to KeyRingReaderTest to cover parsing of private/pub keys combinations.
2021-04-10 13:08:04 +02:00
DenBond7
8e569e7931
Added tests to KeyRingReaderTest to cover different cases of the source.
2021-04-10 13:08:04 +02:00
6954c03f49
Fix checkstyle issue
2021-04-09 12:05:46 +02:00
cd19f91d77
Allow specification of file name and for-your-eyes-only flag
2021-04-07 21:31:12 +02:00
d082f126b3
Use more standards compliant way to determine if secret key is encrypted
2021-04-07 21:14:31 +02:00
ed43d3c6a9
Fix javadoc error
2021-03-23 01:26:51 +01:00
d0a162ce74
Merge branch 'parse_public_key_ring_collection_from_armored_source'
2021-03-23 01:06:37 +01:00
46140e6561
Fix checkstyle issues in tests and make small adjustments
2021-03-23 01:06:15 +01:00
ce0bf970d6
KeyRingReader: Fix reading PGPKeyRingCollections
2021-03-23 01:05:45 +01:00
f427e3c7d0
Add documentation to SignatureSubpacket class
2021-03-21 20:15:18 +01:00
883c819536
GenerateKeyTest: Print public key instead of secret key
2021-03-18 21:33:39 +01:00
8c97b6ead1
In PasswordBasedSecretKeyRingProtector.forKey(ring, passphrase): Return passphrase also for subkeys
...
Fixes #97 , thanks @DenBond7
2021-03-18 21:28:08 +01:00
DenBond7
fb82f711d8
Updated KeyRingReaderTest. Added publicKeyRingCollectionFromNotArmoredStream()
2021-03-17 14:55:05 +02:00
DenBond7
f34c787a4d
Added working tests(string, bytes) to EncryptDecryptTest
2021-03-17 13:49:31 +02:00
DenBond7
447593a65d
Added tests for PGPainless.readKeyRing().publicKeyRingCollection()(different resources)
2021-03-17 12:51:02 +02:00
bfbb2ba31b
Fix checkstyle error
2021-03-05 12:32:21 +01:00
d5ac1301e0
Add primary key binding sigs to signing subkeys
2021-03-04 16:33:46 +01:00
c5fbdbbc9b
Disable MultiPassphraseEncryptionTest until https://github.com/pgpainless/pgpainless/issues/72 is fixed
2021-02-27 15:22:29 +01:00
bfab4b60f0
Introduce parametrized tests to also test the JceImplementationFactory
2021-02-25 23:27:08 +01:00
8c041e6856
Fix equality check in CallbackBasedKeyringProtector
2021-02-25 23:11:17 +01:00
e661908c5f
Fix NPE when creating SecretKeyEncryptor for key without S2K spec
2021-02-25 23:10:25 +01:00
9587d52f29
Add test for Feature class
2021-02-25 20:02:42 +01:00
577ee143b5
Add NotationRegistryTest
2021-02-25 19:57:18 +01:00
Ivan Pizhenko
57f7440039
Code review
2021-02-21 16:18:42 +02:00
Ivan Pizhenko
e5aaebe174
issue #91 Improve class UserId
2021-02-21 15:11:09 +02:00
3e75d325a8
Stabilize test
...
The test was sometimes failing, as generating RSA keys can take longer than 1 second, which would result in the delta in the check being exceeded
2021-02-20 01:08:51 +01:00
81393a7285
Abort decryption process at a depth of 16 nested packets
2021-02-19 21:37:54 +01:00
217609679d
Add SignatureValidationUtil and NotationRegistry classes
2021-02-19 21:22:25 +01:00
ce5f8990ef
Add HashAlgorithmPolicy and SymmetricKeyAlgorithmPolicy
2021-02-19 19:51:44 +01:00
c75a192513
Use ArmoredOutputStreamFactory to hide version string in ascii armor
...
Partially fixes #82
2021-02-19 19:50:36 +01:00
ea89289852
Check MDC when stream is closed
2021-02-17 21:04:05 +01:00
d2a581de9b
Fix decryption of messages with Wildcard recipient
...
Fixes #76
2021-02-17 20:20:10 +01:00
506a8b18af
Reject NULL encryption algorithm when decrypting messages
...
Fixes #77
2021-02-17 20:07:54 +01:00
cb7f38f003
Do no emit an uncompressed compressed-data-packet
...
Fixes #74
2021-02-17 19:52:30 +01:00
d2202dcb0f
Retry key generation on invalid private key encoding length
...
Workaround for #70
2021-02-15 23:37:03 +01:00
f2f7305fec
Allow for setting of expiration date during key generation
2021-02-13 12:22:28 +01:00
83117c99cb
Add two more tests
2021-02-12 01:23:32 +01:00
651bb63175
Deprecate withMasterKey(spec) in favor of withPrimaryKey(spec)
2021-02-11 17:18:59 +01:00
10de44ebd3
Add modern key ring archetype
2021-02-11 17:10:22 +01:00
fbb4061164
Switch simpleEcKeyRing over to curve25519
2021-02-11 17:10:00 +01:00
79b2d42f9c
Add support for more elliptic curves and start implementing KeyInfo class
2021-02-11 16:58:00 +01:00
ebf46fa05e
Add tests for SelectUserId
2021-02-07 03:12:59 +01:00
ab39f0e2f3
UserID: prevent double angle brackets around email address
2021-02-07 03:12:35 +01:00
6386579376
De-deprecate SecretKeyRingProtector for now
2021-02-07 03:10:29 +01:00
Ivan Pizhenko
72e0dea20f
remove unused imports
2021-02-04 09:56:08 +02:00
Ivan Pizhenko
a807ddbb4e
use PGPainless.readKeyRing().secretKeyRing()
2021-02-04 09:45:08 +02:00
Ivan Pizhenko
c9982ccfe6
Additional user id manipulation test
2021-02-03 23:09:02 +02:00
567291ac17
Rename UserIdSelectionStrategy -> SelectUserId
2021-02-03 16:38:28 +01:00
138ea0d572
Add convenience method to delete userIds from the primary key
2021-02-03 16:31:45 +01:00
449881bd8d
Add deleteUserIds(keyId, userIdSelectionStrategy, protector) method to SecretKeyRingEditor
2021-02-03 16:26:15 +01:00
eaee5a27fc
Move selection strategies to util package and implement UserIdSelectionStrategy
2021-02-03 16:05:21 +01:00
ff1fb7e07f
Respect Policy when negotiating hash algorithm
2021-01-29 15:15:27 +01:00
d7ef05775d
Add getPrimaryUserId()
2021-01-29 15:08:11 +01:00
4ddbca4908
Expose keySpec.getSubpacketGenerator() and move setPrimaryUserId to builder
2021-01-29 14:51:24 +01:00
4e7c1c023c
Make fields final where possible
2021-01-29 14:48:02 +01:00
bilalashraf123
560effc7c6
Wrong primary user ID when setting withAdditionalUserId
2021-01-29 02:33:43 +05:00
bdae079515
Delete KeyRingCollection
2021-01-23 01:22:29 +01:00
59a14c2918
Make ImplementationFactory methods abstract
2021-01-23 01:09:55 +01:00
bec2fb5ce1
Increase test coverage by writing bunch of JUnit tests
2021-01-22 20:03:20 +01:00
ee1f90e850
Test and implement revocation of single userIDs
2021-01-22 18:28:48 +01:00
c4d670821f
Test if revoked userIds are no longer accepted as valid userIDs
2021-01-22 16:56:41 +01:00
85ed20cfae
Test if subpackets are being preserved when changing expiration time
2021-01-22 16:56:06 +01:00
9aae9ecc93
Add support for checking for revoked userIds
2021-01-22 16:52:09 +01:00
7864add645
Introduce Policy class for default algorithms
2021-01-22 16:50:08 +01:00
39ab6ebddf
Add test for SignatureSubpacketGeneratorUtil
2021-01-22 16:48:30 +01:00
93df791700
Test revocation reason related code
2021-01-21 14:59:55 +01:00
87eab2fb9a
More UserID tests
2021-01-21 14:52:11 +01:00
2880e0bed0
Test SecretKeySelectionStrategy.selectKeysFromKeyRing()
2021-01-21 14:46:28 +01:00
ccae32ca3f
Test getSecretKey()
2021-01-21 14:38:25 +01:00
c35154813a
More code cleanup and tests
2021-01-21 14:35:33 +01:00
bd9a580600
Remove unused BCUtil.publicKeyRingFromSecretKeyRing method
...
Use KeyRingUtils.publicKeyRingFrom(secertKeys) instead
2021-01-21 14:33:52 +01:00
74c0c8a32e
Fix signature creation using keys without preferred algorithms
2021-01-21 13:47:43 +01:00
3e5ff1fe70
PGPainless 0.2.0-alpha6
2021-01-20 00:51:59 +01:00
21dae7541c
Add test to verify that key with generic certification can be revoked properly
2021-01-19 15:36:31 +01:00
2009f7f7e3
Accept GENERIC_CERTIFICATION signatures when negotiating algorithms
2021-01-19 15:36:06 +01:00
1ce28a09af
Make UserId constructor private in favor of factory methods
2021-01-18 18:12:53 +01:00
b25a78bc29
Fix changing of expiration dates for keys and subkeys
2021-01-18 17:09:57 +01:00
bf8e29caa4
Add KeyRingInfo.getExpirationDate(fingerprint) to get subkey exp dates
2021-01-18 17:09:34 +01:00
21ba97c598
Add SubpacketInspector and SignatureSubpacketGeneratorUtil classes
2021-01-18 17:08:52 +01:00
7ad1cb4169
Add SignatureSubpacket enum
2021-01-18 17:08:20 +01:00
7303c9b47d
Improve logging and verify purpose of signing keys
2021-01-09 21:03:24 +01:00
c89558a01b
Split KeyFlagSelectionStrategies up into Has{Any|All}KeyFlagsSelectionStrategy
2021-01-09 20:55:19 +01:00
83362816d0
toRecipients(): Throw IllegalArgumentException instead of IllegalStateException
2021-01-09 20:44:33 +01:00
4f0493bce7
Test that the encryptionStreamBuilder will not encrypt to keys with missing flags
2021-01-09 20:40:10 +01:00
11c41e7ba7
Allow the user to specify a purpose for encryption
2021-01-09 20:30:34 +01:00
8df752e995
Add HasKeyFlagsSelectionStrategy
2021-01-09 20:16:13 +01:00
83bd157a78
Get rid of generics in selection strategies
2021-01-09 19:23:50 +01:00
e53a21ff77
Add some weird keys and test for multi sub key encryption
2021-01-09 18:57:48 +01:00
63bf5a8e69
Add support for decryption with hidden recipients
2021-01-09 16:16:17 +01:00
f5338e13e7
Get rid of ElGamal_GENERAL and rename ElGamal_ENCRYPT to ElGamal
2021-01-03 17:06:38 +01:00
5143da1311
Verify that keys can carry certain key flags
2021-01-03 17:01:08 +01:00
2378162953
Remove withDefaultKeyFlags method
2021-01-03 16:26:53 +01:00
d014c00aaa
Refactor implementationfactory
2021-01-03 15:52:33 +01:00
82014ef6e5
Fix checkstyle issues
2021-01-03 15:52:18 +01:00
1c1f9d49ab
Introduce ImplementationFactory
2020-12-27 01:56:18 +01:00
c7ede0fc8a
Add junit test for symmetric decryption
2020-12-26 23:36:33 +01:00
7d374f10a7
Allow encryption and decryption using symmetric passphrases in the main API
2020-12-26 19:04:27 +01:00
ff8c6d8b6d
Fix NPE when signing key is not found during signature verification
2020-12-16 20:11:45 +01:00
4870bda4f2
Allow specification of signature type
2020-12-16 20:11:28 +01:00
aeed8bf705
SignatureType: Reuse BC signature type codes
2020-12-16 20:11:04 +01:00
ca6089eeac
Add test to verify that primary key can certify§
2020-12-11 22:54:27 +01:00
5a04669661
Add missing package.info
2020-12-11 22:54:11 +01:00
0194bd5924
Add documentation to PublicKeyAlgorithms
2020-12-11 22:52:28 +01:00
d65646efc6
Add XDH keytype factory method
2020-12-11 22:09:49 +01:00
aff2e6b9f0
Verify that certification key has signing capable algorithm
2020-12-11 22:09:21 +01:00
c38477f277
Add more javadoc
2020-12-11 18:53:10 +01:00
ac08827f91
Move ECDSA and ECDH to ecc subpackage
2020-12-11 18:16:31 +01:00
799265f332
mark RSA_ENCRYPT and RSA_SIGN as deprecated
2020-12-11 18:15:54 +01:00
5f289f4fe1
ElGamal: Deprecate GENERAL
2020-12-11 18:14:36 +01:00
3c88bdde9b
Refactor keytype related classes
2020-12-08 20:02:41 +01:00
4550425609
Wip: Add more elliptic curves, support for {X,Ed}25519
2020-12-08 19:26:57 +01:00
980782e629
Remove deprecated class PGPKeyRing
2020-12-08 19:14:52 +01:00
db2e97b449
Fix some javadoc issues
2020-12-05 00:17:32 +01:00
451313d945
Fix checkstyle issues
2020-12-05 00:01:12 +01:00
1be3d4d7d8
Add documentation to KeyRingUtils
2020-12-03 22:46:59 +01:00
3173ddbc45
Add static factory methods for SecretKeyRingProtector implementations
2020-11-29 19:08:52 +01:00
935af80d14
Add some more utility methods
2020-11-29 19:06:49 +01:00
e1be34e007
Fix checkstyle issues
2020-11-29 16:18:17 +01:00
145fa8c83c
Move unlockSecretKey method to KeyRingUtils
2020-11-29 16:04:15 +01:00
d9d25ed6fb
Merge pull request #31 from wiktor-k/add-expiration
...
Add ability to modify expiration dates for keys
2020-11-29 15:45:10 +01:00
fa2615b434
Forgot to deprecate encryptor method
2020-11-29 15:35:34 +01:00
cc1e4601e3
replace create{Encryptor,Decryptor} methods with encryptAndOrSign,decryptAndOrVerify
2020-11-29 15:33:54 +01:00
Wiktor Kwapisiewicz
2a672aaf03
Add ability to change expiration date for the primary key
2020-11-27 17:11:56 +01:00
93abfd5517
SecretKeyRingEditor: Add revoke() shortcut method
2020-11-22 21:25:52 +01:00
d7aea4b0f7
Add test for KeyRingInfo class
2020-11-22 21:19:10 +01:00
1174a7f787
Add expiration date of emil test key as constant
2020-11-22 21:07:31 +01:00
c266adb5a5
Fix getExpirationDate method for keys without expiration
2020-11-22 21:07:14 +01:00
5ee17fac69
Deprecate PGPainless's PGPKeyRing
2020-11-22 20:49:07 +01:00
cae93022ad
Add KeyRingInfo class that helps to extract information about key rings
2020-11-22 20:48:09 +01:00
8305fcf0ee
Allow for revocation attributes to be passed in when revoking subkey directly
2020-11-20 12:19:45 +01:00
0edd8b616f
Add support for creating detached revocation certificates
2020-11-20 12:01:39 +01:00
5cdbb125b0
Refactoring: move KeyRingEditor to SecretKeyRingEditor in prep for more editor classes
2020-11-19 17:51:57 +01:00
9f95e7925b
De-duplicate KeyPrinter class
2020-11-18 12:20:59 +01:00
4dd2b2f71a
Implement revoking subkeys for key-ids as well
2020-11-13 16:59:55 +01:00
aafc9be888
Switch to Jupiter JUnit for tests
2020-11-13 16:31:59 +01:00
4ed2cdaed9
Introduce UserId utility class
2020-11-13 15:59:28 +01:00
31844c5212
break for-loop of addUserId method when finding key
2020-11-13 15:11:33 +01:00
86c3487ad4
Some code cleanup
2020-11-13 15:08:37 +01:00
9b2ad24bda
Implement revocation of subkeys
2020-11-13 14:32:29 +01:00
b4967db1a2
Implement adding subkeys to keyrings
2020-11-10 17:25:35 +01:00
99a2fcf1c0
Simplify KeyType API
2020-11-07 18:24:12 +01:00
cb3190a0fc
Add JUnit tests for user-id addition/deletion
2020-11-06 18:32:44 +01:00
6159428c9a
Add support for deleting user-ids (untested)
2020-11-03 19:56:35 +01:00
92e2828885
Add support for deleting subKeys (untested)
2020-11-03 19:32:01 +01:00
2d899e0a3b
Allow adding user-ids to sub keys
2020-11-03 19:29:15 +01:00
47b1ccc071
More rigurous testing of key re-encryption
2020-10-30 13:30:21 +01:00
7c102334ed
expand expression to simplify debugging
2020-10-30 13:30:04 +01:00
70ad4a274e
Change method name to toNoPassphrase()
2020-10-30 13:29:18 +01:00
d0580918fa
Fix checkstyle issues
2020-10-30 12:38:59 +01:00
8097a9d964
Passphrase.isEmpty: also check for validity
2020-10-30 12:31:52 +01:00
423a3f1354
Merge pull request #18 from wiktor-k/fix-empty-passphrase
...
Fix creating keys with `Passphrase.emptyPassphrase()`
2020-10-30 12:31:06 +01:00
04420f8dac
Extract secret key checksum algorithm into constant
2020-10-30 12:28:11 +01:00
Wiktor Kwapisiewicz
59fe53c594
Fix creating keys with Passphrase.emptyPassphrase()
...
Previously the code supplied `null` to BouncyCastle's
encryptor/decryptor builder's build method and that caused
NullPointerException to be thrown.
The fix checks if the passphrase is empty and omits the BouncyCastle
builder in that case.
Fixes #16 .
2020-10-30 12:22:05 +01:00
Wiktor Kwapisiewicz
e30d0f6293
Remove RSA_SIGN and RSA_ENCRYPT as they are deprecated
...
This change removes two mechanisms that are deprecated in RFC 4880. The
spec explicitly mentions that "RSA Encrypt-Only (2) and RSA Sign-Only
are deprecated and SHOULD NOT be generated" [0].
The remaining RSA_GENERAL key type was renamed to just RSA for ease of
use for developers.
[0]: https://tools.ietf.org/html/rfc4880#section-9.1
2020-10-30 11:48:28 +01:00
cdd1bf4198
Add documentation and throw NotYetImplementedException in stubs
2020-10-29 15:15:13 +01:00
99af9e0171
Re-encrypting whole keyring successful
2020-10-25 20:43:09 +01:00
623c4c930d
Adding user-ids works
2020-10-25 19:54:03 +01:00
651a69c118
Work on the editing api
2020-10-23 16:44:21 +02:00
207c41d411
Add initial draft interface for a key editor API
2020-10-22 01:20:43 +02:00
f21231ad53
Trim user-ids
2020-10-20 23:23:25 +02:00
c06bedd656
Introduce SignatureType enum
2020-10-20 22:59:06 +02:00
1b389f678a
Fix checkstyle issues
2020-10-20 22:58:45 +02:00
9670e5ecb9
Prevent additional user-id from being equal to primary user-id
2020-10-20 22:14:56 +02:00
2f85c9a8d0
Test if userId is present
2020-10-16 13:18:07 +02:00
11e7bc69fc
Fix NPE by initializing the SignatureGenerator
2020-10-16 13:11:46 +02:00
8c30db9bf1
Wip: Allow for additional user-ids to be added
2020-10-16 12:46:58 +02:00
6a4fa47c12
Remove unused imports
2020-09-09 20:49:31 +02:00
2af60454f5
Add KeyRingProtectionSettings.secureDefaultSettings() factory method
2020-08-31 12:37:34 +02:00
20f32926bb
Add Passphrase.fromPassword() and PasswordBasedSecretKeyRingProtector.forKey() factory methods
2020-08-31 12:26:07 +02:00
01f81fabaa
Add OnePassSignature verification test
2020-08-30 13:16:47 +02:00
7de04c2949
Add handy shortcut methods to the API
2020-08-24 16:57:14 +02:00
f10d698a09
Remove dependency on jetbrains annotations
2020-08-24 16:44:14 +02:00
4f6a7d2838
Fix checkstyle issues
2020-08-24 16:26:29 +02:00
848a7a428b
Add handy default methods for the API and add documentation
2020-08-24 16:00:23 +02:00
65b670740e
Add support for detached signatures
2020-08-24 14:56:42 +02:00
0a3f688b23
Add documentation for openpgp4fpr fingerprint methods
2020-07-10 20:31:33 +02:00
46af22cc50
Add toUri/fromUri methods to OpenPgpV4Fingerprint
2020-07-10 18:17:29 +02:00
6c449b86af
Move charset utf8 to static constant
2020-07-10 18:16:22 +02:00
f108ccc30c
Fix compatibility with java8
2020-04-21 17:34:21 +02:00
2c008ecf50
Add bcpg as transitive dependency
2020-04-11 12:48:07 +02:00
ba6e850f6f
Improve logging of tests
2020-04-11 11:35:48 +02:00
5fa05e08fc
Add test for password protected keys
2020-01-14 22:11:01 +01:00
9c1f6fc812
return null-cryptors for unprotected keys
2020-01-14 22:10:07 +01:00
4b61745c46
Add default constructor and fix condition
2020-01-14 22:09:13 +01:00
795a7783d4
Remove unused import
2020-01-12 23:45:41 +01:00
5b249f5b3d
Add junit test of Passphrase
2020-01-12 23:42:53 +01:00
33183cb899
Add encrypted key pair for cryptie
2020-01-12 23:40:39 +01:00
fd13a1278a
Improve BCUtilTest
2020-01-12 23:34:47 +01:00
745e296799
Move GenerateKeyTest to generate package
2020-01-12 23:34:12 +01:00
fa89a4d3b3
Test UnprotectedKeysProtector
2020-01-12 20:33:31 +01:00
750d93b009
Easier generation of simple keys with password
2020-01-12 20:32:55 +01:00
700f9cbca4
Add JUnit tests for Wildcard selection strategy
2020-01-12 20:04:23 +01:00
244f13308d
JUnit tests for XMPP selection strategy
2020-01-12 19:57:29 +01:00
db15a3e962
Fix XMPP key selection strategy by auto appending xmpp: if missing
2020-01-12 19:56:16 +01:00
e7ff9f0354
JUnit test for Email selection strategy§
2020-01-12 19:55:34 +01:00
1c576bd647
Add ignored test for generating ec key
2020-01-12 19:17:58 +01:00
5a7ced81a8
Add test key with email uid
2020-01-12 19:17:28 +01:00
064ff5b962
Remove unused imports
2020-01-12 19:15:39 +01:00
790b0cf7de
Add encrypt/decrypt test using existing keys
2020-01-12 18:36:03 +01:00
6dce063685
Add Whitelist selection strategy test
2020-01-12 18:35:42 +01:00
09e0a5360d
Reuse MultiMap constructor of Whitelist selection strategy
2020-01-12 18:34:21 +01:00
8a2051904a
Further refactoring of KeyRingBuilder
2020-01-12 16:37:24 +01:00
81c3a471a7
Refactor KeyRingBuilder
2020-01-12 15:40:50 +01:00
79b04d1535
Refactor KeyRingReader
2020-01-12 13:11:10 +01:00