1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2025-09-10 10:49:39 +02:00

OpenPgpMessageInputStream: Return -1 instead of throwing MalformedOpenPgpMessageException when calling read() on drained stream

This commit is contained in:
Paul Schaub 2023-05-01 09:35:28 +02:00
parent 558036c485
commit 52fa7e4d46
Signed by: vanitasvitae
GPG key ID: 62BEE9264BF17311
3 changed files with 23 additions and 0 deletions

View file

@ -34,6 +34,7 @@ import org.bouncycastle.openpgp.PGPSignature;
import org.bouncycastle.util.io.Streams;
import org.junit.JUtils;
import org.junit.jupiter.api.Named;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
@ -652,6 +653,22 @@ public class OpenPgpMessageInputStreamTest {
assertTrue(metadata.getRejectedInlineSignatures().isEmpty());
}
@Test
public void readAfterCloseTest() throws PGPException, IOException {
OpenPgpMessageInputStream pgpIn = get(SENC_LIT, ConsumerOptions.get()
.addDecryptionPassphrase(Passphrase.fromPassword(PASSPHRASE)));
Streams.drain(pgpIn); // read all
byte[] buf = new byte[1024];
assertEquals(-1, pgpIn.read(buf));
assertEquals(-1, pgpIn.read());
assertEquals(-1, pgpIn.read(buf));
assertEquals(-1, pgpIn.read());
pgpIn.close();
pgpIn.getMetadata();
}
private static Tuple<String, MessageMetadata> processReadBuffered(String armoredMessage, ConsumerOptions options)
throws PGPException, IOException {
OpenPgpMessageInputStream in = get(armoredMessage, options);