org.bouncycastle.crypto.test.CamelliaTest Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bcprov-jdk15on Show documentation
Show all versions of bcprov-jdk15on Show documentation
The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.5 to JDK 1.8.
The newest version!
package org.bouncycastle.crypto.test;
import org.bouncycastle.crypto.engines.CamelliaEngine;
import org.bouncycastle.crypto.params.KeyParameter;
import org.bouncycastle.util.encoders.Hex;
import org.bouncycastle.util.test.SimpleTest;
import org.bouncycastle.util.test.TestResult;
/**
* Camellia tester - vectors from https://www.cosic.esat.kuleuven.be/nessie/testvectors/ and RFC 3713
*/
public class CamelliaTest
extends CipherTest
{
static SimpleTest[] tests =
{
new BlockCipherVectorTest(0, new CamelliaEngine(),
new KeyParameter(Hex.decode("00000000000000000000000000000000")),
"80000000000000000000000000000000", "07923A39EB0A817D1C4D87BDB82D1F1C"),
new BlockCipherVectorTest(1, new CamelliaEngine(),
new KeyParameter(Hex.decode("80000000000000000000000000000000")),
"00000000000000000000000000000000", "6C227F749319A3AA7DA235A9BBA05A2C"),
new BlockCipherVectorTest(2, new CamelliaEngine(),
new KeyParameter(Hex.decode("0123456789abcdeffedcba9876543210")),
"0123456789abcdeffedcba9876543210", "67673138549669730857065648eabe43"),
//
// 192 bit
//
new BlockCipherVectorTest(3, new CamelliaEngine(),
new KeyParameter(Hex.decode("0123456789abcdeffedcba98765432100011223344556677")),
"0123456789abcdeffedcba9876543210", "b4993401b3e996f84ee5cee7d79b09b9"),
new BlockCipherVectorTest(4, new CamelliaEngine(),
new KeyParameter(Hex.decode("000000000000000000000000000000000000000000000000")),
"00040000000000000000000000000000", "9BCA6C88B928C1B0F57F99866583A9BC"),
new BlockCipherVectorTest(5, new CamelliaEngine(),
new KeyParameter(Hex.decode("949494949494949494949494949494949494949494949494")),
"636EB22D84B006381235641BCF0308D2", "94949494949494949494949494949494"),
//
// 256 bit
//
new BlockCipherVectorTest(6, new CamelliaEngine(),
new KeyParameter(Hex.decode("0123456789abcdeffedcba987654321000112233445566778899aabbccddeeff")),
"0123456789abcdeffedcba9876543210", "9acc237dff16d76c20ef7c919e3a7509"),
new BlockCipherVectorTest(7, new CamelliaEngine(),
new KeyParameter(Hex.decode("4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A")),
"057764FE3A500EDBD988C5C3B56CBA9A", "4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A"),
new BlockCipherVectorTest(8, new CamelliaEngine(),
new KeyParameter(Hex.decode("0303030303030303030303030303030303030303030303030303030303030303")),
"7968B08ABA92193F2295121EF8D75C8A", "03030303030303030303030303030303"),
};
CamelliaTest()
{
super(tests, new CamelliaEngine(), new KeyParameter(new byte[32]));
}
public String getName()
{
return "Camellia";
}
public static void main(
String[] args)
{
CamelliaTest test = new CamelliaTest();
TestResult result = test.perform();
System.out.println(result);
}
}