diff options
author | Andy Polyakov <appro@openssl.org> | 2000-02-29 15:18:46 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2000-02-29 15:18:46 +0000 |
commit | 0ea346557670b5aa598c06b50923458f131a5709 (patch) | |
tree | 86a5bc6c025db4266b4961948d33a77ab0b2c33e /MacOS/GetHTTPS.src | |
parent | 96723a3a68657ee94a1a16bef1900549c4d57e1d (diff) |
MacOS pseudo-random entropy collector.
Submitted by: Yoram Meroz <yoram@mail.idrive.com>
Reviewed by: <appro>
Diffstat (limited to 'MacOS/GetHTTPS.src')
-rw-r--r-- | MacOS/GetHTTPS.src/GetHTTPS.cpp | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/MacOS/GetHTTPS.src/GetHTTPS.cpp b/MacOS/GetHTTPS.src/GetHTTPS.cpp index ed8e1cc962..d62dc50473 100644 --- a/MacOS/GetHTTPS.src/GetHTTPS.cpp +++ b/MacOS/GetHTTPS.src/GetHTTPS.cpp @@ -19,6 +19,7 @@ * are installed! Use the AppleScript applet in the "openssl-0.9.4" folder to do this! */ /* modified to seed the PRNG */ +/* modified to use CRandomizer for seeding */ // Include some funky libs I've developed over time @@ -26,14 +27,13 @@ #include "CPStringUtils.hpp" #include "ErrorHandling.hpp" #include "MacSocket.h" - +#include "Randomizer.h" // We use the OpenSSL implementation of SSL.... // This was a lot of work to finally get going, though you wouldn't know it by the results! #include <openssl/ssl.h> #include <openssl/err.h> -#include <openssl/rand.h> #include <timer.h> @@ -48,10 +48,6 @@ OSErr MyMacSocket_IdleWaitCallback(void *inUserRefPtr); - - - - // My idle-wait callback. Doesn't do much, does it? Silly cooperative multitasking. OSErr MyMacSocket_IdleWaitCallback(void *inUserRefPtr) @@ -59,31 +55,33 @@ OSErr MyMacSocket_IdleWaitCallback(void *inUserRefPtr) #pragma unused(inUserRefPtr) EventRecord theEvent; - ::EventAvail(everyEvent,&theEvent); + + CRandomizer *randomizer = (CRandomizer*)inUserRefPtr; + if (randomizer) + randomizer->PeriodicAction(); return(noErr); } - // Finally! void main(void) { -OSErr errCode; -int theSocket = -1; -int theTimeout = 30; + OSErr errCode; + int theSocket = -1; + int theTimeout = 30; -SSL_CTX *ssl_ctx = nil; -SSL *ssl = nil; + SSL_CTX *ssl_ctx = nil; + SSL *ssl = nil; -char tempString[256]; -UnsignedWide microTickCount; - -#warning -- USE A TRUE RANDOM SEED, AND ADD ENTROPY WHENEVER POSSIBLE. -- -const char seed[] = "uyq9,7-b(VHGT^%$&^F/,876;,;./lkJHGFUY{PO*"; // Just gobbledygook + char tempString[256]; + UnsignedWide microTickCount; + + CRandomizer randomizer; + printf("OpenSSL Demo by Roy Wood, roy@centricsystems.ca\n\n"); BailIfError(errCode = MacSocket_Startup()); @@ -92,7 +90,7 @@ const char seed[] = "uyq9,7-b(VHGT^%$&^F/,876;,;./lkJHGFUY{PO*"; // Just gobbled // Create a socket-like object - BailIfError(errCode = MacSocket_socket(&theSocket,false,theTimeout * 60,MyMacSocket_IdleWaitCallback,nil)); + BailIfError(errCode = MacSocket_socket(&theSocket,false,theTimeout * 60,MyMacSocket_IdleWaitCallback,&randomizer)); // Set up the connect string and try to connect @@ -118,10 +116,6 @@ const char seed[] = "uyq9,7-b(VHGT^%$&^F/,876;,;./lkJHGFUY{PO*"; // Just gobbled // ssl_ctx = SSL_CTX_new(SSLv3_client_method()); - RAND_seed (seed, sizeof (seed)); - Microseconds (µTickCount); - RAND_add (µTickCount, sizeof (microTickCount), 0); // Entropy is actually > 0, needs an estimate - // Create an SSL thingey and try to negotiate the connection ssl = SSL_new(ssl_ctx); |