Open In App

PHP openssl_pkcs12_read() Function

Last Updated : 23 Sep, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

The openssl_pkcs12_read() function is a built-in function in PHP and is used by the PKCS # 12 certificate store to convert it into an array provided by pkcs12. A PKCS #12 file may be encrypted and signed.

Syntax:

bool openssl_pkcs12_read( string $pkcs12, array &$certs, string $pass )

Parameters: This function accepts three parameters as mentioned above and described below:

  • $pkcs12: PKCS #12 is one of the family of standards called Public-Key Cryptography Standards (PKCS) published by RSA Laboratories.
  • $certs: If successful, this will contain the Certificate Store Information.
  • $pass: This parameter is used for the encryption password for unlocking the PKCS#12 file.

Return Values: This function returns TRUE on success or FALSE on failure.

Example:

PHP




<?php
  
$dn = array(
    "countryName" => 'xx',
    "stateOrProvinceName" => 'uttar prradesh',
    "localityName" => 'varanasi',
    "organizationName" => 'geeksforgeeks',
    "organizationalUnitName" => 'geeks team',
    "commonName" => 'people',
    "emailAddress" => 'user@geeks.com'
);
   
$privateKeyPass = 'dummyPassword';
$numberOfDays   = 108;
   
$privateKey = openssl_pkey_new();
$csr = openssl_csr_new($dn, $privateKey);
   
// Create a csr file, change null to
// a filename to save 
$sscert = openssl_csr_sign($csr
    null, $privateKey, $numberOfDays);
   
// On success $publicKey will hold
// the PEM content 
openssl_x509_export($sscert, $publicKey);
   
// Export the privateKey as a PEM content
openssl_pkey_export($privateKey
        $privateKey, $privateKeyPass);
   
   
// Parses the $privateKey and used by
// openssl_pkcs12_export_to_file.
$key = openssl_pkey_get_private(
        $privateKey, $privateKeyPass);
   
$certificateOutput = null;
  
// Save the pfx file to $certificateOutput
openssl_pkcs12_export($sscert
    $certificateOutput, $key, $privateKeyPass);
   
// openssl_pkcs12_read reads the pkcs12
// certificate and store into array
openssl_pkcs12_read ($certificateOutput
        $readableOutput, $privateKeyPass );
          
var_dump($readableOutput);
  
?>


Output:

