Crypt/DiffieHellman.php
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
[email protected] 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_Crypt
- Subpackage
- DiffieHellman
- Version
- $Id$
\Zend_Crypt_DiffieHellman
Package: Zend_CryptPHP implementation of the Diffie-Hellman public key encryption algorithm.
Allows two unassociated parties to establish a joint shared secret key
to be used in encrypting subsequent communications.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Constants
Properties
string $_generator = null
The default generator number. This number must be greater than 0 but
less than the prime number set.
Default valuenull
Details- Type
- string
string $_prime = null
Default large prime number; required by the algorithm.
Default valuenull
Details- Type
- string
string $_privateKey = null
A private number set by the local user. It's optional and will
be generated if not set.
Default valuenull
Details- Type
- string
string $_publicKey = null
The public key generated by this instance after calling generateKeys().
Default valuenull
Details- Type
- string
string $_secretKey = null
The shared secret key resulting from a completed Diffie Hellman
exchange
Default valuenull
Details- Type
- string
boolean $useOpenssl = true
staticStatic flag to select whether to use PHP5.3's openssl extension
if available.
Default valuetrue
Details- Type
- boolean
Methods
__construct(string $prime, string $generator, string $privateKey = null, string $privateKeyType = self::NUMBER) : void
Constructor; if set construct the object using the parameter array to
set values for Prime, Generator and Private.
If a Private Key is not set, one will be generated at random.
ParametersName | Type | Description |
---|
$prime | string | |
---|
$generator | string | |
---|
$privateKey | string | |
---|
$privateKeyType | string | |
---|
computeSecretKey(string $publicKey, string $type = self::NUMBER, $output = self::NUMBER) : mixed
Compute the shared secret key based on the public key received from the
the second party to this transaction. This should agree to the secret
key the second party computes on our own public key.
Once in agreement, the key is known to only to both parties.
By default, the function expects the public key to be in binary form
which is the typical format when being transmitted.
If you need the binary form of the shared secret key, call
getSharedSecretKey() with the optional parameter for Binary output.
ParametersName | Type | Description |
---|
$publicKey | string | |
---|
$type | string | |
---|
$output | | |
---|
ReturnsgetPrivateKey(string $type = self::NUMBER) : string
Getter for the value of the private number
ParametersName | Type | Description |
---|
$type | string | |
---|
Returns getPublicKey(string $type = self::NUMBER) : string
Returns own public key for communication to the second party to this
transaction.
ParametersName | Type | Description |
---|
$type | string | |
---|
Returns getSharedSecretKey(string $type = self::NUMBER) : string
Return the computed shared secret key from the DiffieHellman transaction
ParametersName | Type | Description |
---|
$type | string | |
---|
Returns setBigIntegerMath(string $extension = null) : void
Setter to pass an extension parameter which is used to create
a specific BigInteger instance for a specific extension type.
Allows manual setting of the class in case of an extension
problem or bug.
ParametersName | Type | Description |
---|
$extension | string | |
---|
setGenerator(string $number) : \Zend_Crypt_DiffieHellman
Setter for the value of the generator number
ParametersName | Type | Description |
---|
$number | string | |
---|
Returns setPrime(string $number) : \Zend_Crypt_DiffieHellman
Setter for the value of the prime number
ParametersName | Type | Description |
---|
$number | string | |
---|
Returns setPrivateKey(string $number, string $type = self::NUMBER) : \Zend_Crypt_DiffieHellman
Setter for the value of the private number
ParametersName | Type | Description |
---|
$number | string | |
---|
$type | string | |
---|
Returns setPublicKey(string $number, string $type = self::NUMBER) : \Zend_Crypt_DiffieHellman
Setter for the value of the public number
ParametersName | Type | Description |
---|
$number | string | |
---|
$type | string | |
---|
Returns