aboutsummaryrefslogtreecommitdiffstats
path: root/libraries/spongycastle/core/src/test/java/org/spongycastle/crypto/test/StreamCipherVectorTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/spongycastle/core/src/test/java/org/spongycastle/crypto/test/StreamCipherVectorTest.java')
-rw-r--r--libraries/spongycastle/core/src/test/java/org/spongycastle/crypto/test/StreamCipherVectorTest.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/libraries/spongycastle/core/src/test/java/org/spongycastle/crypto/test/StreamCipherVectorTest.java b/libraries/spongycastle/core/src/test/java/org/spongycastle/crypto/test/StreamCipherVectorTest.java
new file mode 100644
index 000000000..2d3b197db
--- /dev/null
+++ b/libraries/spongycastle/core/src/test/java/org/spongycastle/crypto/test/StreamCipherVectorTest.java
@@ -0,0 +1,62 @@
+package org.spongycastle.crypto.test;
+
+import org.spongycastle.crypto.CipherParameters;
+import org.spongycastle.crypto.StreamCipher;
+import org.spongycastle.util.encoders.Hex;
+import org.spongycastle.util.test.SimpleTest;
+
+/**
+ * a basic test that takes a stream cipher, key parameter, and an input
+ * and output string.
+ */
+public class StreamCipherVectorTest
+ extends SimpleTest
+{
+ int id;
+ StreamCipher cipher;
+ CipherParameters param;
+ byte[] input;
+ byte[] output;
+
+ public StreamCipherVectorTest(
+ int id,
+ StreamCipher cipher,
+ CipherParameters param,
+ String input,
+ String output)
+ {
+ this.id = id;
+ this.cipher = cipher;
+ this.param = param;
+ this.input = Hex.decode(input);
+ this.output = Hex.decode(output);
+ }
+
+ public String getName()
+ {
+ return cipher.getAlgorithmName() + " Vector Test " + id;
+ }
+
+ public void performTest()
+ {
+ cipher.init(true, param);
+
+ byte[] out = new byte[input.length];
+
+ cipher.processBytes(input, 0, input.length, out, 0);
+
+ if (!areEqual(out, output))
+ {
+ fail("failed.", new String(Hex.encode(output)) , new String(Hex.encode(out)));
+ }
+
+ cipher.init(false, param);
+
+ cipher.processBytes(output, 0, output.length, out, 0);
+
+ if (!areEqual(input, out))
+ {
+ fail("failed reversal");
+ }
+ }
+}