From a4401c99c2a54ba9a964317cbff915d40d16e470 Mon Sep 17 00:00:00 2001 From: Uros Majstorovic Date: Wed, 2 Feb 2022 06:30:38 +0100 Subject: moved aes sha and blowfish to crypto --- ext/crypto/aes/aes.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 ext/crypto/aes/aes.h (limited to 'ext/crypto/aes/aes.h') diff --git a/ext/crypto/aes/aes.h b/ext/crypto/aes/aes.h new file mode 100644 index 0000000..f6dd079 --- /dev/null +++ b/ext/crypto/aes/aes.h @@ -0,0 +1,37 @@ +#ifndef _AES_H_ +#define _AES_H_ + +#include +#include + +#define AES128 1 +//#define AES192 1 +//#define AES256 1 + +#define AES_BLOCKLEN 16 // Block length in bytes - AES is 128b block only + +#if defined(AES256) && (AES256 == 1) + #define AES_KEYLEN 32 + #define AES_KEYEXPSIZE 240 +#elif defined(AES192) && (AES192 == 1) + #define AES_KEYLEN 24 + #define AES_KEYEXPSIZE 208 +#else + #define AES_KEYLEN 16 // Key length in bytes + #define AES_KEYEXPSIZE 176 +#endif + +typedef struct +{ + uint8_t RoundKey[AES_KEYEXPSIZE]; +} AESCtx; + +void aes_init(AESCtx *ctx, uint8_t *key); +// buffer size is exactly AES_BLOCKLEN bytes; +void aes_ecb_encrypt(AESCtx *ctx, uint8_t *buf); +void aes_ecb_decrypt(AESCtx *ctx, uint8_t *buf); +// buffer size MUST be mutile of AES_BLOCKLEN; +void aes_cbc_encrypt(AESCtx *ctx, uint8_t *iv, uint8_t *buf, size_t length); +void aes_cbc_decrypt(AESCtx *ctx, uint8_t *iv, uint8_t *buf, size_t length); + +#endif \ No newline at end of file -- cgit v1.2.3