php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #80489 openssl_pkey_get_private cannot parse private keys. Works in 7.4
Submitted: 2020-12-07 10:47 UTC Modified: 2020-12-07 11:36 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: php at themodem dot co dot uk Assigned:
Status: Not a bug Package: OpenSSL related
PHP Version: 8.0.0 OS: all
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: php at themodem dot co dot uk
New email:
PHP Version: OS:

 

 [2020-12-07 10:47 UTC] php at themodem dot co dot uk
Description:
------------
In php 7.4 the function openssl_pkey_get_private on the private key listed in the test script is parsed correctly as a private key and a resource is returned.

In php 8.0 this function fails silently to parse the key and does not return a resource.

Test script:
---------------
<?php

$privateKey = <<<EOL
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
EOL;

$res = openssl_pkey_get_private($privateKey);
var_dump(is_resource($res));


Expected result:
----------------
bool(true)

Actual result:
--------------
bool(false)

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2020-12-07 10:49 UTC] rtrtrtrtrt at dfdfdfdf dot dfd
you really hsould read the changes before major updates

https://www.php.net/releases/8.0/en.php

Opaque objects instead of resources for Curl, Gd, Sockets, OpenSSL, XMLWriter, and XML extensions 

https://php.watch/versions/8.0/OpenSSL-resource
 [2020-12-07 10:55 UTC] php at themodem dot co dot uk
-Status: Open +Status: Closed
 [2020-12-07 10:55 UTC] php at themodem dot co dot uk
My bad, was searching for the function name and not generic openssl in the release notes.

Closed as not a bug
 [2020-12-07 11:36 UTC] cmb@php.net
-Status: Closed +Status: Not a bug
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Tue Jul 01 15:01:38 2025 UTC