openssl_spki_new

(PHP 5 >= 5.6.0, PHP 7)

openssl_spki_newGenerate a new signed public key and challenge

说明

string openssl_spki_new ( resource &$privkey , string &$challenge [, int $algorithm = 0 ] )

Generates a signed public key and challenge using specified hashing algorithm

参数

privkey

privkey should be set to a private key that was previously generated by openssl_pkey_new() (or otherwise obtained from the other openssl_pkey family of functions). The corresponding public portion of the key will be used to sign the CSR.

challenge

The challenge associated to associate with the SPKAC

algorithm

The digest algorithm. See openssl_get_md_method().

返回值

Returns a signed public key and challenge string or NULL on failure.

错误/异常

Emits an E_WARNING level error if an unknown signature algorithm is passed via the algorithm parameter.

范例

Example #1 openssl_spki_new() example

Generate a new SPKAC with the default digest (MD5)

<?php
$pkey 
openssl_pkey_new('secret password');
$spkac openssl_spki_new($pkey'testing');

if (
$spkac !== NULL) {
    echo 
$spkac;
} else {
    echo 
"SPKAC generation failed";
}
?>

以上例程的输出类似于:

MIICRzCCAS8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDM3V3sS4o4
mB9dczziRnjGAmSp+JwPrHoYMAFGvDNmZGyiWfU586X4BKs++BAj7e/FsAfno0Hd
hN9FwpCNFSox30L03nQvLYJE7f/WqigwBeMRT7Op/xvFks4sT70xP2HRYv4KqP9a
WRcKU6cFH8VxhFhqM2txEIxZKdFLaL28yT7bEDmcglf4JLDdgNMb9rET1dkgtKE6
dOaJHPGjf1uvnOH4YwkQr7n4sLUR3Kdbh0ZJAFuQVDZulo+LLzxBBkqJJcB6FhF+
oXCdHTKZnqAhpWDz+NXYytAmevab6IYm5TWPWsJUv1YKJA5lg2mXbbloIZlN9Mgc
i9fi03bdw+crAgMBAAEWB3Rlc3RpbmcwDQYJKoZIhvcNAQEEBQADggEBALyUvP/o
pPSoWBlorFyZ2RnGwKf9qMpE0q2IJP7G3oDR4LyK/m933DUiZ+YnqThrH/CWb4Ek
y5I3OCyl3S4wCuU1ibZZwDVwYShr5ELp0J9PEf7qMQZOhNsizoC7k+Czb2xB6hYW
sKfsfTKm3cXBtH3fdgc/Z1Z7VSWnAzYo38snqm72NTf5yFRnrQdphNNXi+kn1zHA
lxXRyFDXHOcYsOnwAWfyXFA4QDHQ0ezz0UoCY8gJXovcZb4GRYqOLUAsF2HcNboy
29WN8VqE29sL9QxVZFlwMcqyoLcNnyw38GvNvAGqSvzzbnEFP2MAQXJVe0H0hdp/
MML5G2iNVgNozAo=

参见

User Contributed Notes

julian at NOSPAM dot developer-heaven dot de 18-Jun-2016 02:50
The usage of openssl_pkey_new() in the example above is wrong.
openssl_pkey_new() requires an array as first parameter

Working example for openssl_pkey_new():
http://php.net/manual/de/function.openssl-pkey-new.php#111769