boringssl/include/openssl
David Benjamin de24aadc5b Add RAND_set_urandom_fd.
Chromium uses a zygote process and a sandbox on Linux. In order for RAND_bytes
to be functional and guaranteed fork-safe inside the renderers, /dev/urandom
must be prewarmed. Calling RAND_bytes initializes a thread-local ChaCha20 key
when rdrand is available. So that key is fork-safe and to avoid tempting any
dragons by touching pthreads APIs before a non-exec fork, add a
RAND_set_urandom_fd API. It allows the consumer to supply the /dev/urandom fd
and promises to be fork-safe, both in initializing key material and use of
pthreads.

This doesn't affect any current shipping versions of Chrome.

BUG=462040

Change-Id: I1037e21e525918971380e4ea1371703c8237a0b0
Reviewed-on: https://boringssl-review.googlesource.com/5302
Reviewed-by: Adam Langley <agl@google.com>
2015-06-30 21:41:42 +00:00
..
aead.h AEADs don't go through ENGINE. 2015-06-22 23:59:40 +00:00
aes.h Compatibility changes for wpa_supplicant and OpenSSH. 2015-04-14 20:18:28 +00:00
asn1_mac.h Prune away (almost) all of asn1_mac.h 2015-04-08 20:42:57 +00:00
asn1.h Support Trusty, an embedded platform. 2015-05-08 18:34:55 +00:00
asn1t.h Remove last references to named locks. 2015-05-20 19:18:30 +00:00
base64.h Various documentation fixes. 2015-01-14 21:50:50 +00:00
base.h Define OPENSSL_64_BIT for PowerPC chips. 2015-06-16 18:09:33 +00:00
bio.h Restore |ERR_print_errors()|. 2015-06-23 21:41:24 +00:00
blowfish.h Add decrepit, initially containing CAST and Blowfish. 2015-04-06 16:58:45 -07:00
bn.h Check for BN_copy failures. 2015-06-15 17:52:40 +00:00
buf.h Reset all the error codes. 2015-02-11 23:12:08 +00:00
buffer.h Add buffer.h for compatibility. 2015-05-12 00:09:57 +00:00
bytestring.h Correct various documentation typos 2015-06-10 22:06:01 +00:00
cast.h Add decrepit, initially containing CAST and Blowfish. 2015-04-06 16:58:45 -07:00
chacha.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
cipher.h Fix some malloc test crashs. 2015-05-21 18:00:10 +00:00
cmac.h Add support for CMAC (RFC 4493). 2015-05-07 21:13:41 +00:00
conf.h Eliminate unnecessary includes from low-level crypto modules. 2015-04-13 20:49:18 +00:00
cpu.h Never set RC4_CHAR. 2015-02-20 23:59:59 +00:00
crypto.h Fix |SSLeay|. 2015-05-20 17:44:44 +00:00
des.h Restore |DES_ede3_cfb_encrypt| and |DES_ede3_cfb64_encrypt| from OpenSSL at ce7e647b. 2015-06-24 01:33:31 +00:00
dh.h Convert reference counts in crypto/ 2015-05-20 19:15:26 +00:00
digest.h Remove EVP_PKEY_HMAC. 2015-06-25 00:03:02 +00:00
dsa.h Convert reference counts in crypto/ 2015-05-20 19:15:26 +00:00
dtls1.h Opaquify DTLS structs. 2015-05-08 18:02:02 +00:00
ec_key.h Correct various documentation typos 2015-06-10 22:06:01 +00:00
ec.h Correct various documentation typos 2015-06-10 22:06:01 +00:00
ecdh.h Reset all the error codes. 2015-02-11 23:12:08 +00:00
ecdsa.h Expose ECDSA_SIG_max_len to size a DER ECDSA-Sig-Value. 2015-06-18 22:23:12 +00:00
engine.h Convert reference counts in crypto/ 2015-05-20 19:15:26 +00:00
err.h Correct various documentation typos 2015-06-10 22:06:01 +00:00
evp.h Remove EVP_PKEY_HMAC. 2015-06-25 00:03:02 +00:00
ex_data.h Correct various documentation typos 2015-06-10 22:06:01 +00:00
hkdf.h Implement HKDF. 2014-12-18 20:13:06 +00:00
hmac.h Remove HMAC_CTX_set_flags. 2015-06-02 01:07:07 +00:00
lhash_macros.h Remove hash table lookups from ex_data. 2015-04-15 23:59:35 +00:00
lhash.h Remove hash table lookups from ex_data. 2015-04-15 23:59:35 +00:00
md4.h Correct various documentation typos 2015-06-10 22:06:01 +00:00
md5.h Correct various documentation typos 2015-06-10 22:06:01 +00:00
mem.h Eliminate unnecessary includes from low-level crypto modules. 2015-04-13 20:49:18 +00:00
modes.h Add visibility rules. 2014-07-31 22:03:11 +00:00
obj_mac.h Remove fake RLE compression OID. 2015-05-27 21:49:39 +00:00
obj.h Correct various documentation typos 2015-06-10 22:06:01 +00:00
objects.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
opensslfeatures.h Remove remaining remnants of RIPEMD-160 support. 2015-03-17 21:03:42 +00:00
opensslv.h Get version-related functions from crypto.h rather than ssl.h. 2015-05-20 22:58:14 +00:00
ossl_typ.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
pem.h Correct various documentation typos 2015-06-10 22:06:01 +00:00
pkcs7.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
pkcs8.h Eliminate unnecessary includes from low-level crypto modules. 2015-04-13 20:49:18 +00:00
pkcs12.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
poly1305.h Always write the Poly1305 tag to an aligned buffer. 2015-01-14 23:38:25 +00:00
pqueue.h Export pqueue functions. 2014-09-03 21:38:19 +00:00
rand.h Add RAND_set_urandom_fd. 2015-06-30 21:41:42 +00:00
rc4.h Fix up whitespace in headers for doc.go. 2015-04-08 17:32:55 -07:00
rsa.h Restore |RSA_generate_key()| from OpenSSL at b4f0d1a. 2015-06-23 21:37:49 +00:00
safestack.h Rename safe_stack.h to safestack.h. 2015-02-20 23:33:48 +00:00
sha.h Low-level hash 'final' functions cannot fail. 2015-06-01 22:14:01 +00:00
srtp.h Store SRTP_PROTECTION_PROFILES as const. 2015-01-14 22:10:08 +00:00
ssl2.h Rename ssl_locl.h to internal.h 2015-04-10 22:14:09 +00:00
ssl3.h Implement asynchronous private key operations for client auth. 2015-06-18 22:14:51 +00:00
ssl23.h Reformat SSL/TLS headers. 2015-01-26 20:23:09 +00:00
ssl.h Move the session ticket functions to ssl.h. 2015-06-25 22:40:38 +00:00
stack_macros.h Multi-prime RSA support. 2015-06-05 18:39:44 +00:00
stack.h Multi-prime RSA support. 2015-06-05 18:39:44 +00:00
thread.h Readd CRYPTO_{LOCK|UNLOCK|READ|WRITE}. 2015-05-27 15:48:29 -07:00
time_support.h Eliminate unnecessary includes from low-level crypto modules. 2015-04-13 20:49:18 +00:00
tls1.h Move the session ticket functions to ssl.h. 2015-06-25 22:40:38 +00:00
type_check.h Try to fix MSVC and __STDC_VERSION__ again. 2015-05-20 13:42:12 -07:00
x509_vfy.h Remove remaining calls to the old lock functions. 2015-05-20 19:18:13 +00:00
x509.h Restore |X509_REQ_print| and friends, from OpenSSL at ce7e647b. 2015-06-23 22:36:52 +00:00
x509v3.h Remove spurious declarations of |X509V3_EXT_conf| and friends. 2015-05-05 00:22:59 +00:00