EVP_PKEY_VERIFY - Online Linux Manual PageSection : 3ossl
Updated : 2022-03-15
Source : 3.0.2
Note : OpenSSL
NAMEEVP_PKEY_verify_init, EVP_PKEY_verify_init_ex, EVP_PKEY_verify − signature verification using a public key algorithm
SYNOPSIS #include <openssl/evp.h>
int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx);
int EVP_PKEY_verify_init_ex(EVP_PKEY_CTX *ctx, const OSSL_PARAM params[]);
int EVP_PKEY_verify(EVP_PKEY_CTX *ctx,
const unsigned char *sig, size_t siglen,
const unsigned char *tbs, size_t tbslen);
DESCRIPTIONEVP_PKEY_verify_init() initializes a public key algorithm context ctx for signing using the algorithm given when the context was created using EVP_PKEY_CTX_new (3) or variants thereof. The algorithm is used to fetch a EVP_SIGNATURE method implicitly, see ‟Implicit fetch” in provider (7) for more information about implicit fetches. EVP_PKEY_verify_init_ex() is the same as EVP_PKEY_verify_init() but additionally sets the passed parameters params on the context before returning. The EVP_PKEY_verify() function performs a public key verification operation using ctx. The signature is specified using the sig and siglen parameters. The verified data (i.e. the data believed originally signed) is specified using the tbs and tbslen parameters.
NOTESAfter the call to EVP_PKEY_verify_init() algorithm specific control operations can be performed to set any appropriate parameters for the operation. The function EVP_PKEY_verify() can be called more than once on the same context if several operations are performed using the same parameters.
RETURN VALUESEVP_PKEY_verify_init() and EVP_PKEY_verify() return 1 if the verification was successful and 0 if it failed. Unlike other functions the return value 0 from EVP_PKEY_verify() only indicates that the signature did not verify successfully (that is tbs did not match the original data or the signature was of invalid form) it is not an indication of a more serious error. A negative value indicates an error other that signature verification failure. In particular a return value of −2 indicates the operation is not supported by the public key algorithm.
EXAMPLESVerify signature using PKCS#1 and SHA256 digest: #include <openssl/evp.h>
#include <openssl/rsa.h>
EVP_PKEY_CTX *ctx;
unsigned char *md, *sig;
size_t mdlen, siglen;
EVP_PKEY *verify_key;
/*
* NB: assumes verify_key, sig, siglen md and mdlen are already set up
* and that verify_key is an RSA public key
*/
ctx = EVP_PKEY_CTX_new(verify_key, NULL /* no engine */);
if (!ctx)
/* Error occurred */
if (EVP_PKEY_verify_init(ctx) <= 0)
/* Error */
if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0)
/* Error */
if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0)
/* Error */
/* Perform operation */
ret = EVP_PKEY_verify(ctx, sig, siglen, md, mdlen);
/*
* ret == 1 indicates success, 0 verify failure and < 0 for some
* other error.
*/
SEE ALSOEVP_PKEY_CTX_new (3), EVP_PKEY_encrypt (3), EVP_PKEY_decrypt (3), EVP_PKEY_sign (3), EVP_PKEY_verify_recover (3), EVP_PKEY_derive (3)
HISTORYThe EVP_PKEY_verify_init() and EVP_PKEY_verify() functions were added in OpenSSL 1.0.0. The EVP_PKEY_verify_init_ex() function was added in OpenSSL 3.0.
COPYRIGHTCopyright 2006−2021 The OpenSSL Project Authors. All Rights Reserved. Licensed under the Apache License 2.0 (the ‟License”). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>. 0
Johanes Gumabo
Data Size : 12,288 byte
man-EVP_PKEY_verify_init_ex.3osslBuild : 2024-12-05, 20:55 :
Visitor Screen : x
Visitor Counter ( page / site ) : 3 / 183,992
Visitor ID : :
Visitor IP : 3.149.240.101 :
Visitor Provider : AMAZON-02 :
Provider Position ( lat x lon ) : 39.962500 x -83.006100 : x
Provider Accuracy Radius ( km ) : 1000 :
Provider City : Columbus :
Provider Province : Ohio , : ,
Provider Country : United States :
Provider Continent : North America :
Visitor Recorder : Version :
Visitor Recorder : Library :
Online Linux Manual Page : Version : Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page : Library : lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page : Library : lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base : Version : Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base : Library : lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36
Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.
ERROR : Need New Coding : (parse_manual_page_|249|E___VP_PKEY_verify.3ossl|36/37|el══─{─══.|.el══─{─══. ds -- \|\(em\|
) (htmlprn|149|E___VP_PKEY_verify.3ossl|36/37|.el══─{─══. ds -- — |.el══─{─══. ds -- \|\(em\|
) (parse_manual_page_|249|E___VP_PKEY_verify.3ossl|43|br══─}─══|'br══─}─══
) (htmlprn|149|E___VP_PKEY_verify.3ossl|43|'br══─}─══ |'br══─}─══
)