Hi All, OpenSSL 1.0.1e is not loading Intel's hardware random number generator. ENGINE_load_rdrand() silently fails:
/*** eng_rand.c ***/ void ENGINE_load_rdrand (void) { extern unsigned int OPENSSL_ia32cap_P[]; if (OPENSSL_ia32cap_P[1] & (1<<(62-32))) { ENGINE *toadd = ENGINE_rdrand(); if(!toadd) return; ENGINE_add(toadd); ENGINE_free(toadd); ERR_clear_error(); } } When I check capabilities: int rdrand = OPENSSL_ia32cap_P[1] & (1<<(62-32)); if(rdrand) fprintf(stdout, "rdrand is available\n"); else fprintf(stderr, "rdrand is not available\n"); I receive a message that rdrand is not available. OpenSSL Capable 1.0.1e was configured with hardware and engines: ./config fips -no-comp -no-dso -no-sslv2 -no-sslv3 --openssldir=/usr/local/ssl/darwin --with-fipsdir=/usr/local/ssl/darwin And the engine appears to be present: $ nm /usr/local/ssl/darwin/lib/libcrypto.a | egrep -i rdrand | sort -k 3 ... U _ENGINE_load_rdrand U _OPENSSL_ia32_rdrand /usr/local/ssl/darwin/lib/libcrypto.a(eng_rdrand.o): 0000000000000000 T _ENGINE_load_rdrand 0000000000000208 S _ENGINE_load_rdrand.eh 0000000000000270 T _OPENSSL_ia32_rdrand 000000000002ace0 T _fips_openssl_ia32_rdrand 00000000000000a0 t _rdrand_init 0000000000000230 s _rdrand_init.eh 0000000000000140 d _rdrand_meth The failure occurs with and without calling FIPS_mode_set(). Any ideas? Jeff ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager majord...@openssl.org