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:

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
 

Field Detail

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
Constructor Detail

KAT

public KAT()
Method Detail

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