pub struct RandAlg { /* private fields */ }Expand description
An OpenSSL RAND algorithm descriptor (EVP_RAND*).
Fetched once and reused to create RandCtx instances.
Implementations§
Source§impl RandAlg
impl RandAlg
Sourcepub fn fetch(name: &CStr, props: Option<&CStr>) -> Result<Self, ErrorStack>
pub fn fetch(name: &CStr, props: Option<&CStr>) -> Result<Self, ErrorStack>
Fetch a RAND algorithm from the global default library context.
Common algorithm names: c"CTR-DRBG", c"HASH-DRBG", c"HMAC-DRBG".
§Errors
Returns Err if the algorithm is not available.
Sourcepub fn fetch_in(
ctx: &Arc<LibCtx>,
name: &CStr,
props: Option<&CStr>,
) -> Result<Self, ErrorStack>
pub fn fetch_in( ctx: &Arc<LibCtx>, name: &CStr, props: Option<&CStr>, ) -> Result<Self, ErrorStack>
Fetch a RAND algorithm within an explicit library context.
Use this when the DRBG must be bound to a specific provider set
(e.g. a FIPS-isolated LibCtx).
The Arc<LibCtx> is retained for the lifetime of the RandAlg to
ensure the context outlives the algorithm descriptor.
§Errors
Returns Err if the algorithm is not available in ctx.
Sourcepub fn params_strength(&self) -> Result<u32, ErrorStack>
pub fn params_strength(&self) -> Result<u32, ErrorStack>
Security strength of this algorithm descriptor in bits.
Calls EVP_RAND_get_params with the "strength" key to read the
declared security strength of the algorithm (e.g. 256 for CTR-DRBG
with AES-256, 128 for HMAC-DRBG with SHA-256).
§Errors
Returns Err if the OpenSSL parameter query fails.