I'm playing with google-authenticator libpam
https://code.google.com/p/google-authenticator/
It appears to be failing the "make test" on CentOS 5.9 32bit.
./pam_google_authenticator_unittest
Testing base32 encoding
Testing base32 decoding
Testing HMAC_SHA1
Loading PAM module
Running tests, querying for verification code
Testing failed login attempt
Testing required number of digits
Testing a blank response
Test handling of missing state files
Testing successful login
Testing WINDOW_SIZE option
Testing DISALLOW_REUSE option
Testing RATE_LIMIT option
Testing TIME_SKEW
pam_google_authenticator_unittest: pam_google_authenticator_unittest.c:137:
verify_prompts_shown: Assertion `num_prompts_shown ==
expected_prompts_shown' failed.
Invalid verification code
make: *** [test] Error 1
Playing with the code...
// Test TIME_SKEW option
puts("Testing TIME_SKEW");
for (int i = 0; i < 4; ++i) {
set_time((12000 + i)*30);
char buf[7];
response = buf;
sprintf(response, "%06d",
compute_code(binary_secret, binary_secret_len, 11000 + i));
assert(pam_sm_open_session(NULL, 0, targc, targv) = (i >= 2
? PAM_SUCCESS : PAM_SESSION_ERR));
verify_prompts_shown(expected_good_prompts_shown);
}
Up to here works fine...
set_time(12010 * 30);
char buf[7];
response = buf;
sprintf(response, "%06d", compute_code(binary_secret,
binary_secret_len, 11010));
assert(pam_sm_open_session(NULL, 0, 1,
(const char *[]){ "noskewadj", 0 }) =
PAM_SESSION_ERR);
verify_prompts_shown(0);
This is where it fails.
The same code works correctly without error on CentOS 6.4 64bit.
Has anyone else managed to pass the tests on 5.9 32bit?
--
rgds
Stephen