256 const uint8_t* oem_blob,
434 const uint8_t* nonce,
471 const uint8_t* nonce,
502ra8_rsip_poly1305(
const uint8_t* one_time_key,
const uint8_t* msg, uint32_t msg_len, uint8_t* tag);
547 uint32_t digest_len);
609 const uint8_t* digest,
640 const uint8_t* digest,
642 const uint8_t* signature);
684 const uint8_t* plaintext,
685 uint32_t plaintext_len,
686 uint8_t* ciphertext);
729 const uint8_t* ciphertext,
731 uint32_t plaintext_cap,
732 uint32_t* recovered_len);
766 const uint8_t* digest,
803 const uint8_t* digest,
805 const uint8_t* signature);
898 const uint8_t* signature);
932 const uint8_t* peer_x,
933 const uint8_t* peer_y,
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
ra8_err_t ra8_rsip_oem_install(ra8_rsip_oem_cmd_t cmd, const uint8_t *iv, const uint8_t *oem_blob, uint32_t blob_len, ra8_rsip_key_handle_t *out)
Install an OEM-encrypted key blob into the wrapped vault.
ra8_err_t ra8_rsip_ecdsa_verify(const ra8_rsip_key_handle_t *key, ra8_rsip_curve_t curve, const uint8_t *digest, uint32_t digest_len, const uint8_t *signature)
ECDSA verify a signature with a peer public key.
ra8_err_t ra8_rsip_chacha20_poly1305(const ra8_rsip_key_handle_t *key, ra8_rsip_aes_dir_t dir, const uint8_t *nonce, const uint8_t *aad, uint32_t aad_len, const uint8_t *in, uint8_t *out, uint32_t in_len, uint8_t *tag)
ChaCha20-Poly1305 AEAD encrypt or decrypt (RFC 7539).
ra8_err_t ra8_rsip_aes256_install_plain(const uint8_t *key, ra8_rsip_key_handle_t *out)
Wrap a 32-byte AES-256 key (see ra8_rsip_aes128_install_plain).
ra8_err_t ra8_rsip_eddsa_sign(const ra8_rsip_key_handle_t *key, const uint8_t *msg, uint32_t msg_len, uint8_t *signature)
Ed25519 PureEdDSA sign a message (RFC 8032).
ra8_err_t ra8_rsip_aes_cipher(const ra8_rsip_key_handle_t *key, ra8_rsip_aes_mode_t mode, ra8_rsip_aes_dir_t dir, const uint8_t *iv, const uint8_t *in, uint8_t *out, uint32_t len)
Encrypt or decrypt a buffer with AES in a non-AEAD mode.
ra8_err_t ra8_rsip_rsa_decrypt(const ra8_rsip_key_handle_t *key, ra8_rsip_rsa_size_t size, ra8_rsip_rsa_pad_t pad, const uint8_t *ciphertext, uint8_t *plaintext, uint32_t plaintext_cap, uint32_t *recovered_len)
RSA private-key decrypt a ciphertext (RSAES-OAEP / PKCS1).
ra8_err_t ra8_rsip_hmac(const ra8_rsip_key_handle_t *key, const uint8_t *msg, uint32_t msg_len, uint8_t *mac, uint32_t mac_len)
HMAC-SHA-2 / HMAC-SHA-3 over a buffer using a wrapped key.
ra8_err_t ra8_rsip_hash(ra8_rsip_hash_alg_t alg, const uint8_t *msg, uint32_t msg_len, uint8_t *digest, uint32_t digest_len)
Compute a hash of an in-memory buffer using the selected algorithm.
ra8_err_t ra8_rsip_rsa_verify(const ra8_rsip_key_handle_t *key, ra8_rsip_rsa_size_t size, const uint8_t *digest, uint32_t digest_len, const uint8_t *signature)
RSA verify a signature against a digest using a wrapped pubkey.
ra8_err_t ra8_rsip_poly1305(const uint8_t *one_time_key, const uint8_t *msg, uint32_t msg_len, uint8_t *tag)
Poly1305 MAC over a buffer using a 32-byte one-time key.
ra8_err_t ra8_rsip_hmac_install_plain(ra8_rsip_oem_cmd_t alg, const uint8_t *key, uint32_t key_len, ra8_rsip_key_handle_t *out)
Wrap an HMAC key for use by the HMAC engine.
ra8_err_t ra8_rsip_ecdh_compute(const ra8_rsip_key_handle_t *key, ra8_rsip_curve_t curve, const uint8_t *peer_x, const uint8_t *peer_y, ra8_rsip_key_handle_t *out)
ECDH shared-secret derivation.
ra8_err_t ra8_rsip_chacha20(const ra8_rsip_key_handle_t *key, ra8_rsip_aes_dir_t dir, const uint8_t *nonce, uint32_t counter, const uint8_t *in, uint8_t *out, uint32_t len)
ChaCha20 stream encrypt or decrypt (RFC 7539, no AEAD).
ra8_err_t ra8_rsip_aes128_install_plain(const uint8_t *key, ra8_rsip_key_handle_t *out)
Wrap a 16-byte AES-128 key for use by the engine.
ra8_err_t ra8_rsip_chacha20_install_plain(const uint8_t *key, ra8_rsip_key_handle_t *out)
Wrap a 32-byte ChaCha20 key.
ra8_err_t ra8_rsip_aes_gcm(const ra8_rsip_key_handle_t *key, ra8_rsip_aes_dir_t dir, const uint8_t *iv, const uint8_t *aad, uint32_t aad_len, const uint8_t *in, uint8_t *out, uint32_t in_len, uint8_t *tag)
AES-GCM encrypt or decrypt with associated data.
ra8_err_t ra8_rsip_aes192_install_plain(const uint8_t *key, ra8_rsip_key_handle_t *out)
Wrap a 24-byte AES-192 key (see ra8_rsip_aes128_install_plain).
ra8_err_t ra8_rsip_ecdsa_sign(const ra8_rsip_key_handle_t *key, ra8_rsip_curve_t curve, const uint8_t *digest, uint32_t digest_len, uint8_t *signature)
ECDSA sign a digest with a wrapped private key.
ra8_err_t ra8_rsip_rsa_sign(const ra8_rsip_key_handle_t *key, ra8_rsip_rsa_size_t size, const uint8_t *digest, uint32_t digest_len, uint8_t *signature)
RSA sign a digest with a wrapped private key.
ra8_err_t ra8_rsip_aes_ccm(const ra8_rsip_key_handle_t *key, ra8_rsip_aes_dir_t dir, const uint8_t *iv, const uint8_t *aad, uint32_t aad_len, const uint8_t *in, uint8_t *out, uint32_t in_len, uint8_t *tag)
AES-CCM encrypt or decrypt with associated data.
ra8_err_t ra8_rsip_rsa_encrypt(const ra8_rsip_key_handle_t *key, ra8_rsip_rsa_size_t size, ra8_rsip_rsa_pad_t pad, const uint8_t *plaintext, uint32_t plaintext_len, uint8_t *ciphertext)
RSA public-key encrypt a short message (RSAES-OAEP / PKCS1).
ra8_err_t ra8_rsip_eddsa_verify(const ra8_rsip_key_handle_t *key, const uint8_t *msg, uint32_t msg_len, const uint8_t *signature)
Ed25519 PureEdDSA verify a signature (RFC 8032).
Renesas Secure IP (RSIP-E50D) register layout for the RA8D2.
@ k_ra8_rsip_handle_words_rsa4096_priv
RSA-4096 wrapped private.
ra8_rsip_aes_dir_t
Direction selector for symmetric ciphers.
ra8_rsip_curve_t
ECC curve selector (HUM Ch 52.1 Table 52.1 "ECC" p 3302).
ra8_rsip_hash_alg_t
Algorithm selector value written to the HASH CTRL word.
ra8_rsip_oem_cmd_t
OEM-key install opcode written to OEM_CTRL.
ra8_rsip_rsa_size_t
RSA key-size selector (HUM Ch 52.1 Table 52.1 "RSA" p 3302).
ra8_rsip_rsa_pad_t
RSA encryption padding-scheme selector written to ASYM_ARG.
ra8_rsip_aes_mode_t
Block-cipher mode selector for the AES engine.
Opaque wrapped-key handle.
uint32_t body_words
Number of body words (1..261).
uint32_t body[k_ra8_rsip_handle_words_rsa4096_priv]
Wrapped body.
uint32_t alg
OEM-cmd algorithm selector.