|
openssl_pkey_get_public
Extract public key from certificate and prepare it for use
(PHP 4 >= 4.2.0, PHP 5)
Code Examples / Notes » openssl_pkey_get_publicdankybastard
You must also use the string representation of the certificate to get the public key resource: $dn = array(); // use defaults $res_privkey = openssl_pkey_new(); $res_csr = openssl_csr_new($dn, $res_privkey); $res_cert = openssl_csr_sign($res_csr, null, $res_privkey, $ndays); openssl_x509_export($res_cert, $str_cert); $res_pubkey = openssl_pkey_get_public($str_cert); 07-may-2007 08:40
you can get (and save to file) public key using openssl_pkey_get_details(resource $key ) function: <?php $pub_key = openssl_pkey_get_public(file_get_contents('./cert.crt')); $keyData = openssl_pkey_get_details($pub_key); fule_put_contents('./key.pub', $keyData['key']); ?> 09-aug-2004 07:44
This documentation notes it can take a PEM-formatted private key, but as per bug #25614, this is not possible in any form. The function simply returns a FALSE. The only thing you can get public keys out of are X.509 certificates. Furthermore, there is NO way to export a public key into a PEM-encoded form. |
Change Languageopenssl_csr_export_to_file openssl_csr_export openssl_csr_get_public_key openssl_csr_get_subject openssl_csr_new openssl_csr_sign openssl_error_string openssl_free_key openssl_get_privatekey openssl_get_publickey openssl_open openssl_pkcs12_export_to_file openssl_pkcs12_export openssl_pkcs12_read openssl_pkcs7_decrypt openssl_pkcs7_encrypt openssl_pkcs7_sign openssl_pkcs7_verify openssl_pkey_export_to_file openssl_pkey_export openssl_pkey_free openssl_pkey_get_details openssl_pkey_get_private openssl_pkey_get_public openssl_pkey_new openssl_private_decrypt openssl_private_encrypt openssl_public_decrypt openssl_public_encrypt openssl_seal openssl_sign openssl_verify openssl_x509_check_private_key openssl_x509_checkpurpose openssl_x509_export_to_file openssl_x509_export openssl_x509_free openssl_x509_parse openssl_x509_read |