A SERVICE OF

logo

Chapter 2 Algorithm Info Types 241
AI_X931Random
AI_X931Random
Purpose:
This AI allows you to generate random numbers for RSA key generation in
conformance with X9.31. This AI can be used to supply multiple independent streams
of randomness. It is included in Crypto-C mainly to satisfy the requirements of
independent generation of large and private prime factors, as specified by X9.31.
This AI is intended for use with
AI_RSAStrongKeyGen only. The SHA1 based pseudo-
random number generator,
G(sha1)
, which is defined in the X9.31 standard and in the
FIPS182-1 DSA standard, is available as
AI_X962Random_V0. If you are not using X9.31
rDSA signatures but require the
G(sha1)
hash function, you should use
AI_X962Random_V0 and not AI_X931Random.
Type of information this allows you to use:
A SHA1 based pseudo-random number generator as defined in Appendix A of the
X9.31 standard.
Format of info supplied to B_SetAlgorithmInfo:
NULL_PTR, if there is only one stream and no additional seeding is desired,
or
a pointer to an
A_X931_RANDOM_PARAMS structure:
When
AI_X931Random is used with AI_RSAStrongKeyGen, the
numberOfStreams
field
must always be equal to 6.
Format of info returned by B_GetAlgorithmInfo:
returns a NULL_PTR if set with NULL_PTR; returns a pointer to an
typedef struct
{
unsigned int numberOfStreams; /* number of independent streams */
ITEM seed; /* additional seeding */
/* to be equally divided among the streams */
} A_X931_RANDOM_PARAMS;