1
0
Fork 0
nrf51-cryptolib/aes.c

37 lines
735 B
C

#include "aes.h"
#include "block.h"
#ifndef HOST_BUILD
#include <nrf_soc.h>
#else
#include <openssl/aes.h>
#endif /* HOST_BUILD */
#include <string.h>
static nrf_ecb_hal_data_t g_ecbdata;
void aes128_init(const uint8_t *key) {
if (key != NULL) {
memmove(g_ecbdata.key, key, 16);
}
}
uint8_t *aes128_ecb(uint8_t const *const in) {
#ifdef HOST_BUILD
AES_KEY key;
AES_set_encrypt_key(g_ecbdata.key, 128, &key);
AES_encrypt(in, g_ecbdata.out, &key);
#else
memcpy(g_ecbdata.cleartext, in, 16);
sd_ecb_block_encrypt(&g_ecbdata);
#endif /* HOST_BUILD */
return g_ecbdata.ciphertext;
}
#ifdef HOST_BUILD
void aes_dump_state(void) {
block_print("Key", g_ecbdata.key);
}
#endif /* HOST_BUILD */