openssl_csr_get_public_key

Returns the public key of a CSR

&reftitle.description; ``OpenSSLAsymmetricKey``false```openssl_csr_get_public_key` ``OpenSSLCertificateSigningRequest``string```csr` `bool` `short_names`&true;

`openssl_csr_get_public_key` extracts the public key from `csr` and prepares it for use by other functions.

&reftitle.parameters;

&openssl.param.csr;

`short_names`

- This parameter is ignored

&reftitle.returnvalues;

Returns an `OpenSSLAsymmetricKey` on success, or &false; on error.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | On success, this function returns an `OpenSSLAsymmetricKey` instance now; previously, a &resource; of type `OpenSSL key` was returned.
8.0.0 | `csr` accepts an `OpenSSLCertificateSigningRequest` instance now; previously, a &resource; of type `OpenSSL X.509 CSR` was accepted.

&reftitle.examples;

### openssl_csr_get_public_key() example

    <?php
    $subject = array(
        "commonName" => "example.com",
    );
    $private_key = openssl_pkey_new(array(
        "private_key_bits" => 2048,
        "private_key_type" => OPENSSL_KEYTYPE_RSA,
    ));
    $csr = openssl_csr_new($subject, $private_key, array('digest_alg' => 'sha256') );
    $public_key = openssl_csr_get_public_key($csr);
    $info = openssl_pkey_get_details($public_key);
    echo $info['key'];
    ?>

&reftitle.seealso;

- `openssl_csr_get_subject`
- `openssl_csr_new`
- `openssl_pkey_get_details`
- `openssl_pkey_export_to_file`
- `openssl_pkey_export`