X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/5c19dc3ae3bd8e40a9c028b0deddd50ff337692c..90dc47c27df1983f6ebc252b0c4b94c8718fe52d:/OSX/libsecurity_cryptkit/lib/platform.c diff --git a/OSX/libsecurity_cryptkit/lib/platform.c b/OSX/libsecurity_cryptkit/lib/platform.c index fa6c1b2e..30480d86 100644 --- a/OSX/libsecurity_cryptkit/lib/platform.c +++ b/OSX/libsecurity_cryptkit/lib/platform.c @@ -19,6 +19,7 @@ #include "platform.h" #include #include "feeDebug.h" + #ifdef NeXT /* @@ -28,140 +29,43 @@ void CKRaise(const char *reason) { #if FEE_DEBUG printf("CryptKit fatal error: %s\n", reason); #endif - exit(1); -} - -#import "feeDebug.h" - -#if !defined(NeXT_PDO) && FEE_DEBUG - -/* - * Mach, private build. use quick microsecond-accurate system clock. - */ - -#include - -unsigned createRandomSeed() -{ - struct tsval tsp; - - (void)kern_timestamp(&tsp); - return tsp.low_val; + abort(); } -#else - -/* - * OpenStep, normal case. - */ -#include -#include - -extern int getpid(); - -unsigned createRandomSeed(void) -{ - time_t curTime; - unsigned thisPid; - - time(&curTime); - thisPid = (unsigned)getpid(); - - return (unsigned)curTime ^ (unsigned)thisPid; -} - -#endif /* FEE_DEBUG */ - #elif WIN32 /* * OpenStep on Windows. */ -#include /* for _getpid() */ void CKRaise(const char *reason) { #if FEE_DEBUG printf("CryptKit fatal error: %s\n", reason); #endif - exit(1); -} - -extern void time(unsigned *tp); - -unsigned createRandomSeed() -{ - unsigned curTime; - unsigned thisPid; - - time(&curTime); - thisPid = _getpid(); - return (unsigned)curTime ^ (unsigned)thisPid; + abort(); } - #elif __MAC_BUILD__ /* * Macintosh, all flavors. */ #include -#include +#include void CKRaise(const char *reason) { #if FEE_DEBUG printf("CryptKit fatal error: %s\n", reason); #endif - exit(1); -} - -/* for X, this isn't used except for testing when SecurityServer when - * Yarrow is not running. So let's strip it down so we don't have - * to link against CarbonCore. - */ -#define BARE_BONES_SEED 1 -#if BARE_BONES_SEED - -#include - -extern int getpid(); - -unsigned createRandomSeed() -{ - time_t curTime; - unsigned thisPid; - - time(&curTime); - thisPid = (unsigned)getpid(); - - return (unsigned)curTime ^ (unsigned)thisPid; + char * msg = NULL; + if(asprintf(&msg, "CryptKit fatal error: %s", reason)) { + CRSetCrashLogMessage(msg); + } else { + CRSetCrashLogMessage("CryptKit fatal error"); + } + abort(); } -#else /* BARE_BONES_SEED */ - -#include -#include - -// this is mighty pitiful anyway... -unsigned createRandomSeed() -{ - UnsignedWide curTime; - //unsigned ticks; /* use 16 bits */ - unsigned rtnHi; - unsigned rtnLo; - - /* FIXME - need a way to distinguish OS9x from Carbon. Carbon - * doesn't have LMGetTicks(). */ - - Microseconds(&curTime); /* low 16 bits are pretty good */ - - // Carbon hack - // rtnHi = LMGetTicks(); - rtnHi = 0x5a5aa5a5; - rtnLo = curTime.lo & 0xffff; - return (rtnHi ^ rtnLo); -} -#endif /* BARE_BONES_SEED */ - #elif unix /* try for generic UNIX */ @@ -170,26 +74,9 @@ void CKRaise(const char *reason) { #if FEE_DEBUG printf("CryptKit fatal error: %s\n", reason); #endif - exit(1); + abort(); } -#include -#include - -extern int getpid(); - -unsigned createRandomSeed() -{ - time_t curTime; - unsigned thisPid; - - time(&curTime); - thisPid = (unsigned)getpid(); - - return (unsigned)curTime ^ (unsigned)thisPid; -} - - #else #error platform-specific work needed in security_cryptkit/platform.c