Const annotation for relevant functions for use with flash-backed keys
This commit is contained in:
parent
455a9eb749
commit
7c7447ab30
2
aes.c
2
aes.c
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
static ecbdata_t g_ecbdata;
|
static ecbdata_t g_ecbdata;
|
||||||
|
|
||||||
void aes128_init(uint8_t *key) {
|
void aes128_init(const uint8_t *key) {
|
||||||
if (key != NULL) {
|
if (key != NULL) {
|
||||||
memmove(g_ecbdata.key, key, 16);
|
memmove(g_ecbdata.key, key, 16);
|
||||||
#ifndef HOST_BUILD
|
#ifndef HOST_BUILD
|
||||||
|
|
2
aes.h
2
aes.h
|
@ -10,6 +10,6 @@ typedef struct {
|
||||||
uint8_t out[16];
|
uint8_t out[16];
|
||||||
} ecbdata_t;
|
} ecbdata_t;
|
||||||
|
|
||||||
void aes128_init(uint8_t *);
|
void aes128_init(const uint8_t *);
|
||||||
void aes128_ecb(uint8_t *, uint8_t const *const);
|
void aes128_ecb(uint8_t *, uint8_t const *const);
|
||||||
void aes_dump_state(void);
|
void aes_dump_state(void);
|
||||||
|
|
12
block.c
12
block.c
|
@ -7,6 +7,7 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include "uart.h"
|
||||||
|
|
||||||
#ifdef HOST_BUILD
|
#ifdef HOST_BUILD
|
||||||
void block_print(char const *const label, uint8_t const *const b) {
|
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");
|
printf("\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif /* HOST_BUILD */
|
||||||
|
|
||||||
void block_print_bytes(char const *const label, uint8_t const *const b,
|
void block_print_bytes(char const *const label, uint8_t const *const b,
|
||||||
uint32_t num_bytes) {
|
uint32_t num_bytes) {
|
||||||
printf("%s: ", label);
|
debug_printf("%s: ", label);
|
||||||
for (int i = 0; i < num_bytes; i++) {
|
for (int i = 0; i < num_bytes; i++) {
|
||||||
printf("%.2x", b[i]);
|
debug_printf("%.2x", b[i]);
|
||||||
if (!((i + 1) % 4)) {
|
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) {
|
void block_xor(uint8_t *dest, uint8_t *const a, uint8_t *const b) {
|
||||||
for (uint_fast8_t i = 0; i < 4; i++) {
|
for (uint_fast8_t i = 0; i < 4; i++) {
|
||||||
|
|
4
ckdf.c
4
ckdf.c
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
#include "cmac.h"
|
#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) {
|
uint32_t ikm_len) {
|
||||||
uint8_t zeros[16] = {0};
|
uint8_t zeros[16] = {0};
|
||||||
if (salt == NULL) {
|
if (salt == NULL) {
|
||||||
|
@ -20,7 +20,7 @@ void ckdf_extract(uint8_t *prk, uint8_t *salt, uint8_t *ikm,
|
||||||
} else {
|
} else {
|
||||||
cmac_aes128_init(salt);
|
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,
|
void ckdf_expand(uint8_t *okm, uint8_t *prk, uint8_t *info,
|
||||||
|
|
2
ckdf.h
2
ckdf.h
|
@ -7,6 +7,6 @@
|
||||||
Shawn Nock - <nock@nocko.se>
|
Shawn Nock - <nock@nocko.se>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
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);
|
void ckdf_expand(uint8_t *, uint8_t *, uint8_t *, uint32_t, uint32_t);
|
||||||
|
|
||||||
|
|
2
cmac.c
2
cmac.c
|
@ -22,7 +22,7 @@ void cmac_get_subkeys(uint8_t *dest) {
|
||||||
}
|
}
|
||||||
#endif /* HOST_BUILD */
|
#endif /* HOST_BUILD */
|
||||||
|
|
||||||
void cmac_aes128_init(uint8_t *key) {
|
void cmac_aes128_init(const uint8_t *key) {
|
||||||
/* Initialize AES engine and cache subkeys */
|
/* Initialize AES engine and cache subkeys */
|
||||||
if (key != NULL) {
|
if (key != NULL) {
|
||||||
aes128_init(key);
|
aes128_init(key);
|
||||||
|
|
2
cmac.h
2
cmac.h
|
@ -7,5 +7,5 @@
|
||||||
|
|
||||||
void cmac_aes128(uint8_t *, uint8_t *, size_t, uint_fast8_t);
|
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_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 *);
|
void cmac_get_subkeys(uint8_t *);
|
||||||
|
|
Loading…
Reference in New Issue