array(2) {
 ["cert"]=>
  string(1444) "-----BEGIN CERTIFICATE-----
MIID/DCCAuSgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBljELMAkGA1UEBhMCeHgx
FzAVBgNVBAgMDnV0dGFyIHBycmFkZXNoMREwDwYDVQQHDAh2YXJhbmFzaTEWMBQG
A1UECgwNZ2Vla3Nmb3JnZWVrczETMBEGA1UECwwKZ2Vla3MgdGVhbTEPMA0GA1UE
AwwGcGVvcGxlMR0wGwYJKoZIhvcNAQkBFg51c2VyQGdlZWtzLmNvbTAeFw0yMDA5
MDExNjI3MDBaFw0yMDEyMTgxNjI3MDBaMIGWMQswCQYDVQQGEwJ4eDEXMBUGA1UE
CAwOdXR0YXIgcHJyYWRlc2gxETAPBgNVBAcMCHZhcmFuYXNpMRYwFAYDVQQKDA1n
ZWVrc2ZvcmdlZWtzMRMwEQYDVQQLDApnZWVrcyB0ZWFtMQ8wDQYDVQQDDAZwZW9w
bGUxHTAbBgkqhkiG9w0BCQEWDnVzZXJAZ2Vla3MuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAxDzM5/lUYUir/5Q42Dh1XJk+V9jZm+CQ2QTD9LHY
+AntTX7jxPMdndXm/igd0IEgV0jVEOh+Y/ErlJEJJjMBFCMzbkL+goP15yqwxDEb
OoMEdCJ9StJywc4x/SbgIZLK6cHjqsUgzNIcUdjYjZ/BqN+C/9sXO0v3ArBsmOB3
AgycPxda0PoPcFy2oNMyM7FnJXnPvglJfozdBricggi0hUkMYih2fPWEpNS2dEgf
DmwpiXYu3S4gV0p0l08Q9VFdls8M2X9Nxp4dWV0lfWC8HkmmPOZofMipTsQ0Qvix
/TuA/xxg9ozRdOLv5JOwD8GJctFGKXkXstGPC4Z5+kwBMwIDAQABo1MwUTAdBgNV
HQ4EFgQUVEplgv0Z9eK8NE1YkVBJ0WuNFZwwHwYDVR0jBBgwFoAUVEplgv0Z9eK8
NE1YkVBJ0WuNFZwwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA
EcAu+9VKra4U32LLwHcX+80+LFwwwpzdehFEscfiBxr9zwCbszj1R75gL8AsGhjo
8OKE26+uTABjkElV7NJu9hgeDHxy9/an3xlz+MsEcoaFv9N9qCgqjX/Ihbwv7AHw
N8VxtVrhjyY6ScwyvOaR9Zo8tHNY04tGxqAfRLX5X2TN2EvzpijoLZMOIgsHqQFB
MocshV2BEJ/teom+CactKvrSHcQPwhRpE2dnEqsWK9vai4k1byHpTIAQdb3B+Ytz
MIOMd2wWuWr5EXwoUIaf8pzKAIEQjxNF+yUIMNkXNhaN3NxGIDrWh9057zjYHR2I
yxFL/nK5hEIEWiCyUtd1nQ==
-----END CERTIFICATE-----
"
  ["pkey"]=>
  string(1704) "-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDEPMzn+VRhSKv/
lDjYOHVcmT5X2Nmb4JDZBMP0sdj4Ce1NfuPE8x2d1eb+KB3QgSBXSNUQ6H5j8SuU
kQkmMwEUIzNuQv6Cg/XnKrDEMRs6gwR0In1K0nLBzjH9JuAhksrpweOqxSDM0hxR
2NiNn8Go34L/2xc7S/cCsGyY4HcCDJw/F1rQ+g9wXLag0zIzsWclec++CUl+jN0G
uJyCCLSFSQxiKHZ89YSk1LZ0SB8ObCmJdi7dLiBXSnSXTxD1UV2WzwzZf03Gnh1Z
XSV9YLweSaY85mh8yKlOxDRC+LH9O4D/HGD2jNF04u/kk7APwYly0UYpeRey0Y8L
hnn6TAEzAgMBAAECggEAFLJU6iJhw+DmQw5e8G8D8cA30wwL52TH4huejzAysfZa
ENJRM3RwqzTkJ+oTOupjftEvp5jdu6yz6/df/6dhdb5ArmBid2Fzje3ytr53ILSw
w47fqASKFeapXwm6mc/hlsXcPSaNTwzZ78fvDwDKbAUmy9VPnfFlG+N/kKAb7Rs3
8BUVmeAAhQ0ggRFDjzyK/sNIzK1iJO9xqpWemiWMqiYIvOzPxGymx0O4M9y8k5wo
lAgezRcoYUB4zQsWqkj5X/5NEZsEjy4/jYy/KpCz7LaIPIoZpTqIA0HOetspafuI
P+l4N1vU14wMXeQ0oZCKiysAIExmtMfHmyF7uzbIAQKBgQDzHtOkD8aDcSNOg4Qp
Q/SupcSSQZ93k4xVc3OjRPbBc8OIG+T7gwOS+Y6PpUAbYV7QKtVRNZ0W75qiafRk
akA1Y2CuG24lCE3u7qyUSx/zE9ehUg0MDXcNkauSYfD+1BbIlyQSRaZhGYiKJ5f3
jJuTqS3W4zkPvxLKc2cSGJb1RQKBgQDOoicPFut1SpIW/wVhzoxXfM8IvyW3KlnE
PaqPLFLh5PomiQVhcvd0fKm6FV3sjVI7I++TYzKcpix8V+B2axSTuHrsYCNNGz8L
BE7pOMbEZVE+SPwYT8G15QdiAKxITbNz1YkxB9yBarpAoRw4THAtpnhZhclAzBj5
0dwwTN+YFwKBgQCWXDZgfTE1Eb/YSxZtvw2RBgywt808UxCzuJeIHprNwh7oCvhv
ZPPM7nLw/C7NwEa3UAZmF1Z0XPOyBv2TLPNREYk1pNlWJfCtGQe7H0s/NsJhjzFq
htlelv0Zp2E4+Uqt/GvesRzZaMU9TId8HoYJqNQk1prv1ih09TKFypdyUQKBgHbT
CnED9hz55+6vcjHfbBb3X7sg6JhfE0XlTEqO646ZdTxpuR1j1mc3NQccOGnKjsoR
jTiNZ9JrQNO0WRDf3PJhuNZrJoG1tFgqfxJgovTXapPNtqJoYvWtocQ6rNfbTuHC
nuUCJ0yIylhWDXtWgX/O5hBc/fF0LLykcOGZo067AoGACL/iSs8wNse15sEJ1OdT
SNgL4AnwzyP/wnyIEN57GVhJV9XJCuhlUDhQhn1dRVKmsi3pWMlPldZYgdiZGH6y
9p12cXSJywVIdwszld3OpXhFS+TwMTbAm49qHtvP2TovsPJpEHLXDBEZBo7k1oHU
Uu3UyCB/z8dWkOINHWoi5/0=
-----END PRIVATE KEY-----
"
}




Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads