EC
abstract class EC extends AsymmetricKey (View source)
Pure-PHP implementation of EC.
Constants
ALGORITHM |
Algorithm Name |
Properties
static protected BigInteger | $zero | Precomputed Zero | from AsymmetricKey |
static protected BigInteger | $one | Precomputed One | from AsymmetricKey |
protected string | $format | Signature Format | |
protected Hash | $hash | Hash function | from AsymmetricKey |
static protected bool[] | $engines | Available Engines | from AsymmetricKey |
protected object[] | $QA | Public Key QA | |
protected Base | $curve | Curve | |
protected string | $shortFormat | Signature Format (Short) | |
protected BigInteger | $q | Curve Order | |
protected BigInteger | $x | Alias for the private key | |
protected string | $context | Context |
Methods
Constructor
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)
__toString() magic method
Determines which hashing function should be used
Compute the pseudorandom k for signature generation, using the process specified for deterministic DSA.
Create public / private key pair.
OnLoad Handler
Returns the curve
Returns the key size
Returns the current engine being used
Returns the public key coordinates as a string
Returns the parameters
Determines the signature padding mode
Returns the signature format currently being used
Sets the context
Returns the signature format currently being used
Details
protected
__construct()
Constructor
PublicKey and PrivateKey objects can only be created from abstract RSA class
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 PrivateKey
createKey(string $curve)
Create public / private key pair.
static protected bool
onLoad(array $components)
OnLoad Handler
string|array
getCurve()
Returns the curve
Returns a string if it's a named curve, an array if not
int
getLength()
Returns the key size
Quoting https://tools.ietf.org/html/rfc5656#section-2,
"The size of a set of elliptic curve domain parameters on a prime curve is defined as the number of bits in the binary representation of the field order, commonly denoted by p. Size on a characteristic-2 curve is defined as the number of bits in the binary representation of the field, commonly denoted by m. A set of elliptic curve domain parameters defines a group of order n generated by a base point P"
string
getEngine()
Returns the current engine being used
string
getEncodedCoordinates()
Returns the public key coordinates as a string
Used by ECDH
mixed
getParameters(string $type = 'PKCS1')
Returns the parameters
withSignatureFormat(string $format)
Determines the signature padding mode
Valid values are: ASN1, SSH2, Raw
getSignatureFormat()
Returns the signature format currently being used
withContext(string $context = null)
Sets the context
Used by Ed25519 / Ed448.
getContext()
Returns the signature format currently being used