cryptix.tools

Class 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:

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

Nested Class Summary

(package private) class
KAT.KAT_Key

Field Summary

(package private) static String
SUBMITTER
(package private) static String
VERSION
(package private) Class
algorithm
(package private) Method
blockSize
(package private) Cipher
cipher
(package private) String
cipherName
(package private) long
decBlocks
(package private) Method
decrypt
(package private) File
destination
(package private) String
dirName
(package private) long
encBlocks
(package private) Method
encrypt
(package private) long
keyCount
(package private) String
keylengths
(package private) int[]
keys
(package private) Method
makeKey
(package private) String
provider
(package private) boolean
useReflection
(package private) boolean
varKey
(package private) boolean
varText
(package private) String
vkFileName
(package private) String
vtFileName

Method Summary

(package private) static void
halt(String s)
Print an error message to System.err and halts execution returning -1 to the JVM.
static void
main(String[] args)
(package private) static void
notify(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, PrintWriter out)
(package private) void
vkForKeyReflect(int keysize, PrintWriter out)
(package private) void
vkKAT(String fileName)
(package private) void
vtForKeyIjce(int keysize, PrintWriter out)
(package private) void
vtForKeyReflect(int keysize, PrintWriter out)
(package private) void
vtKAT(String fileName)

Field Details

SUBMITTER

(package private) static final String SUBMITTER

VERSION

(package private) static final String VERSION

algorithm

(package private)  Class algorithm

blockSize

(package private)  Method blockSize

cipher

(package private)  Cipher cipher

cipherName

(package private)  String cipherName

decBlocks

(package private)  long decBlocks

decrypt

(package private)  Method decrypt

destination

(package private)  File destination

dirName

(package private)  String dirName

encBlocks

(package private)  long encBlocks

encrypt

(package private)  Method encrypt

keyCount

(package private)  long keyCount

keylengths

(package private)  String keylengths

keys

(package private)  int[] keys

makeKey

(package private)  Method makeKey

provider

(package private)  String provider

useReflection

(package private)  boolean useReflection

varKey

(package private)  boolean varKey

varText

(package private)  boolean varText

vkFileName

(package private) final String vkFileName

vtFileName

(package private) final String vtFileName

Method Details

halt

(package private) static void halt(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

main

public static void main(String[] args)

notify

(package private) static void notify(String s)
Write a notification message to System.out.
Parameters:
s - string to output to System.out.

printUsage

(package private)  void printUsage()
write help text and quit.

run

(package private)  void run()
main action.

vkForKeyIjce

(package private)  void vkForKeyIjce(int keysize,
                                     PrintWriter out)
            throws KeyException

vkForKeyReflect

(package private)  void vkForKeyReflect(int keysize,
                                        PrintWriter out)
            throws IllegalAccessException,
                   InvocationTargetException

vkKAT

(package private)  void vkKAT(String fileName)
            throws KeyException

vtForKeyIjce

(package private)  void vtForKeyIjce(int keysize,
                                     PrintWriter out)
            throws KeyException

vtForKeyReflect

(package private)  void vtForKeyReflect(int keysize,
                                        PrintWriter out)
            throws IllegalAccessException,
                   InvocationTargetException

vtKAT

(package private)  void vtKAT(String fileName)
            throws KeyException