mirror of
https://github.com/pgpainless/pgpainless.git
synced 2024-12-26 12:58:02 +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;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import sop.exception.SOPGPException;
|
||||
|
||||
public class RoundTripInlineSignInlineVerifyCmdTest extends CLITest {
|
||||
|
||||
|
@ -171,6 +172,30 @@ public class RoundTripInlineSignInlineVerifyCmdTest extends CLITest {
|
|||
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
|
||||
public void createAndVerifyMultiKeyBinarySignedMessage() throws IOException {
|
||||
File key1Pass = writeFile("password", KEY_1_PASSWORD);
|
||||
|
|
Loading…
Reference in a new issue