mirror of
https://github.com/phpseclib/phpseclib.git
synced 2024-12-26 03:27:31 +00:00
$key->getLoadedFormat didn't work on EC / DSA keys
This commit is contained in:
parent
ceff4cfbbc
commit
327a13d133
@ -24,7 +24,7 @@ use phpseclib3\Crypt\DSA;
|
|||||||
use phpseclib3\Crypt\ECDSA;
|
use phpseclib3\Crypt\ECDSA;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base Class for all stream cipher classes
|
* Base Class for all asymmetric cipher classes
|
||||||
*
|
*
|
||||||
* @package AsymmetricKey
|
* @package AsymmetricKey
|
||||||
* @author Jim Wigginton <terrafrost@php.net>
|
* @author Jim Wigginton <terrafrost@php.net>
|
||||||
@ -173,8 +173,8 @@ abstract class AsymmetricKey
|
|||||||
}
|
}
|
||||||
|
|
||||||
$components['format'] = $format;
|
$components['format'] = $format;
|
||||||
|
|
||||||
$new = static::onLoad($components);
|
$new = static::onLoad($components);
|
||||||
|
$new->format = $format;
|
||||||
return $new instanceof PrivateKey ?
|
return $new instanceof PrivateKey ?
|
||||||
$new->withPassword($password) :
|
$new->withPassword($password) :
|
||||||
$new;
|
$new;
|
||||||
@ -304,7 +304,7 @@ abstract class AsymmetricKey
|
|||||||
* Returns the format of the loaded key.
|
* 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
|
* If the key that was loaded wasn't in a valid or if the key was auto-generated
|
||||||
* with RSA::createKey() then this will return false.
|
* with RSA::createKey() then this will throw an exception.
|
||||||
*
|
*
|
||||||
* @see self::load()
|
* @see self::load()
|
||||||
* @access public
|
* @access public
|
||||||
@ -312,8 +312,8 @@ abstract class AsymmetricKey
|
|||||||
*/
|
*/
|
||||||
public function getLoadedFormat()
|
public function getLoadedFormat()
|
||||||
{
|
{
|
||||||
if ($this->format === false) {
|
if (empty($this->format)) {
|
||||||
return false;
|
throw new NoKeyLoadedException('This key was created with createKey - it was not loaded with load. Therefore there is no "loaded format"');
|
||||||
}
|
}
|
||||||
|
|
||||||
$meta = new \ReflectionClass($this->format);
|
$meta = new \ReflectionClass($this->format);
|
||||||
|
@ -95,7 +95,7 @@ abstract class DSA extends AsymmetricKey
|
|||||||
* @var string
|
* @var string
|
||||||
* @access private
|
* @access private
|
||||||
*/
|
*/
|
||||||
protected $format;
|
protected $sigFormat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Signature Format (Short)
|
* Signature Format (Short)
|
||||||
@ -263,7 +263,7 @@ abstract class DSA extends AsymmetricKey
|
|||||||
*/
|
*/
|
||||||
protected function __construct()
|
protected function __construct()
|
||||||
{
|
{
|
||||||
$this->format = self::validatePlugin('Signature', 'ASN1');
|
$this->sigFormat = self::validatePlugin('Signature', 'ASN1');
|
||||||
$this->shortFormat = 'ASN1';
|
$this->shortFormat = 'ASN1';
|
||||||
|
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
@ -329,7 +329,7 @@ abstract class DSA extends AsymmetricKey
|
|||||||
{
|
{
|
||||||
$new = clone $this;
|
$new = clone $this;
|
||||||
$new->shortFormat = $format;
|
$new->shortFormat = $format;
|
||||||
$new->format = self::validatePlugin('Signature', $format);
|
$new->sigFormat = self::validatePlugin('Signature', $format);
|
||||||
return $new;
|
return $new;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ class PrivateKey extends DSA implements Common\PrivateKey
|
|||||||
*/
|
*/
|
||||||
public function sign($message)
|
public function sign($message)
|
||||||
{
|
{
|
||||||
$format = $this->format;
|
$format = $this->sigFormat;
|
||||||
|
|
||||||
if (self::$engines['OpenSSL'] && in_array($this->hash->getHash(), openssl_get_md_methods())) {
|
if (self::$engines['OpenSSL'] && in_array($this->hash->getHash(), openssl_get_md_methods())) {
|
||||||
$signature = '';
|
$signature = '';
|
||||||
|
@ -40,7 +40,7 @@ class PublicKey extends DSA implements Common\PublicKey
|
|||||||
*/
|
*/
|
||||||
public function verify($message, $signature)
|
public function verify($message, $signature)
|
||||||
{
|
{
|
||||||
$format = $this->format;
|
$format = $this->sigFormat;
|
||||||
|
|
||||||
$params = $format::load($signature);
|
$params = $format::load($signature);
|
||||||
if ($params === false || count($params) != 2) {
|
if ($params === false || count($params) != 2) {
|
||||||
|
@ -244,7 +244,7 @@ abstract class EC extends AsymmetricKey
|
|||||||
*/
|
*/
|
||||||
protected function __construct()
|
protected function __construct()
|
||||||
{
|
{
|
||||||
$this->format = self::validatePlugin('Signature', 'ASN1');
|
$this->sigFormat = self::validatePlugin('Signature', 'ASN1');
|
||||||
$this->shortFormat = 'ASN1';
|
$this->shortFormat = 'ASN1';
|
||||||
|
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
@ -383,7 +383,7 @@ abstract class EC extends AsymmetricKey
|
|||||||
|
|
||||||
$new = clone $this;
|
$new = clone $this;
|
||||||
$new->shortFormat = $format;
|
$new->shortFormat = $format;
|
||||||
$new->format = self::validatePlugin('Signature', $format);
|
$new->sigFormat = self::validatePlugin('Signature', $format);
|
||||||
return $new;
|
return $new;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ class PrivateKey extends EC implements Common\PrivateKey
|
|||||||
$order = $this->curve->getOrder();
|
$order = $this->curve->getOrder();
|
||||||
|
|
||||||
$shortFormat = $this->shortFormat;
|
$shortFormat = $this->shortFormat;
|
||||||
$format = $this->format;
|
$format = $this->sigFormat;
|
||||||
if ($format === false) {
|
if ($format === false) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ class PublicKey extends EC implements Common\PublicKey
|
|||||||
}
|
}
|
||||||
|
|
||||||
$shortFormat = $this->shortFormat;
|
$shortFormat = $this->shortFormat;
|
||||||
$format = $this->format;
|
$format = $this->sigFormat;
|
||||||
if ($format === false) {
|
if ($format === false) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -407,7 +407,6 @@ abstract class RSA extends AsymmetricKey
|
|||||||
new PublicKey :
|
new PublicKey :
|
||||||
new PrivateKey;
|
new PrivateKey;
|
||||||
|
|
||||||
$key->format = $components['format'];
|
|
||||||
$key->modulus = $components['modulus'];
|
$key->modulus = $components['modulus'];
|
||||||
$key->publicExponent = $components['publicExponent'];
|
$key->publicExponent = $components['publicExponent'];
|
||||||
$key->k = $key->modulus->getLengthInBytes();
|
$key->k = $key->modulus->getLengthInBytes();
|
||||||
|
Loading…
Reference in New Issue
Block a user