aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2015-05-03 23:40:59 -0400
committerRob Austein <sra@hactrn.net>2015-05-03 23:40:59 -0400
commit865fffeafdc6622285a2dd31e17999965569312a (patch)
tree01f28928edca363146d0ef5c9f6908983443970b /README.md
Initial commit of AES Key Wrap implementation.
Diffstat (limited to 'README.md')
-rw-r--r--README.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..78f3bb9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,27 @@
+AES key wrap
+============
+
+A preliminary implementation of AES Key Wrap, RFC 5649 flavor, using
+Cryptlib to supply the AES ECB transformations.
+
+aes_keywrap.py contains two different Python implementations:
+
+1. An implementation using Python longs as 64-bit integers; and
+
+2. An implementation using Python arrays.
+
+The first of these is the easiest to understand, as it can just do
+(long) integer arithmetic and follow the specification very closely.
+The second is closer to what one would do to implement this in an
+assembly language like C.
+
+aes_keywrap.[ch] is a C implementation. The API for this is not yet
+set in stone.
+
+All three implementations include test vectors.
+
+The two implementations based on byte arrays use shift and mask
+operations to handle the two numerical values ("m" and "t") which
+require byte swapping on little endian hardware; this is not the most
+efficient implementation possible, but it's portable, and will almost
+certainly be lost in the noise under the AES operations.