This manual page is part of Xcode Tools version 3.2

To obtain these tools:

If you are running a version of Xcode Tools other than 3.2, view the documentation locally:

  • In Xcode

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • For more information about the manual page format, see the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Reference Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.



BN_rand(3)                                         OpenSSL                                        BN_rand(3)



NAME
       BN_rand, BN_pseudo_rand - generate pseudo-random number

SYNOPSIS
        #include <openssl/bn.h>

        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);

DESCRIPTION
       BN_rand() generates a cryptographically strong pseudo-random number of bits bits in length and stores
       it in rnd. If top is -1, the most significant bit of the random number can be zero. If top is 0, it
       is set to 1, and if top 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*bits length.  If bottom 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 rnd in the range 0 <lt>=
       rnd < range.  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().

RETURN VALUES
       The functions return 1 on success, 0 on error.  The error codes can be obtained by ERR_get_error(3).

SEE ALSO
       bn(3), ERR_get_error(3), rand(3), RAND_add(3), RAND_bytes(3)

HISTORY
       BN_rand() is available in all versions of SSLeay and OpenSSL.  BN_pseudo_rand() was added in OpenSSL
       0.9.5. The top == -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.



0.9.8                                            2009-04-03                                       BN_rand(3)

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation to the OpenSSL project by sending email to [email protected].
Bug reports
Report bugs in the functionality of the described tool or API to Apple through Bug Reporter and to the OpenSSL project by sending email to [email protected].
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.