openssl_verifyVerify signature
&reftitle.description;
intopenssl_verifystringdatastringsignaturemixedpub_key_idmixedsignature_algOPENSSL_ALGO_SHA1openssl_verify verifies that the
signature is correct for the specified
data using the public key associated with
pub_key_id. 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
pub_key_idresource - a key, returned by openssl_get_publickeystring - a PEM formatted key, example, "-----BEGIN PUBLIC KEY-----
MIIBCgK..."
signature_algint - 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 on error.
&reftitle.changelog;
&Version;&Description;5.2.0
The signature_alg parameter was added.
&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, "sha1WithRSAEncryption");
//verify signature
$ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA1);
if ($ok == 1) {
echo "valid";
} elseif ($ok == 0) {
echo "invalid";
} else {
echo "error: ".openssl_error_string();
}
?>
]]>
&reftitle.seealso;
openssl_sign