*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> RAND_event (3)              
Title
Content
Arch
Section
 

RAND_add(3)

Contents


NAME    [Toc]    [Back]

       RAND_add,  RAND_seed, RAND_status, RAND_event, RAND_screen
       - Add entropy to the PRNG

SYNOPSIS    [Toc]    [Back]

       #include <openssl/rand.h>

       void RAND_seed(
               const void *buf, int num ); void RAND_add(
               const void *buf, int num, double  entropy  );  int
       RAND_status(
               void ); int RAND_event(
               UINT  iMsg,  WPARAM  wParam, LPARAM lParam ); void
       RAND_screen(
               void );

DESCRIPTION    [Toc]    [Back]

       The RAND_add() function mixes the num bytes  at  buf  into
       the PRNG state. Thus, if the data at buf are unpredictable
       to an adversary, this increases the uncertainty about  the
       state and makes the PRNG output less predictable. Suitable
       input comes from user  interaction  (random  key  presses,
       mouse  movements) and certain hardware events. The entropy
       argument is (the lower bound of) an estimate of  how  much
       randomness is contained in buf, measured in bytes. Details
       about sources of randomness  and  how  to  estimate  their
       entropy can be found in the literature, e.g. RFC 1750.

       The  RAND_add() function may be called with sensitive data
       such as user entered passwords. The seed values cannot  be
       recovered from the PRNG output.

       OpenSSL  makes sure that the PRNG state is unique for each
       thread. On systems that provide /dev/urandom, the  randomness
  device  is used to seed the PRNG transparently. However,
 on all other systems, the application is responsible
       for seeding the PRNG by calling the RAND_add(), RAND_egd()
       or RAND_load_file() functions.

       The RAND_seed() function is equivalent to  the  RAND_add()
       function when num == entropy.

       The  RAND_event()  function collects the entropy from Windows
 events such as mouse movements and other user  interaction.
  It  should  be  called  with the iMsg, wParam and
       lParam arguments of all messages sent to the window procedure.
  It will estimate the entropy contained in the event
       message (if any), and add it to the PRNG. The program  can
       then process the messages as usual.

       The  RAND_screen()  function  is  available for the convenience
 of Windows programmers. It adds  the  current  contents
 of the screen to the PRNG. For applications that can
       catch  Windows  events,  seeding  the  PRNG   by   calling
       RAND_event()  is  a significantly better source of randomness.
 It should be noted that both methods cannot be  used
       on servers that run without user interaction.





RETURN VALUES    [Toc]    [Back]

       The  RAND_status()  and RAND_event() functions return 1 if
       the PRNG has been seeded with enough data, 0 otherwise.

       The other functions do not return values.

HISTORY    [Toc]    [Back]

       The RAND_seed() and RAND_screen() functions are  available
       in  all versions of SSLeay and OpenSSL. The RAND_add() and
       RAND_status() functions have been added in OpenSSL  0.9.5,
       and RAND_event() in OpenSSL 0.9.5a.

SEE ALSO    [Toc]    [Back]

      
      
       Functions:  rand_ssl(3),  RAND_egd(3),  RAND_load_file(3),
       RAND_cleanup(3)



                                                      RAND_add(3)
[ Back ]
 Similar pages
Name OS Title
random_harvest FreeBSD gather entropy from the kernel for the entropy device
random FreeBSD the entropy device
RAND_cleanup OpenBSD erase the PRNG state
RAND_load_file OpenBSD PRNG seed file
RAND_cleanup Tru64 Erase the PRNG state
RAND_file_name OpenBSD PRNG seed file
RAND_file_name Tru64 PRNG seed file
RAND_cleanup NetBSD erase the PRNG state
RAND_load_file NetBSD PRNG seed file
RAND_write_file OpenBSD PRNG seed file
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service