From: Operating system: * PHP version: 5.4.2 Package: OpenSSL related Bug Type: Bug Bug description:openssl corrupts ssl key resource when using openssl_get_publickey()
Description: ------------ If openssl_get_publickey() is applied to a key resource, the resource that comes out of it has wrong refcount and if freed, the argument of openssl_get_publickey() gets freed too. Test script: --------------- If we have a certificate in $cert and data in $data and valid signature in $sign, this works: $key = openssl_get_publickey($cert); var_dump(openssl_verify($data, $sig, $key)); however this does not: $key = openssl_get_publickey($cert); var_dump(openssl_get_publickey($key)); var_dump(openssl_verify($data, $sig, $key)); it produces errors like this: Warning: openssl_verify(): 4 is not a valid OpenSSL X.509/key resource in /Users/smalyshev/osslbug.php on line 29 Warning: openssl_verify(): supplied key param cannot be coerced into a public key in /Users/smalyshev/osslbug.php on line 29 -- Edit bug report at https://bugs.php.net/bug.php?id=61930&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=61930&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=61930&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=61930&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=61930&r=fixed Fixed in SVN and need be documented: https://bugs.php.net/fix.php?id=61930&r=needdocs Fixed in release: https://bugs.php.net/fix.php?id=61930&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=61930&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=61930&r=needscript Try newer version: https://bugs.php.net/fix.php?id=61930&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=61930&r=support Expected behavior: https://bugs.php.net/fix.php?id=61930&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=61930&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=61930&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=61930&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=61930&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=61930&r=dst IIS Stability: https://bugs.php.net/fix.php?id=61930&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=61930&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=61930&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=61930&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=61930&r=mysqlcfg