OpenId.php

Show: PublicProtectedPrivateinherited
Table of Contents
Zend Framework
LICENSE This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to license@zend.com so we can send you a copy immediately.
Category
Zend  
Copyright
Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  
Package
Zend_OpenId  
Version
$Id$  

\Zend_OpenId

Package: Zend_OpenId
Static class that contains common utility functions for {@link Zend_OpenId_Consumer} and {@link Zend_OpenId_Provider}.
This class implements common utility functions that are used by both Consumer and Provider. They include functions for Diffie-Hellman keys generation and exchange, URL normalization, HTTP redirection and some others.
Category
Zend  
Copyright
Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)  
License
New BSD License  

Constants

>VConstant  DH_P = 'dcf93a0b883972ec0e19989ac5a2ce310e1d37717e8d9571bb7623731866e61ef75a2e27898b057f9891c2e27a639c3f29b60814581cd3b2ca3986d2683705577d45c2e7e52dc81c7a171876e5cea74b1448bfdfaf18828efd2519f14e45e3826634af1949e5b535cc829a483b8a76223e5d490a257f05bdff16f2fb22c583ab'
Default Diffie-Hellman key generator (1024 bit)
>VConstant  DH_G = '02'
Default Diffie-Hellman prime number (should be 2 or 5)
>VConstant  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.

Properties

>VPropertypublic$exitOnRedirect = true
static
Allows enable/disable stoping execution of PHP script after redirect()
Default valuetrueDetails
Type
n/a
>VPropertypublic$selfUrl = null
static
Alternative request URL that can be used to override the default selfUrl() response
Default valuenullDetails
Type
n/a

Methods

methodpublicabsoluteUrl(string $url) : string
static

Returns an absolute URL for the given one

Parameters
NameTypeDescription
$urlstring

absilute or relative URL

Returns
TypeDescription
string
methodprotectedbigNumToBin(mixed $bn) : string
static

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

Parameters
NameTypeDescription
$bnmixed

big number

Returns
TypeDescription
string
Throws
ExceptionDescription
\Zend_OpenId_Exception
methodprotectedbinToBigNum(string $bin) : mixed
static

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

Parameters
NameTypeDescription
$binstring

binary representation of big number

Returns
TypeDescription
mixed
Throws
ExceptionDescription
\Zend_OpenId_Exception
methodpublicbtwoc(string $str) : string
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
NameTypeDescription
$strstring

binary representation of arbitrary precision integer

Returns
TypeDescription
stringbig-endian signed representation
methodpubliccomputeDhSecret(string $pub_key, mixed $dh) : string
static

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

Parameters
NameTypeDescription
$pub_keystring

other party's public value

$dhmixed

Diffie-Hellman key

Returns
TypeDescription
string
Throws
ExceptionDescription
\Zend_OpenId_Exception
methodpubliccreateDhKey(string $p, string $g, string $priv_key = null) : mixed
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
NameTypeDescription
$pstring

prime number in binary representation

$gstring

generator in binary representation

$priv_keystring

private key in binary representation

Returns
TypeDescription
mixed
methodpublicdigest(string $func, string $data) : string
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
NameTypeDescription
$funcstring

digest algorithm

$datastring

data to sign

Returns
TypeDescription
stringRAW digital signature
Throws
ExceptionDescription
\Zend_OpenId_Exception
methodpublicgetDhKeyDetails(mixed $dh) : array
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
NameTypeDescription
$dhmixed

Diffie-Hellman key

Returns
TypeDescription
array
methodpublichashHmac(string $macFunc, string $data, string $secret) : string
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
NameTypeDescription
$macFuncstring

name of selected hashing algorithm (sha1, sha256)

$datastring

data to sign

$secretstring

shared secret key used for generating the HMAC variant of the message digest

Returns
TypeDescription
stringRAW HMAC value
methodpublicnormalize( $id) : bool
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
NameTypeDescription
$id
Returns
TypeDescription
bool
methodpublicnormalizeUrl( $id) : bool
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
NameTypeDescription
$id
Returns
TypeDescription
bool
methodpublicparamsToQuery(array $params) : string
static

Converts variable/value pairs into URL encoded query string

Parameters
NameTypeDescription
$paramsarray

variable/value pairs

Returns
TypeDescription
stringURL encoded query string
methodpublicrandomBytes(integer $len) : string
static

Produces string of random byte of given length.

Parameters
NameTypeDescription
$leninteger

length of requested string

Returns
TypeDescription
stringRAW random binary string
methodpublicredirect(string $url, array $params = null, \Zend_Controller_Response_Abstract $response = null, string $method = 'GET') : void
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
NameTypeDescription
$urlstring

URL to redirect to

$paramsarray

additional variable/value pairs to send

$response\Zend_Controller_Response_Abstract
$methodstring

redirection method ('GET' or 'POST')

methodpublicselfUrl() : string
static

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

Returns
TypeDescription
string
methodpublicsetSelfUrl(string $selfUrl = null) : string
static

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

Parameters
NameTypeDescription
$selfUrlstring

the URL to be set

Returns
TypeDescription
stringthe old value of overriding URL
methodpublicstrlen(string $str) : int
static

Returns lenght of binary string in bytes

Parameters
NameTypeDescription
$strstring
Returns
TypeDescription
intthe string lenght
Documentation was generated by phpDocumentor 2.2.0 .