DH
abstract class DH extends AsymmetricKey (View source)
Pure-PHP (EC)DH implementation
Constants
ALGORITHM |
Algorithm Name |
Properties
static protected BigInteger | $zero | Precomputed Zero | from AsymmetricKey |
static protected BigInteger | $one | Precomputed One | from AsymmetricKey |
protected string | $format | Format of the loaded key | from AsymmetricKey |
protected Hash | $hash | Hash function | from AsymmetricKey |
static protected bool[] | $engines | Available Engines | from AsymmetricKey |
protected BigInteger | $prime | DH prime | |
protected BigInteger | $base | DH Base |
Methods
Load the key
Loads a private key
Load the key, assuming a specific format
Loads a private key
Loads parameters
Validate Plugin
Flag to use internal engine only (useful for unit testing)
Determines which hashing function should be used
Returns the hash algorithm currently being used
Compute the pseudorandom k for signature generation, using the process specified for deterministic DSA.
Create DH parameters
Compute Shared Secret
OnLoad Handler
Returns the parameters
Details
protected
__construct()
The constructor
static protected
initialize_static_variables()
Initialize static variables
static AsymmetricKey
load(string $key, string $password = false)
Load the key
PrivateKey
loadPrivateKey(string|array $key, string $password = '')
Loads a private key
PublicKey
loadPublicKey(string|array $key)
Loads a public key
AsymmetricKey
loadParameters(string|array $key)
Loads parameters
static AsymmetricKey
loadFormat(string $type, string $key, string $password = false)
Load the key, assuming a specific format
PrivateKey
loadPrivateKeyFormat(string $type, string $key, string $password = false)
Loads a private key
PublicKey
loadPublicKeyFormat(string $type, string $key)
Loads a public key
AsymmetricKey
loadParametersFormat(string $type, string|array $key)
Loads parameters
static protected mixed
validatePlugin(string $format, string $type, string $method = NULL)
Validate Plugin
static array
getSupportedKeyFormats()
Returns a list of supported formats.
static bool
addFileFormat(string $fullname)
Add a fileformat plugin
The plugin needs to either already be loaded or be auto-loadable. Loading a plugin whose shortname overwrite an existing shortname will overwrite the old plugin.
mixed
getLoadedFormat()
Returns the format of the loaded key.
If the key that was loaded wasn't in a valid or if the key was auto-generated with RSA::createKey() then this will throw an exception.
null|string
getComment()
Returns the key's comment
Not all key formats support comments. If you want to set a comment use toString()
static
useBestEngine()
Tests engine validity
static
useInternalEngine()
Flag to use internal engine only (useful for unit testing)
string
__toString()
__toString() magic method
withHash(string $hash)
Determines which hashing function should be used
getHash()
Returns the hash algorithm currently being used
protected string
computek(string $h1)
Compute the pseudorandom k for signature generation, using the process specified for deterministic DSA.
protected BigInteger
bits2int(string $in)
Bit String to Integer
static DH|bool
createParameters(...$args)
Create DH parameters
This method is a bit polymorphic. It can take any of the following: - two BigInteger's (prime and base) - an integer representing the size of the prime in bits (the base is assumed to be 2) - a string (eg. diffie-hellman-group14-sha1)
static PrivateKey
createKey(Parameters $params, int $length = 0)
Create public / private key pair.
The rationale for the second parameter is described in http://tools.ietf.org/html/rfc4419#section-6.2 :
"To increase the speed of the key exchange, both client and server may reduce the size of their private exponents. It should be at least twice as long as the key material that is generated from the shared secret. For more details, see the paper by van Oorschot and Wiener [VAN-OORSCHOT]."
$length is in bits
static mixed
computeSecret(PrivateKey|EC $private, PublicKey|BigInteger|string $public)
Compute Shared Secret
static protected bool
onLoad(array $components)
OnLoad Handler
mixed
getParameters()
Returns the parameters
A public / private key is only returned if the currently loaded "key" contains an x or y value.