AES: Difference between revisions

From miki
Jump to navigation Jump to search
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Specifications ==
* [http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf Rijndael-ammended.pdf] — Latest version of Rijndael, published on NIST website.

== Implementations ==
== Implementations ==
In '''Python''':
In '''Python''':
* [https://jhafranco.com/2013/06/03/validation-of-an-aes-implementation-in-python/ Validation of an AES implementation in Python 3, by João H de A Franco]
: Look good at first sight, but actually the interface is incredibly weird and twisted. Why people can't do simple things?!?
: Example of use
<source lang=python>
run aes.py
a=AES('MODE_ECB')
a.setKey('SIZE_128',0x00000000000000000000000000000000)
print "%x" % a.listToInt(a.encryptBlock(a.intToList(0x00000000000000000000000000000000)))
</source>

* [http://brandon.sternefamily.net/2007/06/aes-tutorial-python-implementation/ Brandon Stern's AES implementation in Python]
* [http://brandon.sternefamily.net/2007/06/aes-tutorial-python-implementation/ Brandon Stern's AES implementation in Python]
: Including step-by-step test vector (for AES-256) &mdash; ''MAYBE INCORRECT''
* [https://github.com/caller9/pythonaes Caller9's python implementation on GitHub]
* [https://github.com/caller9/pythonaes Caller9's python implementation on GitHub]
* [https://github.com/ricmoo/pyaes Richard Moore's implementation on GitHub]
* [https://github.com/ricmoo/pyaes Richard Moore's implementation on GitHub]

In '''Go''':
* [http://blog.nindalf.com/implementing-aes/ Krishna's blog -- Implementing AES]
: Clear explanation and implemetation


In '''Javascript''':
In '''Javascript''':

Latest revision as of 08:19, 10 June 2016

Specifications

Implementations

In Python:

Look good at first sight, but actually the interface is incredibly weird and twisted. Why people can't do simple things?!?
Example of use
run aes.py
a=AES('MODE_ECB')
a.setKey('SIZE_128',0x00000000000000000000000000000000)
print "%x" % a.listToInt(a.encryptBlock(a.intToList(0x00000000000000000000000000000000)))
Including step-by-step test vector (for AES-256) — MAYBE INCORRECT

In Go:

Clear explanation and implemetation

In Javascript: