sop-java
:- Remove
label()
option fromarmor()
subcommand - Move test-fixtures artifact built with the
testFixtures
plugin into its own modulesop-java-testfixtures
, which can be consumed by maven builds.
- Remove
sop-java-picocli
:- Properly map
MissingParameterException
toMissingArg
exit code revokeKey
command: Allow mutliple- As a workaround for native builds using graalvm:
- Do not re-set message bundles dynamically (fails in native builds)
- Prevent an unmatched argument error
change-key-password
: Properly pass key passwords as indirect parameters
- Properly map
- Downgrade
logback-core
to1.2.13
- Remove
label()
option fromArmor
operation - Fix exit code for 'Missing required option/parameter' error
- Fix
revoke-key
: Allow for multiple invocations of--with-key-password
option - Fix
EncryptExternal
use of--sign-with
parameter - Fix
NullPointerException
inDecryptExternal
when reading lines - Fix
DecryptExternal
use ofverifications-out
- Test suite: Ignore tests if
UnsupportedOption
is thrown - Bump
logback-core
to1.4.14
- Update implementation to SOP Specification revision 10.
- Throw
BadData
when passing KEYS where CERTS are expected - Introduce
sopv
interface subset with revision1.0
- Add
sop version --sopv
- Throw
decrypt
: Do not throwNoSignature
exception (exit code 3) if--verify-with
is provided, butVERIFICATIONS
is empty.
- Rewrote
sop-java
in Kotlin - Rewrote
sop-java-picocli
in Kotlin - Rewrote
external-sop
in Kotlin - Update implementation to SOP Specification revision 08.
- Add
--no-armor
option torevoke-key
andchange-key-password
subcommands armor
: Deprecate--label
option insop-java
and remove insop-java-picocli
encrypt
: Add--session-key-out
option
- Add
- Slight API changes:
sop.encrypt().plaintext()
now returns aReadyWithResult<EncryptionResult>
instead ofReady
.EncryptionResult
is a new result type, that provides access to the session key of an encrypted message- Change
ArmorLabel
values into lowercase - Change
EncryptAs
values into lowercase - Change
SignAs
values into lowercase
- Update implementation to SOP Specification revision 07.
- Add support for new
revoke-key
subcommand - Add support for new
change-key-password
subcommand - Add support for new
--signing-only
option ofgenerate-key
subcommand
- Add support for new
- Add
dearmor.data(String)
utility method - Fix typos in, and improve i18n of CLI help pages
listProfiles()
: Add shortcut methodsgenerateKey()
andencrypt()
- Add DSL for testing
Verification
results Verification
- Return
Optional<SignatureMode>
forgetSignatureMode()
- Return
Optional<String>
forgetDescription()
- Return
Profile
- Add support for profiles without description
- Return
Optional<String>
forgetDescription()
- Add
parse(String)
method for parsing profile lines
sop-java
: Add dependency oncom.google.code.findbugs:jsr305
for@Nullable
,@Nonnull
annotationsUTCUtil
:parseUTCDate()
is now@Nonnull
and throws aParseException
for invalid inputsUTF8Util
:decodeUTF8()
now throwsCharacterCodingException
instead ofSOPGPException.PasswordNotHumanReadable
external-sop
: Properly map error codes to new exception types (ported from5.0.1
):UNSUPPORTED_PROFILE
INCOMPATIBLE_OPTIONS
external-sop
: Properly map error codes to new exception types:UNSUPPORTED_PROFILE
INCOMPATIBLE_OPTIONS
- Update implementation to SOP Specification revision 06.
- Add option
--profile=XYZ
toencrypt
subcommand - Add option
--sop-spec
toversion
subcommand Version
: Add different getters for specification-related values
- Add option
- Update implementation to SOP Specification revision 05.
- Add the concept of profiles
- Add
list-profiles
subcommand - Add option
--profile=XYZ
togenerate-key
subcommand Verification
objects can now optionally indicate the type of the signature (mode:text
ormode:binary
)Verification
objects can now contain an optional description of the signatureinline-sign
now throws an error if incompatible options--as=clearsigned
and--no-armor
are used
- Restructure test suite to allow simultaneous testing of multiple backends
- Fix IOException in
sop sign
due to premature stream closing - Allow for downstream implementations of
sop-java
to reuse the test suite- Check out Javadoc of
sop-java/src/testFixtures/java/sop/testsuite/SOPInstanceFactory
for details
- Check out Javadoc of
- Add module
external-sop
- This module implements the
sop-java
interfaces and allows the use of an external SOP binary
- This module implements the
decrypt
: Rename--not-before
,--not-after
to--verify-not-before
,--verify-not-after
decrypt
: ThrowNoSignature
error if no verifiable signature found, but signature verification is requested using--verify-with
.inline-sign
: Fix parameter label of--as=clearsigned
ArmorLabel
,EncryptAs
,SignAs
: maketoString()
return lowercase
- Make i18n string for
--stacktrace
option translatable - Make manpages generation reproducible
dearmor
: TransformIOException
intoBadData
- Add support for file descriptors on unix / linux systems
inline-sign
: Make possible values of--as
option lowercaseinline-sign
: Rename valuecleartextsigned
of option--as
toclearsigned
- Not found
decrypt
: Rename option--verify-out
to--verifications-out
, but keep--verify-out
as alias- Fix:
decrypt
: Flush output stream in order to prevent empty file as result of--session-key-out
- Fix: Properly format session key for
--session-key-out
- Be less finicky about input session key formats
- Allow upper- and lowercase hexadecimal keys
- Allow trailing whitespace
- Fix:
verify
: Do not include detached signature in list of certificates - Fix:
inline-verify
: Also include the first argument in list of certificates - Hide stacktraces by default and add
--stacktrace
option to print them - Properly throw
CannotDecrypt
exception when message could not be decrypted
- Use shared resources for i18n
- Fix strings not being resolved properly when downstream renames
sop
command
- Fix strings not being resolved properly when downstream renames
- Switch to new versioning format to indicate implemented SOP version
- Implement SOP specification version 04
- Add
--with-key-password
tosop generate-key
- Add
--with-key-password
tosop sign
- Add
--with-key-password
tosop encrypt
- Add
--with-key-password
tosop decrypt
- Rename
sop detach-inband-signature-and-message
tosop inline-detach
sop inline-detach
: Add support for inline-signed messages- Implement
sop inline-sign
- Implement
sop inline-verify
- Add
- Rename
Sign
toDetachedSign
- Rename
Verify
toDetachedVerify
SignAs
: RemoveMime
optionsop-java-picocli
: Implement i18n and add German translation
- Bump Mockito version to
4.5.1
- Add SOP parent command name and description
- Bump dependencies
com.ginsberg:junit5-system-exit
from1.1.1
to1.1.2
org.mockito:mockito-core
from4.2.0
to4.3.1
info.picocli:picocli
from4.6.2
to4.6.3
- Add hidden
generate-completion
subcommand - Document exit codes
encrypt
,decrypt
: Interpret arguments of--with-password
and--with-session-key
as indirect data types (e.g. file references instead of strings)
- Initial release from new repository
- Implement SOP specification version 3