A permissively licensed AES implementation optimised for running on micro-controllers.
 
 
 
Go to file
Andrew Carter 946433fccf Update README.md 2016-11-07 23:23:13 +00:00
test Made test script in python 2016-11-07 23:03:19 +00:00
.gitignore Initial commit 2016-11-07 18:22:40 +00:00
.travis.yml Added test script 2016-11-07 23:16:45 +00:00
LICENSE Initial commit 2016-11-07 18:22:40 +00:00
README.md Update README.md 2016-11-07 23:23:13 +00:00
aes.c Removed inline recommendation 2016-11-07 23:02:18 +00:00
aes.h Initial commit 2016-11-07 18:23:59 +00:00

README.md

micro-aes

Build Status

A permissively licensed AES implementation optimised for running on micro-controllers.

This library has developed been developed and open sourced by AndrewCarterUK (Twitter) from Smart Carbon Control. We are always on the lookout for programming talent, so please message me if you are interested in this sort of work.

Features

  • Does not use dynamic memory allocation
  • Uses timing-safe algorithms in place of lookup tables (where possible) to reduce code size
  • API designed for use in a low memory environment (cipher text overwrites plain text on encryption)

API

// AES-256
void aes_256_init    (aes_256_context_t *context, uint8_t key[32]);
void aes_256_encrypt (aes_256_context_t *context, uint8_t block[16]);
void aes_256_decrypt (aes_256_context_t *context, uint8_t block[16]);

// AES-192
void aes_192_init    (aes_192_context_t *context, uint8_t key[24]);
void aes_192_encrypt (aes_192_context_t *context, uint8_t block[16]);
void aes_192_decrypt (aes_192_context_t *context, uint8_t block[16]);

// AES-128
void aes_128_init    (aes_128_context_t *context, uint8_t key[16]);
void aes_128_encrypt (aes_128_context_t *context, uint8_t block[16]);
void aes_128_decrypt (aes_128_context_t *context, uint8_t block[16]);