Compare commits

...

4 commits
main ... 4.1.2

4 changed files with 13 additions and 11 deletions

View file

@ -6,6 +6,10 @@ SPDX-License-Identifier: Apache-2.0
# Changelog # Changelog
## 4.1.2
- Do not throw `NoSignature` (exit code 3) if no valid signatures were found during `decrypt`, even though
signature verification was requested.
## 4.1.1 ## 4.1.1
- Restructure test suite to allow simultaneous testing of multiple backends - Restructure test suite to allow simultaneous testing of multiple backends
- Fix IOException in `sop sign` due to premature stream closing - Fix IOException in `sop sign` due to premature stream closing

View file

@ -115,11 +115,6 @@ public class DecryptCmd extends AbstractSopCmd {
private void writeVerifyOut(DecryptionResult result) throws IOException { private void writeVerifyOut(DecryptionResult result) throws IOException {
if (verifyOut != null) { if (verifyOut != null) {
if (result.getVerifications().isEmpty()) {
String errorMsg = getMsg("sop.error.runtime.no_verifiable_signature_found");
throw new SOPGPException.NoSignature(errorMsg);
}
try (OutputStream fileOut = getOutput(verifyOut)) { try (OutputStream fileOut = getOutput(verifyOut)) {
PrintWriter writer = new PrintWriter(fileOut); PrintWriter writer = new PrintWriter(fileOut);
for (Verification verification : result.getVerifications()) { for (Verification verification : result.getVerifications()) {

View file

@ -21,6 +21,7 @@ import sop.operation.Decrypt;
import sop.util.HexUtil; import sop.util.HexUtil;
import sop.util.UTCUtil; import sop.util.UTCUtil;
import javax.annotation.Nonnull;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
@ -246,15 +247,17 @@ public class DecryptCmdTest {
} }
@Test @Test
@ExpectSystemExitWithStatus(SOPGPException.NoSignature.EXIT_CODE) public void assertNoVerificationsIsOkay() throws SOPGPException.CannotDecrypt, SOPGPException.MissingArg, SOPGPException.BadData, IOException {
public void assertNoSignatureExceptionCausesExit3() throws SOPGPException.CannotDecrypt, SOPGPException.MissingArg, SOPGPException.BadData, IOException { File tempFile = File.createTempFile("verify-with-", ".tmp");
File verifyOut = new File(tempFile.getParent(), "verifications.out");
verifyOut.deleteOnExit();
when(decrypt.ciphertext((InputStream) any())).thenReturn(new ReadyWithResult<DecryptionResult>() { when(decrypt.ciphertext((InputStream) any())).thenReturn(new ReadyWithResult<DecryptionResult>() {
@Override @Override
public DecryptionResult writeTo(OutputStream outputStream) throws SOPGPException.NoSignature { public DecryptionResult writeTo(@Nonnull OutputStream outputStream) throws SOPGPException.NoSignature {
throw new SOPGPException.NoSignature(); return new DecryptionResult(null, Collections.emptyList());
} }
}); });
SopCLI.main(new String[] {"decrypt"}); SopCLI.main(new String[] {"decrypt", "--verify-with", tempFile.getAbsolutePath(), "--verifications-out", verifyOut.getAbsolutePath()});
} }
@Test @Test

View file

@ -5,7 +5,7 @@
allprojects { allprojects {
ext { ext {
shortVersion = '4.1.2' shortVersion = '4.1.2'
isSnapshot = true isSnapshot = false
minAndroidSdk = 10 minAndroidSdk = 10
javaSourceCompatibility = 1.8 javaSourceCompatibility = 1.8
gsonVersion = '2.10.1' gsonVersion = '2.10.1'