Cryptography Reference
In-Depth Information
Generation of a pseudorandom number
r_l
of type
CLINT
with
2
l
−
1
Function:
≤
r_l
<
2
l
using the FLINT/C pseudorandom
number generators, previous initialization via call to the
initialization function
InitRand_l
with suitable parameters
is required
int
Rand_l (CLINT r_l, STATEPRNG *xrstate, int l;)
Syntax:
xrstate
(initialized internal state of the pseudorandom
number generator)
rmin_l
(lower limit for
r_l
)
rmax_l
(upper limit for
r_l
)
Input:
r_l
(pseudorandom number)
xrstate
(new internal state of the pseudorandom number
generator)
Output:
E_CLINT_OK
if all O.K.
E_CLINT_RGE
if
pmin_l
>
pmax_l
E_CLINT_RNG
error in specification of generator in
xrstate
E_CLINT_RIN
if specified random number generator
uninitialized or nonexistent
Return:
int
Rand_l (CLINT r_l, STATEPRNG *xrstate, int l)
{
int error = E_CLINT_OK;
switch (xrstate->Generator)
{
case FLINT_RNDBBS:
error = RandBBS_l (r_l, &xrstate->StateBBS,
MIN (l, (int)CLINTMAXBIT));
break;
case FLINT_RNDAES:
error = RandAES_l (r_l, &xrstate->StateAES,
MIN (l, (int)CLINTMAXBIT));
break;