Update README.md
This commit is contained in:
@@ -1,14 +1,18 @@
|
|||||||
### Tiny AES128 in C
|
### Tiny AES128 in C
|
||||||
|
|
||||||
This is a small and portable implementation of the AES128 ECB encryption algorithm written in C.
|
This is a small and portable implementation of the AES128 ECB and CBC encryption algorithms written in C.
|
||||||
|
|
||||||
The API is very simple and looks like this (I am using C99 `<stdint.h>`-style annotated types):
|
The API is very simple and looks like this (I am using C99 `<stdint.h>`-style annotated types):
|
||||||
|
|
||||||
```C
|
```C
|
||||||
void AES128_ECB_encrypt(uint8_t* input, const uint8_t* key, uint8_t* output);
|
void AES128_ECB_encrypt(uint8_t* input, const uint8_t* key, uint8_t* output);
|
||||||
void AES128_ECB_decrypt(uint8_t* input, const uint8_t* key, uint8_t* output);
|
void AES128_ECB_decrypt(uint8_t* input, const uint8_t* key, uint8_t* output);
|
||||||
|
void AES128_CBC_encrypt_buffer(uint8_t* output, uint8_t* input, uint32_t length, const uint8_t* key, const uint8_t* iv);
|
||||||
|
void AES128_CBC_decrypt_buffer(uint8_t* output, uint8_t* input, uint32_t length, const uint8_t* key, const uint8_t* iv);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
You can choose to use one or both of the modes-of-operation, by defining the symbols CBC and ECB. See the header file for clarification.
|
||||||
|
|
||||||
The module uses around 200 bytes of RAM and 2.5K ROM when compiled for ARM (~2K for Thumb but YMMV).
|
The module uses around 200 bytes of RAM and 2.5K ROM when compiled for ARM (~2K for Thumb but YMMV).
|
||||||
|
|
||||||
It is the smallest implementation in C I've seen yet, but do contact me if you know of something smaller (or have improvements to the code here).
|
It is the smallest implementation in C I've seen yet, but do contact me if you know of something smaller (or have improvements to the code here).
|
||||||
|
|||||||
Reference in New Issue
Block a user