This repository has been archived by the owner on Mar 6, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.php
78 lines (68 loc) · 2.92 KB
/
test.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
/*
* enable error display
* set in php.ini zend.assertions = 1
*/
declare(strict_types=1);
ini_set("display_errors", "On");
ini_set("error_reporting", "E_ALL");
error_reporting(E_ALL);
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);
/* assert handler */
function assertHandler($file, $line, $code) {
echo "<b>Test failed</b>: Line '$line'<br>";
}
assert_options(ASSERT_CALLBACK, "assertHandler");
/* import lib */
require_once("simpleotp.php");
/* test GoogleAuth HOTP */
$otp = new SimpleHOTP("GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ");
assert($otp->getToken(0) === "755224");
assert($otp->getToken() === "755224");
assert($otp->getToken(1) === "287082");
assert($otp->getToken() === "287082");
assert($otp->getToken(2) === "359152");
assert($otp->getToken() === "359152");
assert($otp->getToken(3) === "969429");
assert($otp->getToken() === "969429");
assert($otp->getToken(4) === "338314");
assert($otp->getToken() === "338314");
assert($otp->getToken(5) === "254676");
assert($otp->getToken() === "254676");
assert($otp->getToken(6) === "287922");
assert($otp->getToken() === "287922");
assert($otp->getToken(9) === "520489");
assert($otp->getToken() === "162583");
/* test verify function */
assert($otp->verify("520489", 0, 9) === true);
assert($otp->verify("969429", 0, 3) === true);
assert($otp->verify("969429", 0, 2) === false);
assert($otp->verify("969429", 1, 2) === true);
/* test GoogleAuth TOTP */
$otp = new SimpleTOTP("GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ");
assert($otp->getToken(1111111111, false) === "050471");
assert($otp->getToken(1234567890, false) === "005924");
assert($otp->getToken(2000000000, false) === "279037");
/* test verify function */
assert($otp->verify("050471", 0, 1111111111, false) === true);
assert($otp->verify("005924", 0, 1234567890, false) === true);
assert($otp->verify("279037", 0, 2000000030, false) === false);
assert($otp->verify("279037", 1, 2000000030, false) === true);
/* test sha256 and 8 digit tan */
$otp = new SimpleTOTP("12345678901234567890123456789012", false, 30, 8, "sha256");
assert($otp->getToken(1111111109, false) === "68084774");
assert($otp->getToken(1111111111, false) === "67062674");
assert($otp->getToken(1234567890, false) === "91819424");
/* test sha512 and 8 digit tan */
$otp = new SimpleTOTP("1234567890123456789012345678901234567890123456789012345678901234", false, 30, 8, "sha512");
assert($otp->getToken(59, false) === "90693936");
assert($otp->getToken(1234567890, false) === "93441116");
/* generate new secret */
echo "Test new secret:<br>";
echo SimpleOTP::generateSecretKey();
/* assertion test */
echo "<br><br>Assertion test to see if system works: ";
assert(false);
?>