Port from 0.9.8-stable
[openssl.git] / doc / crypto / RAND_egd.pod
index f66c3091b9aed6052585e32b8b34fe831927da41..079838ea2e4a868a07bafe43512f53468c45bca8 100644 (file)
@@ -23,6 +23,11 @@ RAND_egd_bytes(path, 255);
 RAND_egd_bytes() queries the entropy gathering daemon EGD on socket B<path>.
 It queries B<bytes> bytes and uses L<RAND_add(3)|RAND_add(3)> to seed the
 OpenSSL built-in PRNG.
+This function is more flexible than RAND_egd().
+When only one secret key must
+be generated, it is not necessary to request the full amount 255 bytes from
+the EGD socket. This can be advantageous, since the amount of entropy
+that can be retrieved from EGD over time is limited.
 
 RAND_query_egd_bytes() performs the actual query of the EGD daemon on socket
 B<path>. If B<buf> is given, B<bytes> bytes are queried and written into
@@ -36,12 +41,6 @@ the EGD entropy gathering daemon can be used to collect entropy. It provides
 a socket interface through which entropy can be gathered in chunks up to
 255 bytes. Several chunks can be queried during one connection.
 
-While RAND_egd() is longer available (see HISTORY section), the
-RAND_egd_bytes() function is more flexible. When only one secret key must
-be generated, it is not needed to request the full amount 255 bytes from
-the EGD socket. This can be advantageous, since the amount of entropy
-that can be retrieved from EGD over time is limited.
-
 EGD is available from http://www.lothar.com/tech/crypto/ (C<perl
 Makefile.PL; make; make install> to install). It is run as B<egd>
 I<path>, where I<path> is an absolute path designating a socket. When
@@ -51,10 +50,14 @@ non-blocking mode.
 
 Alternatively, the EGD-interface compatible daemon PRNGD can be used. It is
 available from
-http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/prngd.html .
+http://prngd.sourceforge.net/ .
 PRNGD does employ an internal PRNG itself and can therefore never run
 out of entropy.
 
+OpenSSL automatically queries EGD when entropy is requested via RAND_bytes()
+or the status is checked via RAND_status() for the first time, if the socket
+is located at /var/run/egd-pool, /dev/egd-pool or /etc/egd-pool.
+
 =head1 RETURN VALUE
 
 RAND_egd() and RAND_egd_bytes() return the number of bytes read from the
@@ -77,4 +80,6 @@ RAND_egd_bytes() is available since OpenSSL 0.9.6.
 
 RAND_query_egd_bytes() is available since OpenSSL 0.9.7.
 
+The automatic query of /var/run/egd-pool et al was added in OpenSSL 0.9.7.
+
 =cut