From 693804e62ae856bcf026b65db0581e0b1fc83fe8 Mon Sep 17 00:00:00 2001 From: terrafrost Date: Thu, 16 Jul 2015 11:50:22 -0500 Subject: [PATCH] X509: move where Crypt/Random loading is done --- phpseclib/File/X509.php | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/phpseclib/File/X509.php b/phpseclib/File/X509.php index 8fcd9c9c..f3c86d3f 100644 --- a/phpseclib/File/X509.php +++ b/phpseclib/File/X509.php @@ -317,10 +317,6 @@ class File_X509 include_once 'Math/BigInteger.php'; } - if (!function_exists('crypt_random_string')) { - include_once 'Crypt/Random.php'; - } - // Explicitly Tagged Module, 1988 Syntax // http://tools.ietf.org/html/rfc5280#appendix-A.1 @@ -3281,12 +3277,17 @@ class File_X509 $startDate = !empty($this->startDate) ? $this->startDate : @date('D, d M Y H:i:s O'); $endDate = !empty($this->endDate) ? $this->endDate : @date('D, d M Y H:i:s O', strtotime('+1 year')); - // "The serial number MUST be a positive integer" - // "Conforming CAs MUST NOT use serialNumber values longer than 20 octets." - // -- https://tools.ietf.org/html/rfc5280#section-4.1.2.2 - $serialNumber = !empty($this->serialNumber) ? - $this->serialNumber : - new Math_BigInteger(crypt_random_string(20) & ("\x7F" . str_repeat("\xFF", 19)), 256); + if (!empty($this->serialNumber)) { + $serialNumber = $this->serialNumber; + } else { + if (!function_exists('crypt_random_string')) { + include_once 'Crypt/Random.php'; + } + // "The serial number MUST be a positive integer" + // "Conforming CAs MUST NOT use serialNumber values longer than 20 octets." + // -- https://tools.ietf.org/html/rfc5280#section-4.1.2.2 + $serialNumber = new Math_BigInteger(crypt_random_string(20) & ("\x7F" . str_repeat("\xFF", 19)), 256); + } $this->currentCert = array( 'tbsCertificate' =>