11 require_once
"Auth/OpenID/Extension.php";
13 define(
'Auth_OpenID_PAPE_NS_URI',
14 "http://specs.openid.net/extensions/pape/1.0");
16 define(
'PAPE_AUTH_MULTI_FACTOR_PHYSICAL',
17 'http://schemas.openid.net/pape/policies/2007/06/multi-factor-physical');
18 define(
'PAPE_AUTH_MULTI_FACTOR',
19 'http://schemas.openid.net/pape/policies/2007/06/multi-factor');
20 define(
'PAPE_AUTH_PHISHING_RESISTANT',
21 'http://schemas.openid.net/pape/policies/2007/06/phishing-resistant');
23 define(
'PAPE_TIME_VALIDATOR',
24 '/^[0-9]{4,4}-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]Z$/');
43 if ($preferred_auth_policies === null) {
44 $preferred_auth_policies = array();
47 $this->preferred_auth_policies = $preferred_auth_policies;
48 $this->max_auth_age = $max_auth_age;
62 if (!in_array($policy_uri, $this->preferred_auth_policies)) {
63 $this->preferred_auth_policies[] = $policy_uri;
70 'preferred_auth_policies' =>
71 implode(
' ', $this->preferred_auth_policies)
74 if ($this->max_auth_age !== null) {
75 $ns_args[
'max_auth_age'] = strval($this->max_auth_age);
90 if ($args === null || $args === array()) {
94 $obj->parseExtensionArgs($args);
108 $this->preferred_auth_policies = array();
112 foreach (explode(
' ', $policies_str) as $uri) {
113 if (!in_array($uri, $this->preferred_auth_policies)) {
114 $this->preferred_auth_policies[] = $uri;
121 if ($max_auth_age_str) {
124 $this->max_auth_age = null;
146 foreach ($supported_types as $st) {
147 if (in_array($st, $this->preferred_auth_policies)) {
165 $nist_auth_level=null)
167 if ($auth_policies) {
168 $this->auth_policies = $auth_policies;
170 $this->auth_policies = array();
173 $this->auth_time = $auth_time;
174 $this->nist_auth_level = $nist_auth_level;
189 if (!in_array($policy_uri, $this->auth_policies)) {
190 $this->auth_policies[] = $policy_uri;
211 if ($args === null || $args === array()) {
215 $result = $obj->parseExtensionArgs($args);
217 if ($result ===
false) {
240 if ($policies_str && $policies_str !=
"none") {
241 $this->auth_policies = explode(
" ", $policies_str);
245 if ($nist_level_str !== null) {
248 if ($nist_level ===
false) {
256 if (0 <= $nist_level && $nist_level < 5) {
257 $this->nist_auth_level = $nist_level;
258 }
else if ($strict) {
264 if ($auth_time !== null) {
266 $this->auth_time = $auth_time;
267 }
else if ($strict) {
276 if (count($this->auth_policies) > 0) {
277 $ns_args[
'auth_policies'] = implode(
' ', $this->auth_policies);
279 $ns_args[
'auth_policies'] =
'none';
282 if ($this->nist_auth_level !== null) {
283 if (!in_array($this->nist_auth_level, range(0, 4),
true)) {
286 $ns_args[
'nist_auth_level'] = strval($this->nist_auth_level);
289 if ($this->auth_time !== null) {
294 $ns_args[
'auth_time'] = $this->auth_time;