{{{ #!htmlcomment This page is maintained automatically by a script. Don't modify this page by hand, your changes will just be overwritten the next time the script runs. Talk to your Friendly Neighborhood Repository Maintainer if you need to change something here. }}} {{{ #!html

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.

}}} [[RepositoryIndex(format=table,glob=user/sra/aes-keywrap)]] || Clone `https://git.cryptech.is/user/sra/aes-keywrap.git` ||