ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_nsc_key_vault.c
Go to the documentation of this file.
1
16
17#include "key_vault.h"
18#include "ra8_check.h"
19#include "ra8_err.h"
20#include "ra8_nsc.h"
21#include "ra8_nsc_veneer.h"
22
23static const char* s_tag = "NSCKV";
24
66 const uint8_t* ns_chal,
67 uint8_t* ns_digest)
68{
69 RA8_CHECK_NULL_PTR(ns_chal, s_tag, "challenge: ns_chal");
70 RA8_CHECK_NULL_PTR(ns_digest, s_tag, "challenge: ns_digest");
73 return ra8_key_vault_sha256_xor_challenge(slot, ns_chal, ns_digest);
74}
Secure-only symmetric key store.
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
@ 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
static const char * s_tag
Logging / check tag.
Definition ra8_app.c:17
#define RA8_NSC_VENEER
Mark a TrustZone Secure-to-Non-Secure entry-point veneer.
Validation and Error-Checking Macros for ra8-firmware.
#define RA8_CHECK_NULL_PTR(ptr, tag, message)
Reject nullptr pointer, returning k_ra8_err_null_ptr.
Definition ra8_check.h:243
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
Non-Secure Callable veneers – the only NS->S gateway.
ra8_err_t ra8_nsc_key_vault_challenge(uint16_t slot, const uint8_t *ns_chal, uint8_t *ns_digest)
NSC veneer: SHA-256(slot_key XOR challenge) for a stored slot.
Macros for declaring Non-Secure Callable veneer functions.
#define RA8_NSC_CHECK_NS_RANGE_R(ptr, len)
RA8 NSC CHECK NS RANGE r.
#define RA8_NSC_CHECK_NS_RANGE_RW(ptr, len)
RA8 NSC CHECK NS RANGE RW.