From e8d75b2e8d9bf601cc9c6cefc6a0464cf47e3aac Mon Sep 17 00:00:00 2001 From: terrafrost Date: Mon, 9 Nov 2015 22:10:08 -0600 Subject: [PATCH 1/2] Tests/RSA: add unit test for loading PKCS8 specific keys --- tests/Unit/Crypt/RSA/LoadKeyTest.php | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/Unit/Crypt/RSA/LoadKeyTest.php b/tests/Unit/Crypt/RSA/LoadKeyTest.php index b1603af4..7c09a890 100644 --- a/tests/Unit/Crypt/RSA/LoadKeyTest.php +++ b/tests/Unit/Crypt/RSA/LoadKeyTest.php @@ -316,4 +316,33 @@ JWrQdxx/WNN+ABG426rgYYbeGcIlWLZCw6Bx/1HtN5ef6nVEoiGNChYKIRB4QFOi $this->assertSame(preg_replace('#\s#', '', $key), preg_replace('#\s#', '', $newkey)); } + + /** + * @group github861 + */ + public function testPKCS8Only() + { + $rsa = new Crypt_RSA(); + + $key = '-----BEGIN PRIVATE KEY----- +MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKB0yPMAbUHKqJxP +5sjG9AOrQSAYNDc34NsnZ1tsi7fZ9lHlBaKZ6gjm2U9q+/qCKv2BuGINxWo2CMJp +DHNY0QTt7hThr3B4U62z1CWWGnfLhFtHKH6jNYYOGc4x0jgT88uSrKFvUOLhjkjW +bURmJMpN+OjLJuZQZ7uwoqtT3IEDAgMBAAECgYBaElS/fEzYst/Fp2DA8lYGPTs4 +vf2JxbdWrp7phlxEH3mTbUGljkr/Jj90wnSiojFpz0jm2h4oyh5Oq9OOaJwkCYcu +2lcHJvFlhR2XEJpd1bHHcvDwZHdUjSpnO8kvwQtjuTnho2ntRzAA4wIJVSd7Tynj +0IFEKmzhSKIvIIeN8QJBANLa10R1vs+YqpLdpAuc6Z9GYhHuh1TysBPw2xNtw3Xf +tGPx4/53eQ0RwiHdw9Opgt8CBHErD6KzziflfxUrIXkCQQDCz4t01qYWT43kxS6k +TcnZb/obho6akGc8C1hSxFIIGUa9hAhMpY2W6GXeGpv5TZtEJZIJE1VHTLvcLSGm +ILNbAkEAgq9mWqULxYket3Yt1ZDEb5Zk9C49rJXaMhHHBoyyZ51mJcfngnE0Erid +9PWJCOf4GBYdALMqtrHwpWOlV05rKQJAd6Tz50w1MRqm8MvRe4Ny5qIJH4Kibncl +kBD/q8V7BBJSCe7fEgPTU81jUudQx+pL46yXZg+DnoiYD/9/3QHUZQJBAMBiKiZ7 +qMnD/pkHR/NFcYSYShUJS0cHyryVl7/eCclsQlZTRdnVTtKF9xPGTQC8fK0G7BDN +Z2sKniRCcDT1ZP4= +-----END PRIVATE KEY-----'; + + $result = $rsa->loadKey($key, CRYPT_RSA_PRIVATE_FORMAT_PKCS8); + + $this->assertTrue($result); + } } From 7339112e1076197566cbd0d2bb8fdb42f008d742 Mon Sep 17 00:00:00 2001 From: terrafrost Date: Mon, 9 Nov 2015 22:53:50 -0600 Subject: [PATCH 2/2] RSA: fix issue with loading PKCS8 specific keys --- phpseclib/Crypt/RSA.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpseclib/Crypt/RSA.php b/phpseclib/Crypt/RSA.php index 9ae9f32d..9369d437 100644 --- a/phpseclib/Crypt/RSA.php +++ b/phpseclib/Crypt/RSA.php @@ -209,7 +209,7 @@ define('CRYPT_RSA_PRIVATE_FORMAT_XML', 2); /** * PKCS#8 formatted private key */ -define('CRYPT_RSA_PRIVATE_FORMAT_PKCS8', 3); +define('CRYPT_RSA_PRIVATE_FORMAT_PKCS8', 8); /**#@-*/ /**#@+