Zend Framework  1.12
Static Public Member Functions | Public Attributes | Static Public Attributes | Static Protected Member Functions | List of all members
Zend_OpenId Class Reference

Static Public Member Functions

static setSelfUrl ($selfUrl=null)
 Sets alternative request URL that can be used to override the default selfUrl() response.
 
static selfUrl ()
 Returns a full URL that was requested on current HTTP request.
 
static absoluteUrl ($url)
 Returns an absolute URL for the given one.
 
static paramsToQuery ($params)
 Converts variable/value pairs into URL encoded query string.
 
static normalizeUrl (&$id)
 Normalizes URL according to RFC 3986 to use it in comparison operations.
 
static normalize (&$id)
 Normalizes OpenID identifier that can be URL or XRI name.
 
static redirect ($url, $params=null, Zend_Controller_Response_Abstract $response=null, $method= 'GET')
 Performs a HTTP redirection to specified URL with additional data.
 
static randomBytes ($len)
 Produces string of random byte of given length.
 
static digest ($func, $data)
 Generates a hash value (message digest) according to given algorithm.
 
static hashHmac ($macFunc, $data, $secret)
 Generates a keyed hash value using the HMAC method.
 
static createDhKey ($p, $g, $priv_key=null)
 Performs the first step of a Diffie-Hellman key exchange by generating private and public DH values based on given prime number $p and generator $g.
 
static getDhKeyDetails ($dh)
 Returns an associative array with Diffie-Hellman key components in binary representation.
 
static computeDhSecret ($pub_key, $dh)
 Computes the shared secret from the private DH value $dh and the other party's public value in $pub_key.
 
static btwoc ($str)
 Takes an arbitrary precision integer and returns its shortest big-endian two's complement representation.
 
static strlen ($str)
 Returns lenght of binary string in bytes.
 

Public Attributes

const DH_P = 'dcf93a0b883972ec0e19989ac5a2ce310e1d37717e8d9571bb7623731866e61ef75a2e27898b057f9891c2e27a639c3f29b60814581cd3b2ca3986d2683705577d45c2e7e52dc81c7a171876e5cea74b1448bfdfaf18828efd2519f14e45e3826634af1949e5b535cc829a483b8a76223e5d490a257f05bdff16f2fb22c583ab'
 Default Diffie-Hellman key generator (1024 bit)
 
const DH_G = '02'
 Default Diffie-Hellman prime number (should be 2 or 5)
 
const NS_2_0 = 'http://specs.openid.net/auth/2.0'
 OpenID 2.0 namespace.
 

Static Public Attributes

static $exitOnRedirect = true
 Allows enable/disable stoping execution of PHP script after redirect()
 
static $selfUrl = null
 Alternative request URL that can be used to override the default selfUrl() response.
 

Static Protected Member Functions

static binToBigNum ($bin)
 Converts binary representation into ext/gmp or ext/bcmath big integer representation.
 
static bigNumToBin ($bn)
 Converts internal ext/gmp or ext/bcmath big integer representation into binary string.
 

Member Function Documentation

static absoluteUrl (   $url)
static

Returns an absolute URL for the given one.

Parameters
string$urlabsilute or relative URL
Returns
string
static bigNumToBin (   $bn)
staticprotected

Converts internal ext/gmp or ext/bcmath big integer representation into binary string.

Parameters
mixed$bnbig number
Returns
string
Exceptions
Zend_OpenId_Exception
static binToBigNum (   $bin)
staticprotected

Converts binary representation into ext/gmp or ext/bcmath big integer representation.

Parameters
string$binbinary representation of big number
Returns
mixed
Exceptions
Zend_OpenId_Exception
static btwoc (   $str)
static

Takes an arbitrary precision integer and returns its shortest big-endian two's complement representation.

Arbitrary precision integers MUST be encoded as big-endian signed two's complement binary strings. Henceforth, "btwoc" is a function that takes an arbitrary precision integer and returns its shortest big-endian two's complement representation. All integers that are used with Diffie-Hellman Key Exchange are positive. This means that the left-most bit of the two's complement representation MUST be zero. If it is not, implementations MUST add a zero byte at the front of the string.

Parameters
string$strbinary representation of arbitrary precision integer
Returns
string big-endian signed representation
static computeDhSecret (   $pub_key,
  $dh 
)
static

Computes the shared secret from the private DH value $dh and the other party's public value in $pub_key.

Parameters
string$pub_keyother party's public value
mixed$dhDiffie-Hellman key
Returns
string
Exceptions
Zend_OpenId_Exception
static createDhKey (   $p,
  $g,
  $priv_key = null 
)
static

Performs the first step of a Diffie-Hellman key exchange by generating private and public DH values based on given prime number $p and generator $g.

