Open In App

PHP openssl_pkey_new() Function

The openssl_pkey_new() function is an inbuilt function in PHP cryptography extension that is used to generate a new private/public key pair using the OpenSSL library.

Syntax:



openssl_pkey_new(?array $options = null): OpenSSLAsymmetricKey|false

Parameters: This function accepts one parameter which is described below.

Return Values: The return value of openssl_pkey_new() is a new OpenSSL key pair resource that can be used with other OpenSSL functions. This resource represents both the private and public key components of the generated key pair. If it fails, it will return false.



Example 1: The following program demonstrates the openssl_pkey_new() function.




<?php
$config = [
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
];
  
$keypair = openssl_pkey_new($config);
  
openssl_pkey_export($keypair, $private_key);
  
$public_key = openssl_pkey_get_details($keypair);
$public_key = $public_key["key"];
  
echo "Private key: " . $private_key . "\n";
echo "Public key: " . $public_key . "\n";
?>

Output:

Private key: -----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0...
...
...o9NsYUeNhM2eTDd5KnyQA==
-----END PRIVATE KEY-----
Public key: -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQE...
...
...JmQQIDAQABDGSFdgKHJhgER
-----END PUBLIC KEY-----

Example 2: The following program demonstrates the openssl_pkey_new() function.




<?php
$config = [
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
];
  
$keypair = openssl_pkey_new($config);
  
if ($keypair) {
    openssl_pkey_export($keypair, $private_key);
    if ($private_key) {
        echo "Private key successfully exported\n";
    } else {
        echo "Error exporting private key\n";
    }
} else {
    echo "Error generating key pair\n";
}
?>

Output:

Private key successfully exported

Reference: https://www.php.net/manual/en/function.openssl-pkey-new.php


Article Tags :