| 12345678910111213141516171819202122232425262728293031323334 |
- #ifndef AES_H_
- #define AES_H_
- #include <stdlib.h>
- #define BLOCK_LENGTH 16
- typedef struct aes_padded_data_t {
- /// @brief original data, unmodified.
- uint8_t* data;
- /// @brief the last block, modified with padding added.
- uint8_t* padded_block;
- /// @brief original length.
- size_t data_length;
- /// @brief length when excluding the block to be modified.
- size_t data_length_before_pad;
- /// @brief `data_length_before_pad` + BLOCK_LENGTH
- size_t length;
- } aes_padded_data_t;
- typedef enum aes_encryption_mode_t {
- encryption,
- decryption,
- } aes_encryption_mode_t;
- aes_padded_data_t aes_create_padded_data_container();
- uint8_t* aes_drop_padded_data_container(aes_padded_data_t* data);
- int aes_pad_data(aes_padded_data_t* ptr, uint8_t* data, size_t length);
- void aes_ecb(aes_encryption_mode_t mode, aes_padded_data_t* data, uint8_t* key);
- void aes_cbc(aes_encryption_mode_t mode, aes_padded_data_t* data, uint8_t* key);
- #endif // AES_H_
|