// a seemingly innocent password-checker // (assuming ans is hidden and ans has len 8) int check(char * guess, char * ans) { int i=0; for(; i < 8; ++i) if(guess[i] != ans[i]) return 0; return 1; } // if can only check answers, exhaustive search // required. // but if can see timing, linear time // easy to get "timing" if you can get guess[i] to // seg-fault for some i! // better: int check2(char * guess, char * ans) { int i=0; int result = 0; for(; i < 8; ++i) if(guess[i] != ans[i]) result=1; return result; }