|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Cross-TU surface shared by the RSIP asymmetric + RSA split. More...
Go to the source code of this file.
Functions | |
| void | internal_asym_push (ra8_rsip_off_t off, const uint8_t *buf, uint32_t len) |
| Stream a byte buffer into an asymmetric input lane. | |
| void | internal_asym_pull (ra8_rsip_off_t off, uint8_t *buf, uint32_t len) |
| Pull a byte buffer back through an asymmetric output lane. | |
| void | internal_zero_handle_tail (ra8_rsip_key_handle_t *handle, uint32_t words) |
| Zero-fill the unused tail of a key-handle body buffer. | |
Cross-TU surface shared by the RSIP asymmetric + RSA split.
Not part of the public API. The asymmetric slice of the RSIP-E50D HAL driver is split across two translation units:
The ECC and RSA slices stream operand bytes through the engine's asymmetric input / output lanes. The helpers below are defined in ra8_rsip_asym.c and consumed by those TUs; their full Doxygen contract lives here at the shared declaration site. See CLAUDE.md "Test access to internal symbols (MC/DC scope)".
Definition in file ra8_rsip_asym_internal.h.
| void internal_asym_pull | ( | ra8_rsip_off_t | off, |
| uint8_t * | buf, | ||
| uint32_t | len ) |
Pull a byte buffer back through an asymmetric output lane.
Inverse of internal_asym_push: reads whole little-endian 32-bit words from the register at off into buf and unpacks any trailing 1 .. 3 bytes from a final partial word. Defined in ra8_rsip_asym.c; shared with the RSA entry points in ra8_rsip_rsa.c.
| [in] | off | Register offset of the asymmetric output lane. |
| [out] | buf | Destination buffer (>= len bytes); never NULL here. |
| [in] | len | Number of bytes to pull (may be zero). |
References RA8_PRIV.
| void internal_asym_push | ( | ra8_rsip_off_t | off, |
| const uint8_t * | buf, | ||
| uint32_t | len ) |
Stream a byte buffer into an asymmetric input lane.
Packs whole little-endian 32-bit words into the register at off and zero-extends any trailing 1 .. 3 bytes into a final partial word. Defined in ra8_rsip_asym.c; shared with the RSA entry points in ra8_rsip_rsa.c.
| [in] | off | Register offset of the asymmetric input lane. |
| [in] | buf | Source buffer (>= len bytes); never NULL here. |
| [in] | len | Number of bytes to push (may be zero). |
References RA8_PRIV.
| void internal_zero_handle_tail | ( | ra8_rsip_key_handle_t * | handle, |
| uint32_t | words ) |
Zero-fill the unused tail of a key-handle body buffer.
Several engine paths return a wrapped body shorter than the maximum body capacity. To avoid leaking stale stack contents into the structure, callers pad body[words .. max-1] with zeros. Centralised here and defined in ra8_rsip_asym.c; shared with the key wrap / unwrap + KDF paths there and with the ECDH shared-secret pull in ra8_rsip_ecc.c.
| [in,out] | handle | Handle whose body[] tail is wiped; never NULL here. |
| [in] | words | Number of words already populated. |
References RA8_PRIV.