aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/pg/src/test/java/org/spongycastle/openpgp/test/PGPPacketTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/pg/src/test/java/org/spongycastle/openpgp/test/PGPPacketTest.java')
-rw-r--r--libraries/spongycastle/pg/src/test/java/org/spongycastle/openpgp/test/PGPPacketTest.java103
1 files changed, 103 insertions, 0 deletions
diff --git a/libraries/spongycastle/pg/src/test/java/org/spongycastle/openpgp/test/PGPPacketTest.java b/libraries/spongycastle/pg/src/test/java/org/spongycastle/openpgp/test/PGPPacketTest.java
new file mode 100644
index 000000000..084024f5f
--- /dev/null
+++ b/libraries/spongycastle/pg/src/test/java/org/spongycastle/openpgp/test/PGPPacketTest.java
@@ -0,0 +1,103 @@
+package org.spongycastle.openpgp.test;
+
+import org.spongycastle.jce.provider.BouncyCastleProvider;
+import org.spongycastle.openpgp.PGPLiteralData;
+import org.spongycastle.openpgp.PGPLiteralDataGenerator;
+import org.spongycastle.openpgp.PGPObjectFactory;
+import org.spongycastle.util.test.SimpleTest;
+import org.spongycastle.util.test.UncloseableOutputStream;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.security.Security;
+import java.util.Date;
+import java.util.Random;
+
+public class PGPPacketTest
+ extends SimpleTest
+{
+ private static int MAX = 32000;
+
+ private void readBackTest(
+ PGPLiteralDataGenerator generator)
+ throws IOException
+ {
+ Random rand = new Random();
+ byte[] buf = new byte[MAX];
+
+ rand.nextBytes(buf);
+
+ for (int i = 1; i <= 200; i++)
+ {
+ bufferTest(generator, buf, i);
+ }
+
+ bufferTest(generator, buf, 8382);
+ bufferTest(generator, buf, 8383);
+ bufferTest(generator, buf, 8384);
+ bufferTest(generator, buf, 8385);
+
+ for (int i = 200; i < MAX; i += 100)
+ {
+ bufferTest(generator, buf, i);
+ }
+ }
+
+ private void bufferTest(
+ PGPLiteralDataGenerator generator,
+ byte[] buf,
+ int i)
+ throws IOException
+ {
+ ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+ OutputStream out = generator.open(
+ new UncloseableOutputStream(bOut),
+ PGPLiteralData.BINARY,
+ PGPLiteralData.CONSOLE,
+ i,
+ new Date());
+
+ out.write(buf, 0, i);
+
+ generator.close();
+
+ PGPObjectFactory fact = new PGPObjectFactory(bOut.toByteArray());
+ PGPLiteralData data = (PGPLiteralData)fact.nextObject();
+ InputStream in = data.getInputStream();
+
+ for (int count = 0; count != i; count++)
+ {
+ if (in.read() != (buf[count] & 0xff))
+ {
+ fail("failed readback test - length = " + i);
+ }
+ }
+ }
+
+ public void performTest()
+ throws IOException
+ {
+ PGPLiteralDataGenerator oldGenerator = new PGPLiteralDataGenerator(true);
+
+ readBackTest(oldGenerator);
+
+ PGPLiteralDataGenerator newGenerator = new PGPLiteralDataGenerator(false);
+
+ readBackTest(newGenerator);
+ }
+
+ public String getName()
+ {
+ return "PGPPacketTest";
+ }
+
+ public static void main(
+ String[] args)
+ {
+ Security.addProvider(new BouncyCastleProvider());
+
+ runTest(new PGPPacketTest());
+ }
+}