forked from duosecurity/duo_php
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.php
More file actions
52 lines (34 loc) · 1.83 KB
/
test.php
File metadata and controls
52 lines (34 loc) · 1.83 KB
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
<?php
require_once("duo_web.php");
const IKEY = "DIXXXXXXXXXXXXXXXXXX";
const SKEY = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef";
const AKEY = "useacustomerprovidedapplicationsecretkey";
const USER = "testuser";
const INVALID_RESPONSE = "AUTH|INVALID|SIG";
const EXPIRED_RESPONSE = "AUTH|dGVzdHVzZXJ8RElYWFhYWFhYWFhYWFhYWFhYWFh8MTMwMDE1Nzg3NA==|cb8f4d60ec7c261394cd5ee5a17e46ca7440d702";
const FUTURE_RESPONSE = "AUTH|dGVzdHVzZXJ8RElYWFhYWFhYWFhYWFhYWFhYWFh8MTYxNTcyNzI0Mw==|d20ad0d1e62d84b00a3e74ec201a5917e77b6aef";
/************************************************************/
$request_sig = Duo::signRequest(IKEY, SKEY, AKEY, USER);
assert($request_sig != null);
$request_sig = Duo::signRequest(IKEY, SKEY, AKEY, "");
assert($request_sig == Duo::ERR_USER);
$request_sig = Duo::signRequest("invalid", SKEY, AKEY, USER);
assert($request_sig == Duo::ERR_IKEY);
$request_sig = Duo::signRequest(IKEY, "invalid", AKEY, USER);
assert($request_sig == Duo::ERR_SKEY);
$request_sig = Duo::signRequest(IKEY, SKEY, "invalid", USER);
assert($request_sig == Duo::ERR_AKEY);
/************************************************************/
$request_sig = Duo::signRequest(IKEY, SKEY, AKEY, USER);
list($duo_sig, $valid_app_sig) = explode(':', $request_sig);
$request_sig = Duo::signRequest(IKEY, SKEY, "invalidinvalidinvalidinvalidinvalidinvalid", USER);
list($duo_sig, $invalid_app_sig) = explode(':', $request_sig);
$user = Duo::verifyResponse(IKEY, SKEY, AKEY, INVALID_RESPONSE . ":" . $valid_app_sig);
assert($user == null);
$user = Duo::verifyResponse(IKEY, SKEY, AKEY, EXPIRED_RESPONSE . ":" . $valid_app_sig);
assert($user == null);
$user = Duo::verifyResponse(IKEY, SKEY, AKEY, FUTURE_RESPONSE . ":" . $invalid_app_sig);
assert($user == null);
$user = Duo::verifyResponse(IKEY, SKEY, AKEY, FUTURE_RESPONSE . ":" . $valid_app_sig);
assert($user == USER);
?>