
How to Use AES.ZIP
==================

AES.ZIP contains a Microsoft Visual C++ Version 6 project to build and
evaluate the 15 AES candidate algorithms.  I retain copyright in this
source code but I hereby give permission for its free use provided its
origin is acknowledged and provided also that any conditions imposed 
by the AES algorithm designers or owners are met.  I provide no 
warranties of any kind in respect of this code.  If any of this code is 
used for purposes other than for AES algorithm evaluation, e.g. in 
delivered applications, I would be grateful to receive outline details 
of the use to which it is being put.

Please note that some AES algorithms have only been made available by 
their designers and owners for evaluation purposes.  Before some AES 
algorithms are used it is hence necessary to obtain permission from the
design teams concerned.

The Structure of the VC++ Project
=================================

The zip file expands into a directory and file structure of a VC++ v6
project in which there are three active programs and 17 directories
that contain algorithm code.  The three active programs are:

aes_gtst - a program to generate test vector files for an AES algorithm
           and compare these with reference versions

aes_test - a program to test an AES algorithm against a standard set of
           test vector files

aes_time - a program to test the speed of an AES algorithm

To use these with a particular algorithm, the algortihm source code 
from one of the algorithm directories is added to one of the above
projects, which is then compiled to run the test in question. Note 
that DEAL requires DES files (des.h, des.c, key.c) in addition to 
DEAL itself (since DEAL is built on DES)

It will be necessary to set up the right source directories in the C++
files for the first two pojects in the above list. The following path
in the first and second project C++ files: 

	string  loc_path("d:\\cpp\\aes\\");

must point to the location of the VC++ project.  In the first project, 
if a NIST CD-ROM is to be used for test vectors, AES_CD should be 
defined and the appropraite drive set in the path:

    string  ref_path("f:\\testvals\\");

Otherwise AES_CD should be left undefined so that the test vectors 
supplied in AES.ZIP will be used.

Bugs and Comments
=================

I would appreciate feedback on this code, especially bugs and 
improvements.  Note that I have not put any effort into making this 
code work on both big and little endain machines.  My PC has an Intel 
PII processor and is hence little endian and this is the environment 
in which I believe the code runs correctly.

        Brian Gladman (gladman@seven77.demon.co.uk), 8th July 1999
