cryptix.tools
Class KAT
java.lang.Object
|
+--cryptix.tools.KAT
- public final class KAT
- extends java.lang.Object
For a designated symmetric block cipher algorithm, this command generates
and exercises Known Answer Tests data for both Variable Key and Variable
Text suites.
KAT's output file format is in conformance with the layout described in
Section 3 of NIST's document "Description of Known Answer Tests and Monte
Carlo Tests for Advanced Encryption Standard (AES) Candidate Algorithm
Submissions" dated January 7, 1998.
If the -p argument is not specified, this command assumes that the name
of the designated cipher algorithm is also that of its Security Provider.
It always tries processing the user's request using Java Reflection API
methods on an XXX_Algorithm class, if such a class exists --XXX being the
name of the AES candidate algorithm. When such a class exists, it is
assumed to include the following static methods:
- public static int blockSize();
Return the length in bytes of the cipher's input block.
- public static synchronized Object makeKey (byte[]);
Expand a user-supplied key material into a cipher's session key.
- public static byte[] blockEncrypt (byte[], int, Object);
Encrypt exactly one block of plaintext.
- public static byte[] blockDecrypt (byte[], int, Object);
Decrypt exactly one block of plaintext.
The duality of functionalities are there for performance reasons since
speed is faster with the Reflection API than with the IJCE one --on a
Pentium 133MHz, without JIT, using JDK-1.1.5 Reflection API brings more
than 10% speed improvement.
Copyright © 1998
Systemics Ltd on behalf of the
Cryptix Development Team.
All rights reserved.
$Revision: 1.6 $
- Author:
- Raif S. Naffah
Inner Class Summary |
(package private) class |
KAT.KAT_Key
|
Field Summary |
(package private) java.lang.Class |
algorithm
|
(package private) java.lang.reflect.Method |
blockSize
|
(package private) Cipher |
cipher
|
(package private) java.lang.String |
cipherName
|
(package private) long |
decBlocks
|
(package private) java.lang.reflect.Method |
decrypt
|
(package private) java.io.File |
destination
|
(package private) java.lang.String |
dirName
|
(package private) long |
encBlocks
|
(package private) java.lang.reflect.Method |
encrypt
|
(package private) long |
keyCount
|
(package private) java.lang.String |
keylengths
|
(package private) int[] |
keys
|
(package private) java.lang.reflect.Method |
makeKey
|
(package private) java.lang.String |
provider
|
(package private) static java.lang.String |
SUBMITTER
|
(package private) boolean |
useReflection
|
(package private) boolean |
varKey
|
(package private) boolean |
varText
|
(package private) static java.lang.String |
VERSION
|
(package private) java.lang.String |
vkFileName
|
(package private) java.lang.String |
vtFileName
|
Constructor Summary |
KAT()
|
Method Summary |
(package private) static void |
halt(java.lang.String s)
Print an error message to System.err and halts execution returning
-1 to the JVM. |
static void |
main(java.lang.String[] args)
|
(package private) static void |
notify(java.lang.String s)
Write a notification message to System.out. |
(package private) void |
printUsage()
write help text and quit. |
(package private) void |
run()
main action. |
(package private) void |
vkForKeyIjce(int keysize,
java.io.PrintWriter out)
|
(package private) void |
vkForKeyReflect(int keysize,
java.io.PrintWriter out)
|
(package private) void |
vkKAT(java.lang.String fileName)
|
(package private) void |
vtForKeyIjce(int keysize,
java.io.PrintWriter out)
|
(package private) void |
vtForKeyReflect(int keysize,
java.io.PrintWriter out)
|
(package private) void |
vtKAT(java.lang.String fileName)
|
Methods inherited from class java.lang.Object |
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
VERSION
static final java.lang.String VERSION
SUBMITTER
static final java.lang.String SUBMITTER
varKey
boolean varKey
varText
boolean varText
dirName
java.lang.String dirName
keylengths
java.lang.String keylengths
provider
java.lang.String provider
cipherName
java.lang.String cipherName
destination
java.io.File destination
keys
int[] keys
vkFileName
final java.lang.String vkFileName
vtFileName
final java.lang.String vtFileName
encBlocks
long encBlocks
decBlocks
long decBlocks
keyCount
long keyCount
algorithm
java.lang.Class algorithm
blockSize
java.lang.reflect.Method blockSize
makeKey
java.lang.reflect.Method makeKey
encrypt
java.lang.reflect.Method encrypt
decrypt
java.lang.reflect.Method decrypt
cipher
Cipher cipher
useReflection
boolean useReflection
KAT
public KAT()
main
public static void main(java.lang.String[] args)
halt
static void halt(java.lang.String s)
- Print an error message to System.err and halts execution returning
-1 to the JVM.
- Parameters:
s
- a message to output on System.err
notify
static void notify(java.lang.String s)
- Write a notification message to System.out.
- Parameters:
s
- string to output to System.out.
printUsage
void printUsage()
- write help text and quit.
run
void run()
- main action.
vkKAT
void vkKAT(java.lang.String fileName)
throws java.security.KeyException
vkForKeyReflect
void vkForKeyReflect(int keysize,
java.io.PrintWriter out)
throws java.lang.IllegalAccessException,
java.lang.reflect.InvocationTargetException
vkForKeyIjce
void vkForKeyIjce(int keysize,
java.io.PrintWriter out)
throws java.security.KeyException
vtKAT
void vtKAT(java.lang.String fileName)
throws java.security.KeyException
vtForKeyReflect
void vtForKeyReflect(int keysize,
java.io.PrintWriter out)
throws java.lang.IllegalAccessException,
java.lang.reflect.InvocationTargetException
vtForKeyIjce
void vtForKeyIjce(int keysize,
java.io.PrintWriter out)
throws java.security.KeyException