mirror of
https://github.com/pgpainless/pgpainless.git
synced 2024-11-25 22:02:05 +01:00
Add inline-verify test for message without verifiable signatures
This commit is contained in:
parent
a9014f1985
commit
ce929fd055
1 changed files with 30 additions and 5 deletions
|
@ -4,16 +4,17 @@
|
||||||
|
|
||||||
package org.pgpainless.cli.commands;
|
package org.pgpainless.cli.commands;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import org.slf4j.LoggerFactory;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import org.junit.jupiter.api.Test;
|
||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import org.slf4j.LoggerFactory;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import sop.exception.SOPGPException;
|
||||||
|
|
||||||
public class RoundTripInlineSignInlineVerifyCmdTest extends CLITest {
|
public class RoundTripInlineSignInlineVerifyCmdTest extends CLITest {
|
||||||
|
|
||||||
|
@ -171,6 +172,30 @@ public class RoundTripInlineSignInlineVerifyCmdTest extends CLITest {
|
||||||
assertTrue(verificationString.contains(CERT_1_SIGNING_KEY));
|
assertTrue(verificationString.contains(CERT_1_SIGNING_KEY));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void createSignedMessageWithKeyAAndVerifyWithKeyBFails() throws IOException {
|
||||||
|
File key = writeFile("key.asc", KEY_1);
|
||||||
|
File password = writeFile("password", KEY_1_PASSWORD);
|
||||||
|
File cert = writeFile("cert.asc", CERT_2); // mismatch
|
||||||
|
|
||||||
|
pipeStringToStdin(MESSAGE);
|
||||||
|
ByteArrayOutputStream ciphertextOut = pipeStdoutToStream();
|
||||||
|
assertSuccess(executeCommand("inline-sign",
|
||||||
|
key.getAbsolutePath(),
|
||||||
|
"--with-key-password", password.getAbsolutePath()));
|
||||||
|
|
||||||
|
File verifications = nonExistentFile("verifications");
|
||||||
|
pipeStringToStdin(ciphertextOut.toString());
|
||||||
|
ByteArrayOutputStream plaintextOut = pipeStdoutToStream();
|
||||||
|
int exitCode = executeCommand("inline-verify",
|
||||||
|
"--verifications-out", verifications.getAbsolutePath(),
|
||||||
|
cert.getAbsolutePath());
|
||||||
|
|
||||||
|
assertEquals(SOPGPException.NoSignature.EXIT_CODE, exitCode);
|
||||||
|
assertEquals(MESSAGE, plaintextOut.toString()); // message is emitted nonetheless
|
||||||
|
assertFalse(verifications.exists(), "Verifications file MUST NOT be written.");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void createAndVerifyMultiKeyBinarySignedMessage() throws IOException {
|
public void createAndVerifyMultiKeyBinarySignedMessage() throws IOException {
|
||||||
File key1Pass = writeFile("password", KEY_1_PASSWORD);
|
File key1Pass = writeFile("password", KEY_1_PASSWORD);
|
||||||
|
|
Loading…
Reference in a new issue