openssl之EVP系列之11---EVP_Verify系列函数介绍
---根据openssl doc/crypto/EVP_VerifyInit.pod翻译和自己的理解写成
(作者:DragonKing, Mail: wzhah@263.net ,发布于:http://openssl.126.com之openssl专业论坛,版本:openssl-0.9.7)
跟EVP_Sign系列函数一样,EVP_Verify系列函数的前两步(初始化和信息摘要处理)跟信息摘要算法是一样的,因为签名验证的过程就是先对信息进行信息摘要,然后再将发来的摘要信息解密后进行比较的过程,其定义如下(openssl/evp.h):
int EVP_VerifyInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
int EVP_VerifyUpdate(EVP_MD_CTX *ctx, const void *d, unsigned int cnt);
int EVP_VerifyFinal(EVP_MD_CTX *ctx,unsigned char *sigbuf, unsigned int siglen,EVP_PKEY *pkey);
int EVP_VerifyInit(EVP_MD_CTX *ctx, const EVP_MD *type);
【EVP_VerifyInit_ex】
该函数是一个宏定义函数,其实际定义如下:
#define EVP_VerifyInit_ex(a,b,c) EVP_Dig
---根据openssl doc/crypto/EVP_VerifyInit.pod翻译和自己的理解写成
(作者:DragonKing, Mail: wzhah@263.net ,发布于:http://openssl.126.com之openssl专业论坛,版本:openssl-0.9.7)
跟EVP_Sign系列函数一样,EVP_Verify系列函数的前两步(初始化和信息摘要处理)跟信息摘要算法是一样的,因为签名验证的过程就是先对信息进行信息摘要,然后再将发来的摘要信息解密后进行比较的过程,其定义如下(openssl/evp.h):
int EVP_VerifyInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
int EVP_VerifyUpdate(EVP_MD_CTX *ctx, const void *d, unsigned int cnt);
int EVP_VerifyFinal(EVP_MD_CTX *ctx,unsigned char *sigbuf, unsigned int siglen,EVP_PKEY *pkey);
int EVP_VerifyInit(EVP_MD_CTX *ctx, const EVP_MD *type);
【EVP_VerifyInit_ex】
该函数是一个宏定义函数,其实际定义如下:
#define EVP_VerifyInit_ex(a,b,c) EVP_Dig

本文详细介绍了OpenSSL中EVP_Verify系列函数,包括EVP_VerifyInit_ex、EVP_VerifyUpdate和EVP_VerifyFinal。这些函数在签名验证过程中用于信息摘要和公钥验证,涉及了信息摘要算法和公钥加密的结合。通过EVP_VerifyInit_ex初始化,EVP_VerifyUpdate处理数据,EVP_VerifyFinal进行签名验证。成功验证返回1,失败返回0。注意使用后需要调用EVP_MD_CTX_cleanup释放内存,防止内存泄漏。

5266

被折叠的 条评论
为什么被折叠?



