Random number generator for SPDM protocol operations, implemented via OpenPRoT crypto service.
This crate implements the SpdmRng trait from spdm-lib by delegating to the centralized crypto service. All randomness is generated using ChaCha20 CSPRNG seeded from system entropy.
SpdmCryptoRng → CryptoClient → IPC → CryptoServer → RustCryptoBackend → ChaCha20Rng
use openprot_spdm_rng::SpdmCryptoRng; use spdm_lib::platform::rng::SpdmRng; let mut rng = SpdmCryptoRng::new(handle::CRYPTO); let mut challenge = [0u8; 32]; rng.get_random_bytes(&mut challenge)?;
When AST1060 hardware RNG driver is available, only the crypto backend needs updating:
RustCryptoBackend::OneShot<GetRandomBytes> to use hardware RNGspdm-lib — SPDM protocol librarycrypto-client — OpenPRoT crypto service clientApache-2.0