PHP - Fonction openssl_pkey_get_public ()

Définition et utilisation

le openssl_pkey_get_public() La fonction vous renverra la clé publique.

La description

La fonction openssl_pkey_get_public () retourne la clé publique du certificat donné afin qu'elle puisse être utilisée avec d'autres fonctions.

Syntaxe

openssl_pkey_get_public ( mixed $certificate ) : resource

Paramètres

Sr. Non Paramètre La description
1

certificate

Vous pouvez utiliser les certificats suivants:

1. Une ressource de certificat X.509

2. Clé publique du fichier au format file: //path/to/file.pem.

3. Une clé publique au format PEM.

Valeurs de retour

La fonction PHP openssl_pkey_get_public () renvoie un identifiant de ressource positif s'il n'y a pas d'erreur. Il renverra false s'il échoue.

Version PHP

Cette fonction fonctionnera à partir de la version PHP supérieure à 5.0.0.

Exemple 1

Fonctionnement de openssl_pkey_get_public () avec certificat X.509 -

<?php
   $dn = array(
      "countryName" => "IN",
      "stateOrProvinceName" => "Karnataka",
      "localityName" => "test1",
      "organizationName" => "test2",
      "organizationalUnitName" => "test3",
      "commonName" => "www.test.com",
      "emailAddress" => "[email protected]"
   );

   // Generate a new private /public key pair
   $privkey = openssl_pkey_new();

   // Generate a certificate
   $csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha256'));
   $res_cert = openssl_csr_sign($csr, null, $privkey, 365);
   openssl_x509_export($res_cert, $x_509_certificate);
   echo $res_pubkey = openssl_pkey_get_public($x_509_certificate);
?>

Cela produira le résultat suivant -

Resource id #5

Exemple 2

Fonctionnement de openssl_pkey_get_public () en utilisant le fichier .pem -

<?php
   $dn = array(
      "countryName" => "IN",
      "stateOrProvinceName" => "Karnataka",
      "localityName" => "test1",
      "organizationName" => "test2",
      "organizationalUnitName" => "test3",
      "commonName" => "www.test.com",
      "emailAddress" => "[email protected]"
   );

   // Generate a new private /public key pair
   $privkey = openssl_pkey_new();

   // Generate a certificate
   $csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha256'));
   $res_cert = openssl_csr_sign($csr, null, $privkey, 365);
   openssl_x509_export_to_file($res_cert, 'C:/xampp/htdocs/modules/openssl/x_509.pem');
   echo $res_pubkey = openssl_pkey_get_public(file_get_contents('C:/xampp/htdocs/modules/openssl/x_509.pem'));
?>

Cela produira le résultat suivant -

Resource id #7