ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
Nonce.php File Reference

Go to the source code of this file.

Namespaces

 OpenID
 This module contains code for dealing with associations between consumers and servers.
 

Functions

 Auth_OpenID_splitNonce ($nonce_string)
 
 Auth_OpenID_checkTimestamp ($nonce_string, $allowed_skew=null, $now=null)
 
 Auth_OpenID_mkNonce ($when=null)
 

Variables

const Auth_OpenID_Nonce_CHRS "abcdefghijklmnopqrstuvwxyz" . "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
 Need CryptUtil to generate random strings. More...
 
global $Auth_OpenID_SKEW = 60 * 60 * 5
 
const Auth_OpenID_Nonce_REGEX '/(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)Z(.*)/'
 
const Auth_OpenID_Nonce_TIME_FMT '%Y-%m-%dT%H:%M:%SZ'
 

Function Documentation

◆ Auth_OpenID_checkTimestamp()

Auth_OpenID_checkTimestamp (   $nonce_string,
  $allowed_skew = null,
  $now = null 
)

Definition at line 57 of file Nonce.php.

References $Auth_OpenID_SKEW, and Auth_OpenID_splitNonce().

Referenced by Auth_OpenID_FileStore\clean().

62 {
63  // Is the timestamp that is part of the specified nonce string
64  // within the allowed clock-skew of the current time?
65  global $Auth_OpenID_SKEW;
66 
67  if ($allowed_skew === null) {
68  $allowed_skew = $Auth_OpenID_SKEW;
69  }
70 
71  $parts = Auth_OpenID_splitNonce($nonce_string);
72  if ($parts == null) {
73  return false;
74  }
75 
76  if ($now === null) {
77  $now = time();
78  }
79 
80  $stamp = $parts[0];
81 
82  // Time after which we should not use the nonce
83  $past = $now - $allowed_skew;
84 
85  // Time that is too far in the future for us to allow
86  $future = $now + $allowed_skew;
87 
88  // the stamp is not too far in the future and is not too far
89  // in the past
Auth_OpenID_splitNonce($nonce_string)
Definition: Nonce.php:30
global $Auth_OpenID_SKEW
Definition: Nonce.php:23
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Auth_OpenID_mkNonce()

Auth_OpenID_mkNonce (   $when = null)

Definition at line 91 of file Nonce.php.

References Auth_OpenID_Nonce_CHRS, Auth_OpenID_Nonce_TIME_FMT, and Auth_OpenID_CryptUtil\randomString().

Referenced by Auth_OpenID_CheckIDRequest\answer(), and Auth_OpenID_GenericConsumer\begin().

94 {
95  // Generate a nonce with the current timestamp
98  if ($when === null) {
99  // It's safe to call time() with no arguments; it returns a
100  // GMT unix timestamp on PHP 4 and PHP 5. gmmktime() with no
101  // args returns a local unix timestamp on PHP 4, so don't use
102  // that.
103  $when = time();
104  }
105  $time_str = gmstrftime(Auth_OpenID_Nonce_TIME_FMT, $when);
const Auth_OpenID_Nonce_CHRS
Need CryptUtil to generate random strings.
Definition: Nonce.php:17
static randomString($length, $population=null)
Produce a string of length random bytes, chosen from chrs.
Definition: CryptUtil.php:80
const Auth_OpenID_Nonce_TIME_FMT
Definition: Nonce.php:28
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Auth_OpenID_splitNonce()

Auth_OpenID_splitNonce (   $nonce_string)

Definition at line 30 of file Nonce.php.

Referenced by Auth_OpenID_GenericConsumer\_idResCheckNonce(), and Auth_OpenID_checkTimestamp().

30  :%M:%SZ');
31 
32 function Auth_OpenID_splitNonce($nonce_string)
33 {
34  // Extract a timestamp from the given nonce string
35  $result = preg_match(Auth_OpenID_Nonce_REGEX, $nonce_string, $matches);
36  if ($result != 1 || count($matches) != 8) {
37  return null;
38  }
39 
40  list($unused,
41  $tm_year,
42  $tm_mon,
43  $tm_mday,
44  $tm_hour,
45  $tm_min,
46  $tm_sec,
47  $uniquifier) = $matches;
48 
49  $timestamp =
50  @gmmktime($tm_hour, $tm_min, $tm_sec, $tm_mon, $tm_mday, $tm_year);
51 
52  if ($timestamp === false || $timestamp < 0) {
53  return null;
54  }
55 
+ Here is the caller graph for this function:

Variable Documentation

◆ $Auth_OpenID_SKEW

◆ Auth_OpenID_Nonce_CHRS

const Auth_OpenID_Nonce_CHRS "abcdefghijklmnopqrstuvwxyz" . "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"

Need CryptUtil to generate random strings.

This is the characters that the nonces are made from.

Definition at line 17 of file Nonce.php.

Referenced by Auth_OpenID_mkNonce().

◆ Auth_OpenID_Nonce_REGEX

const Auth_OpenID_Nonce_REGEX '/(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)Z(.*)/'

Definition at line 26 of file Nonce.php.

◆ Auth_OpenID_Nonce_TIME_FMT

const Auth_OpenID_Nonce_TIME_FMT '%Y-%m-%dT%H:%M:%SZ'

Definition at line 28 of file Nonce.php.

Referenced by Auth_OpenID_mkNonce().