首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenSSL: EVP_DigestFinal_ex的输出大小可以大于摘要大小吗?

问OpenSSL: EVP_DigestFinal_ex的输出大小可以大于摘要大小吗?
EN

Stack Overflow用户
提问于 2015-08-25 14:15:46
回答 1查看 1.3K关注 0票数 0

例如有以下文档:

"EVP_DigestFinal_ex()从ctx检索摘要值,并将其放在md中。如果s参数不为空,则写入的数据字节数(即摘要的长度)将写入整数s,最多写入EVP_MAX_MD_SIZE字节。“

签名:

代码语言:javascript
复制
int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s);

是否存在摘要长度大于摘要的输出大小但小于EVP_MAX_MD_SIZE的情况。也就是说,对于SHA-1摘要,我得到一个大于20字节的输出?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-26 10:53:44

来自OpenSSL crypto/evp/digest.c的相关源代码

代码语言:javascript
复制
    OPENSSL_assert(ctx->digest->md_size <= EVP_MAX_MD_SIZE);
    ret = ctx->digest->final(ctx, md);
    if (size != NULL)
       *size = ctx->digest->md_size;

其中大小是您想要的输出摘要大小,摘要是一个const结构,在SHA1的情况下,它是在sha1.c中定义的。

代码语言:javascript
复制
static const EVP_MD sha1_md = {
     NID_sha1,
     NID_sha1WithRSAEncryption,
     SHA_DIGEST_LENGTH

md_size是这个结构的第三个成员,所以总是SHA_DIGEST_LENGTH,它是等于 20。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32206442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档