#ifndef AES_AES_H #define AES_AES_H #include #include "aes_types.h" typedef aes_key AESKey; AESKey *allocate_key128(); void generate_key128(AESKey *k, const uint8_t *bytes); void free_key128(AESKey *k); void encrypt_ecb(const AESKey *k, uint8_t *dst, const uint8_t *src, const uint32_t nr); void decrypt_ecb(const AESKey *k, uint8_t *dst, const uint8_t *src, const uint32_t nr); void aes_gcm_full_encrypt( const AESKey *k , uint8_t *iv, uint32_t ivLen , uint8_t *aad, uint32_t aadLen , uint8_t *pt, uint32_t ptLen , uint8_t *ct, uint8_t *tag); void aes_gcm_full_decrypt( const AESKey *k , uint8_t *iv, uint32_t ivLen , uint8_t *aad, uint32_t aadLen , uint8_t *ct, uint32_t ctLen , uint8_t *pt, uint8_t *tag); void aes_encrypt_ctr( AESKey *key , uint8_t *iv , uint8_t *dst , uint8_t *src , uint32_t nr); #endif