Commit Graph

233 Commits

Author SHA1 Message Date
Paul Schaub e67c43a6f7
Bump sop-java to 4.0.2 and improve exception handling 2022-11-06 15:03:35 +01:00
Paul Schaub df258b46c1
PGPainless 1.3.8 2022-11-03 11:46:07 +01:00
Paul Schaub 19ee2ebacf
PGPainless 1.3.7 2022-10-05 12:27:38 +02:00
Paul Schaub 7bff3128cb
Update READMEs 2022-09-03 18:07:32 +02:00
Paul Schaub a2bfb55d87
Use *Options.get() factory methods in SOP module 2022-08-29 13:22:44 +02:00
Paul Schaub c361fecdd9
PGPainless 1.3.5 2022-08-11 15:56:32 +02:00
Paul Schaub 6c936a2570
PGPainless 1.3.4 2022-08-04 14:55:08 +02:00
Paul Schaub bd10630fb4
PGPainless 1.3.3 2022-07-24 12:42:16 +02:00
Paul Schaub 93e50b75fe
PGPainless 1.3.2 2022-07-16 13:02:55 +02:00
Paul Schaub 9654af15e6
PGPainless 1.3.1 2022-06-23 12:09:01 +02:00
Paul Schaub 14531f0050
Make sop decrypt throw for unencrypted data 2022-06-23 11:47:48 +02:00
Paul Schaub efc0cb357b
EncryptDecryptRoundTripTest: make passphrase constant 2022-06-23 11:47:20 +02:00
Paul Schaub 07f9c3ceef
Fix decrypt no signatures test 2022-06-23 10:30:16 +02:00
Paul Schaub bca359805b
SOP decrypt: Do not throw if no signatures found 2022-06-22 22:14:22 +02:00
Paul Schaub 749a623d88
Bump SOP version 2022-06-19 17:56:26 +02:00
Paul Schaub d64e749f22
Fix sop encrypt --sign-with allowing for protected keys 2022-06-19 17:50:31 +02:00
Paul Schaub 75455f1a3c
Add OpenPgpMetadata.isCleartextSigned and use it in sop to determine if message was cleartext signed 2022-06-19 17:31:48 +02:00
Paul Schaub 5375cd454f Implement inline-detach for 3 different types of input 2022-06-19 16:59:42 +02:00
Paul Schaub 2d60650cc6 Progress on SOP04 support 2022-06-19 16:59:42 +02:00
Paul Schaub 53df487e59 Adopt changes from SOP-Java and add test for using incapable keys 2022-06-19 16:59:42 +02:00
Paul Schaub 0b69e18715 Experimental support for inline-sign, inline-verify 2022-06-19 16:59:42 +02:00
Paul Schaub 9a545a2936 Wip: SOP 4 2022-06-19 16:59:42 +02:00
Paul Schaub 9cdea63ec4 Fix performance issues of sop armor and dearmor operations 2022-06-16 11:22:35 +02:00
Paul Schaub c967cbb9f0 SOP: Properly throw CannotDecrypt 2022-06-16 11:22:21 +02:00
Paul Schaub be6c16079e
Switch to version agnostic SOP spec URL 2022-05-07 22:15:13 +02:00
Paul Schaub ae3004a221
PGPainless 1.2.2 2022-05-05 11:22:59 +02:00
Paul Schaub c3f6ca2ab8
PGPainless 1.2.1 2022-04-29 17:02:11 +02:00
Paul Schaub 9f50946dd7
PGPainless 1.2.0 2022-04-07 21:20:46 +02:00
Paul Schaub a22336a795 Create dedicated KeyException class for key-related exceptions. 2022-04-07 19:42:58 +02:00
Paul Schaub a7d56e3461
PGPainless 1.1.5 2022-04-05 14:48:44 +02:00
Paul Schaub c31fd7d5e0
SOP: Fix mapping of encryption format 2022-03-30 13:14:36 +02:00
Paul Schaub 4782868bc1
SOP encrypt: match signature type when using --as= option 2022-03-30 12:49:26 +02:00
Paul Schaub ccee24dd93
PGPainless 1.1.4 2022-03-30 12:26:50 +02:00
Paul Schaub e8b03834cb
Annotate fromId(code) methods with Nullable and add Nonnull requireFromId(code) methods 2022-03-22 15:09:09 +01:00
Paul Schaub 16b0d0730e
Annotate and document ArmorUtils class 2022-03-22 14:17:35 +01:00
Paul Schaub 655f4ae09a
PGPainless 1.1.3 2022-03-15 15:41:30 +01:00
Paul Schaub d876f770a6
Bump version in sop readme 2022-02-25 16:12:56 +01:00
Paul Schaub 69c0a1bfa4
PGPainless 1.1.1 2022-02-25 16:06:01 +01:00
Paul Schaub 36c5ec8a28 Host javadoc on javadoc.io 2022-02-15 14:29:07 +01:00
Paul Schaub 132981abfa
PGPainless 1.0.2 2022-02-05 14:55:38 +01:00
Paul Schaub 593a6cdb65
Document how to include pgpainless-sop in build scripts 2022-01-15 14:38:36 +01:00
Paul Schaub e55fad6078 Switch pgpainless-sop over to java-library plugin and api-depend on sop-java 2022-01-15 02:46:42 +01:00
Paul Schaub c6bc8f9774 Moved sop-java and sop-java-picocli to its own repositories
See https://github.com/pgpainless/sop-java
See https://codeberg.org/PGPainless/sop-java
2022-01-15 02:46:42 +01:00
Paul Schaub 19b6c8b1e3 SOP-CLI: Implement additional version flags 2022-01-15 02:46:42 +01:00
Paul Schaub fc432901ed Add information to SOP READMEs 2022-01-15 02:46:42 +01:00
Paul Schaub 1b1a13e7d0 Fix spelling of Bouncy Castle 2022-01-15 02:46:41 +01:00
Paul Schaub f2d88d8a86 Introduce SigningResult class to allow for additional signing information to be returned 2022-01-15 02:46:41 +01:00
Paul Schaub 1cb49f4b12 Update SOP implementation to the latest spec version
See https://datatracker.ietf.org/doc/html/draft-dkg-openpgp-stateless-cli-03
2022-01-15 02:46:41 +01:00
Paul Schaub ce7b69269b
Various code cleanup 2021-12-28 13:32:50 +01:00
Paul Schaub 59f1a85887
Fix more code issues 2021-12-28 12:30:52 +01:00
Paul Schaub c55fd2e552 Implement decryption with - and access of session keys 2021-12-02 12:42:02 +01:00
Paul Schaub c68cdc4e31 Fix compile-time dependency of pgpainless-{core|sop} on logback-classic
Fixes #214
2021-11-14 14:26:34 +01:00
Paul Schaub a9a61bc799
Improve library usage of slf4j and logback.
Logback-classic is now a test dependency and is additionally declared as OPTIONAL runtime dependency.
Applications that don't want to use logback can now easily disable it by not explicitly depending on it.
2021-10-29 20:28:14 +02:00
Paul Schaub 15736586dd
SOP: Add convenience methods to deal with byte arrays 2021-10-10 16:34:17 +02:00
Paul Schaub e390389c0a Reuse compliance 2021-10-07 16:28:31 +02:00
Paul Schaub 722477673d
Fix hen and egg problem with signature detaching in SOP 2021-10-04 16:48:27 +02:00
Paul Schaub 620959abc6
Some more pgpainless-sop tests 2021-10-04 16:28:56 +02:00
Paul Schaub 637bd18ca6
Add ArmorTest 2021-10-04 16:03:24 +02:00
Paul Schaub c5b576d8d2
ArmorImpl: Write to provided output stream instead of system.out 2021-10-04 16:02:28 +02:00
Paul Schaub d170138ea8
Add test for GenerateKeyImpl 2021-10-04 15:02:28 +02:00
Paul Schaub 5e2286de0d
Rework dependencies 2021-09-17 18:16:58 +02:00
Paul Schaub f28232893c
Refactoring: Move cleartext signed message processing to decryption_verification 2021-09-13 18:09:53 +02:00
Paul Schaub 90a00e0541 Move signature verification to dedicated streams 2021-09-07 14:02:07 +02:00
Paul Schaub f68779d8a5
Add tests for pgpainless-sop 2021-08-30 17:15:11 +02:00
Paul Schaub 97c8ff8312
Throw WrongConsumingMethodException when processing Cleartext Signed Messages with Inband Signature verification API and vice versa 2021-08-29 13:35:27 +02:00
Paul Schaub 1124c6fd15 Wip: Configure logback logging 2021-08-26 15:03:20 +02:00
Paul Schaub e3ff1403a3 sop: Enforce that any secret key argument only contains a single secret key 2021-08-23 14:26:17 +02:00
Paul Schaub 4e83281213 Wip: Remove allowNested, add FileUtil 2021-08-23 14:26:17 +02:00
Paul Schaub 772f69788b Refactor CleartextSignatureProcessor to allow reuse in DetachInbandSignatureAndMessage 2021-08-23 14:26:17 +02:00
Paul Schaub 788c82531e Wip: Adopt changes from the SOP specification version 2 2021-08-23 14:26:17 +02:00
Paul Schaub 099b160656
Native support for notBefore and notAfter signature creation time constraints 2021-08-17 14:47:07 +02:00
Paul Schaub 2bd71617bd PGPException is not thrown during secret key reading 2021-08-15 15:46:41 +02:00
Paul Schaub 311c842196
Revert introduction of StreamUtil 2021-07-31 20:40:31 +02:00
Paul Schaub fc311fe781
Workaround for #159: Avoid to prevent swallowing IOExceptions 2021-07-26 16:19:30 +02:00
Paul Schaub bbc79b75b1 Remove version number from pgpainless-sop 2021-07-20 09:56:02 +02:00
Paul Schaub 4244107994
Add readmes for all modules 2021-07-17 00:27:58 +02:00
Paul Schaub 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
Paul Schaub 6a90c4303e
OpenPgpMetadat: identify verified sigs by SubkeyIdentifier 2021-07-04 13:08:24 +02:00
Paul Schaub bd418299b0
Tests for SOP armor and dearmor commands 2021-07-01 18:45:07 +02:00
Paul Schaub b76172f97a
Fix SOP armor command 2021-07-01 18:44:57 +02:00
Paul Schaub 715ae707ed Merge branch 'decryptionAPI2' 2021-06-26 18:36:04 +02:00
Paul Schaub 98609375d1 Only create version.properties in pgpainless-sop 2021-06-24 19:20:09 +02:00
Paul Schaub 88891e1337
Remove usage of deprecated decryption/verification API in tests 2021-06-16 15:38:02 +02:00
Paul Schaub 56ddd5e70f
Prevent NPE in SOP when reading certificates 2021-06-11 14:38:56 +02:00
Paul Schaub e587fc46b8
SOP: Ignore marker packets in certificates 2021-06-10 16:56:36 +02:00
Paul Schaub 8618d1faea
More tests 2021-05-31 13:59:56 +02:00
Paul Schaub 19ec715461 Revert "Add test for PGPainlessCLI main class"
This reverts commit af6fe0aaf7.
2021-05-29 14:19:32 +02:00
Paul Schaub af6fe0aaf7
Add test for PGPainlessCLI main class 2021-05-29 14:03:27 +02:00
Paul Schaub 82536eaa77
Improve support for PGP[Secret|Public]KeyRingCollections 2021-05-29 13:52:29 +02:00
Paul Schaub b38bcf042a
Add SOP sign/verify test 2021-05-28 22:16:52 +02:00
Paul Schaub 1a1a387a16
Fix checkstyle issues in the sop module 2021-05-25 22:22:35 +02:00
Paul Schaub 83917f320f
Improvements to SOP 2021-05-25 18:08:04 +02:00
Paul Schaub 3cd64b61ca
Fix SOP encrypt-decrypt test 2021-05-25 16:25:22 +02:00
Paul Schaub 6cb9091b2a Work on signaturePicker 2021-05-25 14:24:16 +02:00
Paul Schaub a30767eb91 Fix tests 2021-05-25 14:24:10 +02:00
Paul Schaub 89a0adddd8 Reworking encryption/decryption API. 2021-05-25 14:23:42 +02:00
Paul Schaub 9358e58fb3
Improve CachingSecretKeyRingProtector 2021-05-14 18:55:26 +02:00
Paul Schaub 7bd12fe5d4
Improve error handling in sop tests 2021-03-05 14:43:13 +01:00
Paul Schaub 24c0cd8a96
SOP: Properly return error codes to the caller, error code 37 for invalid input args 2021-03-05 14:15:54 +01:00
Paul Schaub fb1c0d6ff3
SOP: Allow for multiple user-ids during key generation 2021-03-05 13:32:04 +01:00
Paul Schaub 8e3b61b76e
Sop: Sync version with gradle version variable and fix format 2021-03-05 13:04:28 +01:00
Paul Schaub 0a9781d8c8
Merge pull request #89 from Flowdalic/pgpainless-cli
[pgpainless-sop] Add ./pgpainless bash wrapper script
2021-02-19 23:10:09 +01:00
Paul Schaub 108d6cb841
sop: Do not swallow EOFExceptions and return 29 instead
Related to #78
2021-02-19 21:18:08 +01:00
Paul Schaub c75a192513
Use ArmoredOutputStreamFactory to hide version string in ascii armor
Partially fixes #82
2021-02-19 19:50:36 +01:00
Florian Schmaus ff875775bc [pgpainless-sop] Add ./pgpainless bash wrapper script
Related to #88.
2021-02-15 17:56:57 +01:00
Paul Schaub 6b1a740b9e
Add tests for SOP 2021-01-23 01:17:30 +01:00
Paul Schaub a43d57445c
Quick'n Dirty implementation of decrypt 2021-01-23 01:10:33 +01:00
Paul Schaub bd9a580600
Remove unused BCUtil.publicKeyRingFromSecretKeyRing method
Use KeyRingUtils.publicKeyRingFrom(secertKeys) instead
2021-01-21 14:33:52 +01:00
Paul Schaub 10f1650d06
Fix dummy test whitespace 2021-01-18 18:43:39 +01:00
Paul Schaub 48b50b6b3e
Add dummy sop test to fix jacocoRootReport 2021-01-18 18:31:50 +01:00
Paul Schaub 9333fa2b65
Add README for sop module 2021-01-03 17:45:05 +01:00
Paul Schaub 82014ef6e5
Fix checkstyle issues 2021-01-03 15:52:18 +01:00
Paul Schaub 1c1f9d49ab
Introduce ImplementationFactory 2020-12-27 01:56:18 +01:00
Paul Schaub 7d374f10a7
Allow encryption and decryption using symmetric passphrases in the main API 2020-12-26 19:04:27 +01:00
Paul Schaub ce4f98423f
Start implementing decrypt command 2020-12-22 23:10:24 +01:00
Paul Schaub 11b1acf7f6
Improve verify command descriptions 2020-12-22 23:09:41 +01:00
Paul Schaub ee474232c8
Remove unnecessary imports 2020-12-22 23:09:17 +01:00
Paul Schaub 59e0a53c3f
Add missing copyright headers 2020-12-22 23:08:53 +01:00
Paul Schaub fb687ee5d1
Improve subcommand descriptions 2020-12-22 23:07:53 +01:00
Paul Schaub 6382ffb5ae
First implementation of encrypt command 2020-12-22 22:09:42 +01:00
Paul Schaub 5c11b25212
Verify: set arity of boundary options to 0..1 2020-12-22 22:09:22 +01:00
Paul Schaub b733b94b9e
Allow signing with multiple secret keys 2020-12-22 22:08:38 +01:00
Paul Schaub 7edd6bc86d
Add descriptions to all tasks 2020-12-22 22:07:13 +01:00
Paul Schaub 1e3721c4e5
Improve --[no-]armor flag implementation 2020-12-22 22:05:47 +01:00
Paul Schaub 7d6c0f4396
Bump picocli to 4.5.2 2020-12-22 22:02:36 +01:00
Paul Schaub 31cfbaa4b2 Fix various checkstyle issues 2020-12-16 20:11:58 +01:00
Paul Schaub fe03197f3e Use NullOutputStream in verifier to safe resources 2020-12-16 20:11:58 +01:00
Paul Schaub 930448b02b SOP: Add documentation and parse not-{before|after} dates in verify 2020-12-16 20:11:58 +01:00
Paul Schaub eb9587163d SOP: Implement basic signature verification 2020-12-16 20:11:58 +01:00
Paul Schaub e07998f99d SOP: Respect signature type 2020-12-16 20:11:58 +01:00
Paul Schaub 6f48a1a261 Apply latest changes to master 2020-12-16 20:11:58 +01:00
Paul Schaub 379ad285f3 Fix gradle build file 2020-12-16 20:11:58 +01:00
Paul Schaub 9d3ad01dfc Wip: Start implementing a SOP client 2020-12-16 20:11:58 +01:00