openssl_verifyVerify signature
&reftitle.description;
intfalseopenssl_verifystringdatastringsignatureOpenSSLAsymmetricKeyOpenSSLCertificatearraystringpublic_keystringintalgorithmOPENSSL_ALGO_SHA1openssl_verify verifies that the
signature is correct for the specified
data using the public key associated with
public_key. This must be the public key
corresponding to the private key used for signing.
&reftitle.parameters;
data
The string of data used to generate the signature previously
signature
A raw binary string, generated by openssl_sign or similar means
public_keyOpenSSLAsymmetricKey - a key, returned by openssl_get_publickeystring - a PEM formatted key, example, "-----BEGIN PUBLIC KEY-----
MIIBCgK..."
algorithmint - one of these Signature Algorithms.
string - a valid string returned by openssl_get_md_methods example, "sha1WithRSAEncryption" or "sha512".
&reftitle.returnvalues;
Returns 1 if the signature is correct, 0 if it is incorrect, and
-1 or &false; on error.
&reftitle.changelog;
&Version;&Description;8.0.0public_key accepts an OpenSSLAsymmetricKey
or OpenSSLCertificate instance now;
previously, a &resource; of type OpenSSL key or OpenSSL X.509
was accepted.
&reftitle.examples;
openssl_verify example
]]>
openssl_verify example
2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$details = openssl_pkey_get_details($private_key_res);
$public_key_res = openssl_pkey_get_public($details['key']);
//create signature
openssl_sign($data, $signature, $private_key_res, "sha256WithRSAEncryption");
//verify signature
$ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA256);
if ($ok == 1) {
echo "valid";
} elseif ($ok == 0) {
echo "invalid";
} else {
echo "error: ".openssl_error_string();
}
?>
]]>
&reftitle.seealso;
openssl_sign