Developer Guide and Reference for Intel® Cryptography Primitives Library
ippsHashDRBG_Gen
Generates a pseudorandom unsigned 32-bit integer buffer of the specified bit length.
Syntax
IppStatus ippsHashDRBG_Gen(Ipp32u* pRand,
int nBits,
const int requestedSecurityStrength,
const int predictionResistanceRequest,
const Ipp8u* addlInput,
const int addlInputBitsLen,
IppsHashDRBG_EntropyInputCtx* pEntrInputCtx,
IppsHashDRBGState* pDrbgCtx);
Include Files
ippcp.h
Parameters
pRand |
Pointer to the output pseudorandom unsigned integer buffer. |
nBits |
Requested number of bits to be generated. |
requestedSecurityStrength |
The security strength to be associated with the requested pseudorandom bits. |
predictionResistanceRequest |
Indicates whether or not prediction resistance is to be provided during the request (whether or not fresh entropy bits are required). |
addlInput |
Pointer to the array containing additional input (optional). |
addlInputBitsLen |
Length of the addlInput in bits (may be zero). |
pEntrInputCtx |
Pointer to the Entropy input context. The size is equal to the value returned by ippsHashDRBG_EntropyInputCtxGetSize. |
pDrbgCtx |
Pointer to the IppsHashDRBGState context. Size equals to the value returned by ippsHashDRBG_GetSize. |
Description
The ippsHashDRBG_Gen function:
Calls the reseed function to incorporate fresh entropy when prediction resistance is requested or the Hash DRBG has reached the end of its reseed interval.
Generates a pseudorandom unsigned integer big number of the specified nBits length and updates the working state.
Return Values
ippStsNoErr |
Indicates no error. All single operations executed without errors. Any other value indicates an error. |
ippStsNullPtrErr |
pRand, pDrbgCtx or pEntrInputCtx is a NULL pointer. The pointer to the buffer that contains the entropy input is NULL. |
ippStsContextMatchErr |
If the Hash DRBG identifier doesn’t match. If the Entropy input context identifier doesn’t match. |
ippStsBadArgErr |
Prediction resistance is requested, but predictionResistanceFlag has been set to 0 during the initialization of pDrbgCtx state. The nBits exceeds the maximum possible number of bits per request or the maximum possible value. The addlInput is NULL with non-zero addlInputBitsLen, or the addlInput is not NULL, but addlInputBitsLen is 0. |
ippStsOutOfRangeErr |
The length of the addlInput exceeds the maximum possible value. The length for the entropy input, passed to the getEntropyInput callback function, is less than the security strength or exceeds the length of the entropy input buffer. |
ippStsNotSupportedModeErr |
The CPU does not support the RDSEED and/or RDRAND instructions. |
ippStsHashOperationErr |
An error status code was returned during hashing operations. |