The openssl_pkey_export() function is an inbuilt function in PHP which is used to view and manage private keys and public keys. It gets an exportable representation of a key into a string. It exports the key as a PEM encoded string and stores to pass by reference.
Syntax:
bool openssl_pkey_export( mixed $key, string $out [, string $passphrase [, array $configargs ]])
Parameters: This function accepts four parameters as mentioned above and described below.
- $key: This key is passed as a PEM encoded string.
- $out: This variable is passed by reference which holds PKCS#12 on successful execution of the above function.
- $passphrase: This parameter is used to control access to a computer system, program or data.
- $configargs: The “configargs” parameter is used to initialize the request. The developer can also mention an alternative openssl configuration file by setting the configuration key value to the file path that will be used.
Return Values: This function returns TRUE on success or FALSE on failure.
Below program illustrate the openssl_pkey_export() function in PHP.
Program:
PHP
<?php // Create the keypair $res = openssl_pkey_new(); // Get private key openssl_pkey_export( $res , $privkey , "PassPhrase number 1" ); { // Get details of public key $pubkey = openssl_pkey_get_details( $res ); $pubkey = $pubkey [ "key" ]; var_dump( $privkey ); var_dump( $pubkey ); } ?> |
Output:
string(1854) "-----BEGIN ENCRYPTED PRIVATE KEY----- MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIxb/qYev3FEkCAggA MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECL2Qz46mZsMgBIIEyL0r4vpwOpt9 BtBmsrL8aXNsy8Da8FdwN5Ll3ZtuYnKxUWOyRByuQNxHWiVkkZhZ5R9zS+6yKN1q DxGqkUo6PBRmIYEHfYJ/oN0FQAPTEEQ2GtUimt2HxFIHL1WfSYM7UfYFUSD5AImM BwTtnIcSwXv3IfZHu5Bq8mOrRt6UmVXYwLT3jpeW1xX5Y3HjyyepPV13PXbxjGPL OgtH6J+CaCPvmmUgj8FJAaqJsTPed6vjHftSwp+vZRpeS9teuPXLwK4GVjsPuhDo nK7CQL+BEtPH1oZ0T0/uG1aRkkms0ul29LSkGoYNt1b7e/ZtjaNU5Wl31yHoDyNB +IgLJuNQG87aDIPLSQtlB/96NlSlpa334SLoSMmM6XXftimtrz1bsyFOcelgI/ro JwLZcFMDqAImDkaT52Mf46++eIZyRRx2tdMkfVbYpZpTj0li4fL51D5J1/Vprf89 5+Vbnh2LJPesjhuEsd2nh5fzPaN9bN+DcEQ2RXCKZdpiSWlPkmEor93xsGGKb67k lPSLlP8VoCbI3VRs31hDv0mCykXt92BexEKW7NZpxXWxe/kcExyovy0Wz4RvCveF sHhTVuAipEGIpx/63wrjCDVnsPs3rDPuOw4VQZ/i0v0YWEJjzf2imh5BRBO3RavF HwI2fy33DGGRXxv2uUJgH0n+35uBIqLp+qyfDSzH3dvivCeBLoW4CyRADL1ocWwL IoL0GaTLCbZDc2XZAaX8SSyDaKZY3HgOeWhHIIsDdPIIkjGu7GbJggdGYH3tfAtL +SH8cJ1BwVz7hIK789H5i5vkRRmKQL/pRRXaUGUWzgY//W7fEwpdGZzzopj4WIBB qpaYYG2NA/Y88qTjxi9L19L7ihSlY8B9pDFqfFz76lneo2tWJlCI1DzziO6Beed9 0/K/jHzhH+HUJ/+8lcr+f+GGoDgB4qids3nUR0XgT7r10r3XulnmHJLfz07EhEJ1 n5WlalaQtq+qjPW2t9zX588g4xdB7afdmsyjECpaclDoi8BJTdy/xvxHH89Qsoyq LLELF4geSwyIhwI5EKi6TEwvW1/kcegb2mLvBVwXwSWis78WjuAaaJeHfOw4AQps 6pyEcDaRm34YBPMGX3jqitcYPdwRlz4eosfkO5OguPOOcpW9NvIB4DaT/5m+3pXb kPN9N3MX16Ym1oV9VJIcf2fQS2+jDiQI9Q+ocVOU0d5sfpEeKgUwKa5ufkvUdFL5 Y2lRUhlSlF9GA9QPFK+Q+MpuXCzuRjTZsn4E1T02dH9NLZcgUPGXlCeejVkPy2rd lpleGHLmDb1rz9LgpAlfPHMnZkn5W7lfZ/pgTNDrnk1wupYgd3FouUSoO/tqDfri 3uilWMJbiYP3b+Qg5LWLhU1ZFo5512IaHgpLWsAHcOwrqwZ1TTdwjJCoz5gf8o28 VCxC/EoFLv8nTItebqV9lkrd9NWraXPkfPPqrIi1cPmHQSAwisgfdfSrJaIqX9Sm aQQ0dxFaVzhXHYqu4MOQa3fQO/Jfr8Q0ZFnX7Eg/FfgatCFQYYMKg2+tWmD/qGgQ 31dKhjo3VgtEubC/o9D+TJq17NH4FdRhhgv6JG6MM1MGY2UPLjkJfgYXfmu5/t65 BnG9JjwWVy3g7skKFqTKpw== -----END ENCRYPTED PRIVATE KEY----- " string(451) "-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtrfq8MIME9BbbmcLlPiQ Xdsd4tIAaWU6pJZQdUpipRSdgbBRAxTh/z7yXAeIooSt2w9PdwYEPMYmNNkH596D bHgezBq0mR7AUGIth2mVSspntfehu+Yyp7GiLm4ZK7Bv7rKqKMo8KSGXrJGSly6l yOlgVDMRgxBNPxcCqHmU2lIr3RmFb5gAxyxk2cRA3WIok58DltlHn7InX1KQMbGb QqRttSyuZNgFWA8r8O7Ug15abSs71tAboJZWS/NYQDeY6jxSVxgj3HFX7hQ7VRZp 3hXyAArqjcvcvcWtpWcc3CQ/BjZOTsDXyjuokxGyiTjD2p7VSHFGXwanzE69bwTA kQIDAQAB -----END PUBLIC KEY----- "
Reference: https://www.php.net/manual/en/function.openssl-pkey-export.php