X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=doc%2Fcrypto%2FBN_rand.pod;h=81f93c2eb3a4e5d64420678dee435bcd51dd27e5;hp=33363c981f6099056a3cffd12d6e73ce4512111f;hb=c264592d690b0957e6ad2d25cd3c842383a5538e;hpb=4d524e10b4853436a1bfbc83822c5d0e87d64fbd diff --git a/doc/crypto/BN_rand.pod b/doc/crypto/BN_rand.pod index 33363c981f..81f93c2eb3 100644 --- a/doc/crypto/BN_rand.pod +++ b/doc/crypto/BN_rand.pod @@ -12,34 +12,47 @@ BN_rand, BN_pseudo_rand - generate pseudo-random number 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. -The PRNG must be seeded prior to calling BN_rand(). +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() or BN_rand_range(). =head1 RETURN VALUES -BN_rand() and BN_pseudo_rand() return 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. +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