Both sides of key exchange MUST have the same prime number and generator. In this case they will able to create a random shared secret that is never send from one to the other.

Parameters
string$pprime number in binary representation
string$ggenerator in binary representation
string$priv_keyprivate key in binary representation
Returns
mixed
static digest (   $func,
  $data 
)
static

Generates a hash value (message digest) according to given algorithm.

It returns RAW binary string.

This is a wrapper function that uses one of available internal function dependent on given PHP configuration. It may use various functions from ext/openssl, ext/hash, ext/mhash or ext/standard.

Parameters
string$funcdigest algorithm
string$datadata to sign
Returns
string RAW digital signature
Exceptions
Zend_OpenId_Exception
static getDhKeyDetails (   $dh)
static

Returns an associative array with Diffie-Hellman key components in binary representation.

The array includes original prime number 'p' and generator 'g', random private key 'priv_key' and corresponding public key 'pub_key'.

Parameters
mixed$dhDiffie-Hellman key
Returns
array
static hashHmac (   $macFunc,
  $data,
  $secret 
)
static

Generates a keyed hash value using the HMAC method.

It uses ext/hash if available or user-level PHP implementation, that is not significantly slower.

Parameters
string$macFuncname of selected hashing algorithm (sha1, sha256)
string$datadata to sign
string$secretshared secret key used for generating the HMAC variant of the message digest
Returns
string RAW HMAC value
static normalize ( $id)
static

Normalizes OpenID identifier that can be URL or XRI name.

Returns true on success and false of failure.

Normalization is performed according to the following rules: 1. If the user's input starts with one of the "xri://", "xri://$ip*", or "xri://$dns*" prefixes, they MUST be stripped off, so that XRIs are used in the canonical form, and URI-authority XRIs are further considered URL identifiers. 2. If the first character of the resulting string is an XRI Global Context Symbol ("=", "@", "+", "$", "!"), then the input SHOULD be treated as an XRI. 3. Otherwise, the input SHOULD be treated as an http URL; if it does not include a "http" or "https" scheme, the Identifier MUST be prefixed with the string "http://". 4. URL identifiers MUST then be further normalized by both following redirects when retrieving their content and finally applying the rules in Section 6 of [RFC3986] to the final destination URL.

Parameters
string&$ididentifier to be normalized
Returns
bool
static normalizeUrl ( $id)
static

Normalizes URL according to RFC 3986 to use it in comparison operations.

The function gets URL argument by reference and modifies it. It returns true on success and false of failure.

Parameters
string&$idurl to be normalized
Returns
bool
static paramsToQuery (   $params)
static

Converts variable/value pairs into URL encoded query string.

Parameters
array$paramsvariable/value pairs
Returns
string URL encoded query string
static randomBytes (   $len)
static

Produces string of random byte of given length.

Parameters
integer$lenlength of requested string
Returns
string RAW random binary string
static redirect (   $url,
  $params = null,
Zend_Controller_Response_Abstract  $response = null,
  $method = 'GET' 
)
static

Performs a HTTP redirection to specified URL with additional data.

It may generate redirected request using GET or POST HTTP method. The function never returns.

Parameters
string$urlURL to redirect to
array$paramsadditional variable/value pairs to send
Zend_Controller_Response_Abstract$response
string$methodredirection method ('GET' or 'POST')
static selfUrl ( )
static

Returns a full URL that was requested on current HTTP request.

Returns
string
static setSelfUrl (   $selfUrl = null)
static

Sets alternative request URL that can be used to override the default selfUrl() response.

Parameters
string$selfUrlthe URL to be set
Returns
string the old value of overriding URL
static strlen (   $str)
static

Returns lenght of binary string in bytes.

Parameters
string$str
Returns
int the string lenght

Member Data Documentation

$exitOnRedirect = true
static

Allows enable/disable stoping execution of PHP script after redirect()

$selfUrl = null
static

Alternative request URL that can be used to override the default selfUrl() response.

const DH_G = '02'

Default Diffie-Hellman prime number (should be 2 or 5)

const DH_P = 'dcf93a0b883972ec0e19989ac5a2ce310e1d37717e8d9571bb7623731866e61ef75a2e27898b057f9891c2e27a639c3f29b60814581cd3b2ca3986d2683705577d45c2e7e52dc81c7a171876e5cea74b1448bfdfaf18828efd2519f14e45e3826634af1949e5b535cc829a483b8a76223e5d490a257f05bdff16f2fb22c583ab'

Default Diffie-Hellman key generator (1024 bit)

const NS_2_0 = 'http://specs.openid.net/auth/2.0'

OpenID 2.0 namespace.

All OpenID 2.0 messages MUST contain variable openid.ns with its value.