mirror of
https://github.com/danog/phpseclib.git
synced 2024-12-02 17:52:59 +01:00
XML Key loading tweaks
This commit is contained in:
parent
7d3dbccd72
commit
27f578797d
@ -23,6 +23,7 @@ namespace phpseclib3\Crypt\DSA\Formats\Keys;
|
|||||||
|
|
||||||
use ParagonIE\ConstantTime\Base64;
|
use ParagonIE\ConstantTime\Base64;
|
||||||
use phpseclib3\Common\Functions\Strings;
|
use phpseclib3\Common\Functions\Strings;
|
||||||
|
use phpseclib3\Exception\BadConfigurationException;
|
||||||
use phpseclib3\Math\BigInteger;
|
use phpseclib3\Math\BigInteger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -48,6 +49,10 @@ abstract class XML
|
|||||||
throw new \UnexpectedValueException('Key should be a string - not a ' . gettype($key));
|
throw new \UnexpectedValueException('Key should be a string - not a ' . gettype($key));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!class_exists('DOMDocument')) {
|
||||||
|
throw new BadConfigurationException('The dom extension is not setup correctly on this system');
|
||||||
|
}
|
||||||
|
|
||||||
$use_errors = libxml_use_internal_errors(true);
|
$use_errors = libxml_use_internal_errors(true);
|
||||||
|
|
||||||
$dom = new \DOMDocument();
|
$dom = new \DOMDocument();
|
||||||
@ -55,6 +60,7 @@ abstract class XML
|
|||||||
$key = '<xml>' . $key . '</xml>';
|
$key = '<xml>' . $key . '</xml>';
|
||||||
}
|
}
|
||||||
if (!$dom->loadXML($key)) {
|
if (!$dom->loadXML($key)) {
|
||||||
|
libxml_use_internal_errors($use_errors);
|
||||||
throw new \UnexpectedValueException('Key does not appear to contain XML');
|
throw new \UnexpectedValueException('Key does not appear to contain XML');
|
||||||
}
|
}
|
||||||
$xpath = new \DOMXPath($dom);
|
$xpath = new \DOMXPath($dom);
|
||||||
|
@ -26,6 +26,7 @@ use phpseclib3\Crypt\EC\BaseCurves\Base as BaseCurve;
|
|||||||
use phpseclib3\Crypt\EC\BaseCurves\Montgomery as MontgomeryCurve;
|
use phpseclib3\Crypt\EC\BaseCurves\Montgomery as MontgomeryCurve;
|
||||||
use phpseclib3\Crypt\EC\BaseCurves\Prime as PrimeCurve;
|
use phpseclib3\Crypt\EC\BaseCurves\Prime as PrimeCurve;
|
||||||
use phpseclib3\Crypt\EC\BaseCurves\TwistedEdwards as TwistedEdwardsCurve;
|
use phpseclib3\Crypt\EC\BaseCurves\TwistedEdwards as TwistedEdwardsCurve;
|
||||||
|
use phpseclib3\Exception\BadConfigurationException;
|
||||||
use phpseclib3\Exception\UnsupportedCurveException;
|
use phpseclib3\Exception\UnsupportedCurveException;
|
||||||
use phpseclib3\Math\BigInteger;
|
use phpseclib3\Math\BigInteger;
|
||||||
|
|
||||||
@ -70,6 +71,10 @@ abstract class XML
|
|||||||
throw new \UnexpectedValueException('Key should be a string - not a ' . gettype($key));
|
throw new \UnexpectedValueException('Key should be a string - not a ' . gettype($key));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!class_exists('DOMDocument')) {
|
||||||
|
throw new BadConfigurationException('The dom extension is not setup correctly on this system');
|
||||||
|
}
|
||||||
|
|
||||||
$use_errors = libxml_use_internal_errors(true);
|
$use_errors = libxml_use_internal_errors(true);
|
||||||
|
|
||||||
$temp = self::isolateNamespace($key, 'http://www.w3.org/2009/xmldsig11#');
|
$temp = self::isolateNamespace($key, 'http://www.w3.org/2009/xmldsig11#');
|
||||||
|
@ -24,6 +24,7 @@ namespace phpseclib3\Crypt\RSA\Formats\Keys;
|
|||||||
|
|
||||||
use ParagonIE\ConstantTime\Base64;
|
use ParagonIE\ConstantTime\Base64;
|
||||||
use phpseclib3\Common\Functions\Strings;
|
use phpseclib3\Common\Functions\Strings;
|
||||||
|
use phpseclib3\Exception\BadConfigurationException;
|
||||||
use phpseclib3\Exception\UnsupportedFormatException;
|
use phpseclib3\Exception\UnsupportedFormatException;
|
||||||
use phpseclib3\Math\BigInteger;
|
use phpseclib3\Math\BigInteger;
|
||||||
|
|
||||||
@ -50,6 +51,10 @@ abstract class XML
|
|||||||
throw new \UnexpectedValueException('Key should be a string - not a ' . gettype($key));
|
throw new \UnexpectedValueException('Key should be a string - not a ' . gettype($key));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!class_exists('DOMDocument')) {
|
||||||
|
throw new BadConfigurationException('The dom extension is not setup correctly on this system');
|
||||||
|
}
|
||||||
|
|
||||||
$components = [
|
$components = [
|
||||||
'isPublicKey' => false,
|
'isPublicKey' => false,
|
||||||
'primes' => [],
|
'primes' => [],
|
||||||
@ -64,6 +69,7 @@ abstract class XML
|
|||||||
$key = '<xml>' . $key . '</xml>';
|
$key = '<xml>' . $key . '</xml>';
|
||||||
}
|
}
|
||||||
if (!$dom->loadXML($key)) {
|
if (!$dom->loadXML($key)) {
|
||||||
|
libxml_use_internal_errors($use_errors);
|
||||||
throw new \UnexpectedValueException('Key does not appear to contain XML');
|
throw new \UnexpectedValueException('Key does not appear to contain XML');
|
||||||
}
|
}
|
||||||
$xpath = new \DOMXPath($dom);
|
$xpath = new \DOMXPath($dom);
|
||||||
|
Loading…
Reference in New Issue
Block a user