在C中打开SSL证书指纹

Jam*_*ieH 3 openssl signing certificate fingerprint

我正在使用来自C的OpenSSL生成自签名证书.我的代码主要基于demos/X509文件夹(在OpenSSL中)中的示例演示代码,并且正常工作.

我需要从我的C代码生成我的证书(和X509结构)的指纹以供以后验证,但OpenSSL文档有点缺乏,我还没有设法解决如何做到这一点.我一直在寻找信息,我找到的就是如何使用命令行中的OpenSSL来完成它.

谢谢你的建议!

Chr*_*ris 6

当您已经拥有X509结构时,可以在X509结构上使用X509_digest(...),如/sf/answers/682469721/中所述

const EVP_MD *digest = EVP_get_digestbyname("sha1");
X509_digest(x, digest, buff, &n);
Run Code Online (Sandbox Code Playgroud)

此外,X509结构甚至有一个名为sha1_hash的成员(如果openSSL已经使用SHA支持编译).但是我不知道这个属性是否可以安全使用或者必须采取一些措施.

(很抱歉挖掘这个老话题,但这是谷歌在寻找openssl指纹时的第一次打击.)

  • 你可能需要在调用`EVP_get_digestbyname`之前使用`OpenSSL_add_all_digests()`加载所有摘要 (2认同)