You are currently viewing a snapshot of www.mozilla.org taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to www.mozilla.org, please file a bug.



NSPR Reference

Random Number Generator (Chapter 32)

This chapter describes the NSPR random number generator.

Random Number Generator Function

PR_GetRandomNoise

Produces a random value for use as a seed value for another random number generator.

Syntax
#include <prenv.h>

NSPR_API(PRSize) PR_GetRandomNoise(
   void    *buf,
   PRSize  size
);
Parameters

The function has the following parameters:

buf
A pointer to a caller-supplied buffer to contain the generated random number. buf must be at least as large as specified in size.
size
The size, in bytes, of the requested random number.
Returns

PRSize value equal to the size of the random number actually generated, or zero. The generated size may be less than the size requested. A return value of zero means that PR_GetRandomNoise is not implemented on this platform, or there is no available noise to be returned at the time of the call.

Description

PR_GetRandomNoise provides a random value, depending on platform. The length of the random value is dependent on the platform and its ability to provide a random value at that moment.

PR_GetRandomNoise is intended to provide a "seed" value for a another random number generator that may be suitable for cryptographic operations. This implies that the random value provided may not be, by itself, cryptographically secure. The value generated by PR_GetRandomNoise is at best, extremely difficult to predict and is as nondeterministic as the underlying platfrom permits.