ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
key_vault.h
Go to the documentation of this file.
1
41
42#pragma once
43
44#ifdef __cplusplus
45extern "C" {
46#endif
47
48#include <stdint.h>
49
50#include "ra8_err.h"
51
63
76[[nodiscard]] ra8_err_t ra8_key_vault_init(void);
77
97[[nodiscard]] ra8_err_t ra8_key_vault_store(uint16_t slot, const uint8_t* key);
98
127[[nodiscard]] ra8_err_t
128ra8_key_vault_sha256_xor_challenge(uint16_t slot, const uint8_t* challenge, uint8_t* out);
129
158[[nodiscard]] ra8_err_t ra8_key_vault_set_mac_key(const uint8_t* key, uint16_t key_len);
159
189[[nodiscard]] ra8_err_t
190ra8_key_vault_load_mac_key(uint8_t* out, uint16_t out_cap, uint16_t* out_len);
191
192#ifdef __cplusplus
193}
194#endif
ra8_err_t ra8_key_vault_sha256_xor_challenge(uint16_t slot, const uint8_t *challenge, uint8_t *out)
Compute SHA-256(key XOR challenge) for slot.
Definition key_vault.c:574
ra8_err_t ra8_key_vault_set_mac_key(const uint8_t *key, uint16_t key_len)
Provision the key-authentication key (KAK) used to MAC key imports.
Definition key_vault.c:582
ra8_err_t ra8_key_vault_store(uint16_t slot, const uint8_t *key)
Programme a 256-bit symmetric key into a vault slot.
Definition key_vault.c:567
ra8_err_t ra8_key_vault_init(void)
Initialise the vault (zero every slot).
Definition key_vault.c:562
ra8_key_vault_limits_t
Sizing constants for the vault.
Definition key_vault.h:56
@ k_ra8_key_vault_mac_key_bytes
Max key-authentication key.
Definition key_vault.h:61
@ k_ra8_key_vault_key_bytes
256-bit symmetric key.
Definition key_vault.h:58
@ k_ra8_key_vault_chal_bytes
Challenge length.
Definition key_vault.h:59
@ k_ra8_key_vault_digest_bytes
SHA-256 output size.
Definition key_vault.h:60
@ k_ra8_key_vault_slots
Number of stored keys.
Definition key_vault.h:57
ra8_err_t ra8_key_vault_load_mac_key(uint8_t *out, uint16_t out_cap, uint16_t *out_len)
Copy the provisioned key-authentication key for a secure caller.
Definition key_vault.c:589
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546