
Reference Implementation (+ KATs and MCTs)  v2.2
-----------------------------------------------------------

This archive contains the following files:

Makefile:	A file that allows for easy compiling of the code with
		Unix `make' (tested with GNU make).
README: 	This file.
boxes-ref.dat:	Tables that are needed by the reference implementation.
		The tables implement the S-box and its inverse, and also
		some temporary tables needed for multiplying in the finite
		field GF(2^8).
rijndael-alg-ref.c:
rijndael-alg-ref.h:
		Algorithm implementation.
rijndael-api-ref.c:
rijndael-api-ref.h:
		Interface to the C API.
rijndaeltest-ref.c:
		Implementation of the KAT and MCT.
table.128:
table.192:
table.256:
		Files needed for the KAT (for the Table Known Answer Test).



Instructions for the KAT and MCT software:

1) Compile the C code and put the executable in the same directory as the
   table.??? files.
2) Run the executable. It generates all the tables in the NIST format.
3) Compare the generated tables with the original provided tables, e.g.
   in Unix, with `diff'. 
   
   
Changes with respect to v1.0 (= round 1 submission)
---------------------------------------------------

1) Removed the parameter blockLen from makeKey() and cipherInit().
   The parameter is still present in the structures keyInstance and
   cipherInstance.
 
------------------------------------------------------------------------

Changes with respect to v2.0 (= round 2 submission)
---------------------------------------------------

Fixed a bug in the CBC code.

------------------------------------------------------------------------

Changes with respect to v2.1 
----------------------------

Changed the names of the subroutines to Brian Gladman's.
