X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=doc%2Fcrypto%2FBN_rand.pod;h=81f93c2eb3a4e5d64420678dee435bcd51dd27e5;hb=64cee65ebc4a5a23d9f6d6f73cb25e78a80af5c2;hp=0f692684d20032f4b7cf23ea58fc363aadc0c7ac;hpb=bb075f883356589425b7e57f788c7498a83b0219;p=oweals%2Fopenssl.git diff --git a/doc/crypto/BN_rand.pod b/doc/crypto/BN_rand.pod index 0f692684d2..81f93c2eb3 100644 --- a/doc/crypto/BN_rand.pod +++ b/doc/crypto/BN_rand.pod @@ -2,7 +2,7 @@ =head1 NAME -BN_rand - Generate pseudo-random number +BN_rand, BN_pseudo_rand - generate pseudo-random number =head1 SYNOPSIS @@ -10,28 +10,49 @@ BN_rand - Generate pseudo-random number int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); + int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); + + int BN_rand_range(BIGNUM *rnd, BIGNUM *range); + + int BN_pseudo_rand_range(BIGNUM *rnd, BIGNUM *range); + =head1 DESCRIPTION BN_rand() generates a cryptographically strong pseudo-random number of -B bits in length and stores it in B. If B is true, the -two most significant bits of the number will be set to 1, so that the -product of two such random numbers will always have 2*B length. -If B is true, the number will be odd. +B bits in length and stores it in B. If B is -1, the +most significant bit of the random number can be zero. If B is 0, +it is set to 1, and if B is 1, the two most significant bits of +the number will be set to 1, so that the product of two such random +numbers will always have 2*B length. If B is true, the +number will be odd. + +BN_pseudo_rand() does the same, but pseudo-random numbers generated by +this function are not necessarily unpredictable. They can be used for +non-cryptographic purposes and for certain purposes in cryptographic +protocols, but usually not for key generation etc. + +BN_rand_range() generates a cryptographically strong pseudo-random +number B in the range 0 = B E B. +BN_pseudo_rand_range() does the same, but is based on BN_pseudo_rand(), +and hence numbers generated by it are not necessarily unpredictable. -The PRNG must be seeded prior to calling BN_rand(). +The PRNG must be seeded prior to calling BN_rand() or BN_rand_range(). =head1 RETURN VALUES -BN_rand() returns 1 on success, 0 on error. +The functions return 1 on success, 0 on error. The error codes can be obtained by L. =head1 SEE ALSO -L, L, L, +L, L, L, L, L =head1 HISTORY BN_rand() is available in all versions of SSLeay and OpenSSL. +BN_pseudo_rand() was added in OpenSSL 0.9.5. The B == -1 case +and the function BN_rand_range() were added in OpenSSL 0.9.6a. +BN_pseudo_rand_range() was added in OpenSSL 0.9.6c. =cut