From 7c7447ab3094965e3011640d5ca379473b7b4ae9 Mon Sep 17 00:00:00 2001 From: Shawn Nock Date: Thu, 1 Sep 2016 14:30:15 -0400 Subject: [PATCH] Const annotation for relevant functions for use with flash-backed keys --- aes.c | 2 +- aes.h | 2 +- block.c | 12 +++++++----- ckdf.c | 4 ++-- ckdf.h | 2 +- cmac.c | 2 +- cmac.h | 2 +- 7 files changed, 14 insertions(+), 12 deletions(-) diff --git a/aes.c b/aes.c index 11d8d99..7606ae2 100644 --- a/aes.c +++ b/aes.c @@ -11,7 +11,7 @@ static ecbdata_t g_ecbdata; -void aes128_init(uint8_t *key) { +void aes128_init(const uint8_t *key) { if (key != NULL) { memmove(g_ecbdata.key, key, 16); #ifndef HOST_BUILD diff --git a/aes.h b/aes.h index 30fcf56..3582b02 100644 --- a/aes.h +++ b/aes.h @@ -10,6 +10,6 @@ typedef struct { uint8_t out[16]; } ecbdata_t; -void aes128_init(uint8_t *); +void aes128_init(const uint8_t *); void aes128_ecb(uint8_t *, uint8_t const *const); void aes_dump_state(void); diff --git a/block.c b/block.c index c9b1af1..dd21a40 100644 --- a/block.c +++ b/block.c @@ -7,6 +7,7 @@ #include #include #include +#include "uart.h" #ifdef HOST_BUILD void block_print(char const *const label, uint8_t const *const b) { @@ -24,19 +25,20 @@ void block_print(char const *const label, uint8_t const *const b) { printf("\n"); return; } +#endif /* HOST_BUILD */ void block_print_bytes(char const *const label, uint8_t const *const b, uint32_t num_bytes) { - printf("%s: ", label); + debug_printf("%s: ", label); for (int i = 0; i < num_bytes; i++) { - printf("%.2x", b[i]); + debug_printf("%.2x", b[i]); if (!((i + 1) % 4)) { - printf(" "); + debug_printf(" "); } } - printf("\n"); + debug_printf("\n"); } -#endif /* HOST_BUILD */ + void block_xor(uint8_t *dest, uint8_t *const a, uint8_t *const b) { for (uint_fast8_t i = 0; i < 4; i++) { diff --git a/ckdf.c b/ckdf.c index 2d6bf59..c8fc3ae 100644 --- a/ckdf.c +++ b/ckdf.c @@ -12,7 +12,7 @@ #include "cmac.h" -void ckdf_extract(uint8_t *prk, uint8_t *salt, uint8_t *ikm, +void ckdf_extract(uint8_t *prk, const uint8_t *salt, const uint8_t *ikm, uint32_t ikm_len) { uint8_t zeros[16] = {0}; if (salt == NULL) { @@ -20,7 +20,7 @@ void ckdf_extract(uint8_t *prk, uint8_t *salt, uint8_t *ikm, } else { cmac_aes128_init(salt); } - cmac_aes128(prk, ikm, ikm_len, 16); + cmac_aes128(prk, (uint8_t*) ikm, ikm_len, 16); } void ckdf_expand(uint8_t *okm, uint8_t *prk, uint8_t *info, diff --git a/ckdf.h b/ckdf.h index 95a19d1..9e7ffc5 100644 --- a/ckdf.h +++ b/ckdf.h @@ -7,6 +7,6 @@ Shawn Nock - */ -void ckdf_extract(uint8_t *, uint8_t *, uint8_t *, uint32_t); +void ckdf_extract(uint8_t *, const uint8_t *, const uint8_t *, uint32_t); void ckdf_expand(uint8_t *, uint8_t *, uint8_t *, uint32_t, uint32_t); diff --git a/cmac.c b/cmac.c index c77f22f..01adb6e 100644 --- a/cmac.c +++ b/cmac.c @@ -22,7 +22,7 @@ void cmac_get_subkeys(uint8_t *dest) { } #endif /* HOST_BUILD */ -void cmac_aes128_init(uint8_t *key) { +void cmac_aes128_init(const uint8_t *key) { /* Initialize AES engine and cache subkeys */ if (key != NULL) { aes128_init(key); diff --git a/cmac.h b/cmac.h index 0d247fc..1bb9ce8 100644 --- a/cmac.h +++ b/cmac.h @@ -7,5 +7,5 @@ void cmac_aes128(uint8_t *, uint8_t *, size_t, uint_fast8_t); void cmac_aes128_expand_key(uint8_t const *const, uint8_t *, uint8_t *); -void cmac_aes128_init(uint8_t *); +void cmac_aes128_init(const uint8_t *); void cmac_get_subkeys(uint8_t *);