aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/README.md
blob: 7f4b01ed065e6df6828cce2d88d9b2f7870b511c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# aesni

Simple AES encryption algorithm implementation using the AES-NI instruction set.

## Building

I've used the compiler and the assembler shipped with Visual Studio Express 2013 with Update 4 for Windows Desktop.

You can generate the solution using CMake and build it using Visual Studio.

To make AES block I/O functions use big-endian by default (also used in the original FIPS standard; required for the tests),
pass the `LIBAESNI_BE_IO_BY_DEFAULT=1` preprocessor definition.
Using CMake, you can pass the definition like this:

    cmake -D CMAKE_C_FLAGS=/DLIBAESNI_BE_IO_BY_DEFAULT=1 ...

## Running on older CPUs

To run programs that are using the AES-NI instruction set on a CPU w/o the support for these instructions, one can use
[Intel Software Development Emulator](https://software.intel.com/en-us/articles/intel-software-development-emulator).
You can then run a program like this:

    sde -- app.exe arg1 arg2...

## Licensing

This project, including all of the files and their contents, is licensed under the terms of the MIT License.
See LICENSE.txt for details.