Sort openssl.ec, the configuration file for mkerr.pl.
[openssl.git] / crypto / rijndael / README
1 Optimised ANSI C code for the Rijndael cipher (now AES)
2
3 Authors:
4     Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be>
5     Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be>
6     Paulo Barreto <paulo.barreto@terra.com.br>
7
8 All code contained in this distributed is placed in the public domain.
9
10 ========================================================================
11
12 Disclaimer:
13
14 THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS 
15 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
16 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
17 ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE 
18 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
19 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
20 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 
21 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
22 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
23 OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
24 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
25
26 ========================================================================
27
28 Acknowledgements:
29
30 We are deeply indebted to the following people for their bug reports,
31 fixes, and improvement suggestions to the API implementation. Though we
32 tried to list all contributions, we apologise in advance for any
33 missing reference:
34
35 Andrew Bales <Andrew.Bales@Honeywell.com>
36 Markus Friedl <markus.friedl@informatik.uni-erlangen.de>
37 John Skodon <skodonj@webquill.com>
38
39 ========================================================================
40
41 Description:
42
43 This optimised implementation of Rijndael is noticeably faster than the
44 previous versions on Intel processors under Win32 w/ MSVC 6.0.  On the
45 same processor under Linux w/ gcc-2.95.2, the key setup is also
46 considerably faster, but normal encryption/decryption is only marginally
47 faster.
48
49 To enable full loop unrolling for encryption/decryption, define the
50 conditional compilation directive FULL_UNROLL.  This may help increase
51 performance or not, depending on the platform.
52
53 To compute the intermediate value tests, define the conditional
54 compilation directive INTERMEDIATE_VALUE_KAT.  It may be worthwhile to
55 define the TRACE_KAT_MCT directive too, which provides useful progress
56 information during the generation of the KAT and MCT sets.
57
58 ========================================================================
59
60 Contents:
61
62 README                  This file
63 rijndael-alg-fst.c      The algorithm implementation.
64 rijndael-alg-fst.h      The corresponding header file.
65 rijndael-api-fst.c      NIST's implementation.
66 rijndael-api-fst.h      The corresponding header file.
67 rijndael-test-fst.c     A simple program to generate test vectors.
68 table.128               Data for the table tests and 128-bit keys.
69 table.192               Data for the table tests and 192-bit keys.
70 table.256               Data for the table tests and 256-bit keys.
71 fips-test-vectors.txt   Key schedule and ciphertext intermediate values
72                         (reduced set proposed for FIPS inclusion).
73 Makefile                A sample makefile; may need some changes,
74                         depending on the C compiler used.
75
76 N.B. Both the API implementation and the provisional reduced set of
77 test vectors are likely to change, according to NIST's final decision
78 regarding modes of operation and the FIPS contents. They are therefore
79 marked as "version 2.9" rather than "version 3.0".
80