/* Provide output */ prng_error_status prngOutput(PRNG *p, BYTE *outbuf,UINT outbuflen) { UINT i; GEN_CTX *ctx = &p->outstate; CHECKSTATE(p); GENCHECK(p); PCHECK(outbuf); chASSERT(BACKTRACKLIMIT > 0); for(i=0;i<outbuflen;i++,ctx->index++,ctx->numout++) { /* Check backtracklimit */ if(ctx->numout > BACKTRACKLIMIT) { prng_do_SHA1(ctx); prng_make_new_state(ctx, ctx->out); } /* Check position in IV */ if(ctx->index>=20) { prng_do_SHA1(ctx); } /* Output data */ outbuf[i] = (ctx->out)[ctx->index]; } return PRNG_SUCCESS; }
void KeyPlayer::get_name(std::vector<std::string> &controls, const PlayerState &state) const { CHECKSTATE(left, _left); CHECKSTATE(right, _right); CHECKSTATE(up, _up); CHECKSTATE(down, _down); CHECKSTATE(fire, _fire); CHECKSTATE(alt_fire, _alt_fire); CHECKSTATE(leave, leave); CHECKSTATE(hint_control, _hint_control); }
// Do main dialog, return TRUE if canceled BOOL DoMainDialog(BOOL &optionPlaceStructs, BOOL &optionProcessStatic, BOOL &optionOverwriteComments, BOOL &optionAudioOnDone, BOOL &optionClean, BOOL &optionFullClear) { MainDialog dlg = MainDialog(optionPlaceStructs, optionProcessStatic, optionOverwriteComments, optionAudioOnDone, optionClean, optionFullClear); if (dlg.exec()) { #define CHECKSTATE(obj,var) var = dlg.obj->isChecked() CHECKSTATE(checkBox1, optionPlaceStructs); CHECKSTATE(checkBox2, optionProcessStatic); CHECKSTATE(checkBox3, optionOverwriteComments); CHECKSTATE(checkBox4, optionAudioOnDone); CHECKSTATE(checkBox5, optionClean); CHECKSTATE(checkBox6, optionFullClear); #undef CHECKSTATE return(FALSE); } return(TRUE); }
/* Should this be public? */ prng_error_status prngForceReseed(PRNG *p, LONGLONG ticks) { int i; #ifdef WIN_NT FILETIME a,b,c,usertime; #endif BYTE buf[64]; BYTE dig[20]; #if defined(macintosh) || defined(__APPLE__) #if (defined(TARGET_API_MAC_OSX) || defined(KERNEL_BUILD)) struct timeval tv; int64_t endTime, curTime; #else /* TARGET_API_MAC_CARBON */ UnsignedWide uwide; /* struct needed for Microseconds() */ LONGLONG start; LONGLONG now; #endif #endif CHECKSTATE(p); POOLCHECK(p); ZCHECK(ticks); /* Set up start and end times */ #if defined(macintosh) || defined(__APPLE__) #if (defined(TARGET_API_MAC_OSX) || defined(KERNEL_BUILD)) /* note we can't loop for more than a million microseconds */ #ifdef KERNEL_BUILD microuptime (&tv); #else gettimeofday(&tv, NULL); #endif endTime = (int64_t)tv.tv_sec*1000000LL + (int64_t)tv.tv_usec + ticks; #else /* TARGET_API_MAC_OSX */ Microseconds(&uwide); start = UnsignedWideToUInt64(uwide); #endif /* TARGET_API_xxx */ #endif /* macintosh */ do { /* Do a couple of iterations between time checks */ prngOutput(p, buf,64); YSHA1Update(&p->pool,buf,64); prngOutput(p, buf,64); YSHA1Update(&p->pool,buf,64); prngOutput(p, buf,64); YSHA1Update(&p->pool,buf,64); prngOutput(p, buf,64); YSHA1Update(&p->pool,buf,64); prngOutput(p, buf,64); YSHA1Update(&p->pool,buf,64); #if defined(macintosh) || defined(__APPLE__) #if defined(TARGET_API_MAC_OSX) || defined(KERNEL_BUILD) #ifdef TARGET_API_MAC_OSX gettimeofday(&tv, NULL); #else microuptime (&tv); curTime = (int64_t)tv.tv_sec*1000000LL + (int64_t)tv.tv_usec; #endif } while(curTime < endTime); #else Microseconds(&uwide); now = UnsignedWideToUInt64(uwide); } while ( (now-start) < ticks) ;