C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在C中打开SSL证书指纹大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用来自C的OpenSSL生成自签名证书.我的代码主要基于demos / X509文件夹(在OpenSSL中)中的示例演示代码,并且正常工作.

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

谢谢你的建议!

解决方法

您可以使用openssl加密API生成哈希.请参阅 http://www.openssl.org/docs/crypto/EVP_DigestInit.html的openssl加密文档.以下是示例程序.使用您的PEM证书文本替换以下程序中的示例文本.

#include <st@L_618_10@.h>
#include <openssl/evp.h>

main(int argc,char *argv[])
{
    EVP_MD_CTX mdctx;
    const EVP_MD *md;
    char mess1[] = "Test message\n";
    char mess2[] = "Hello World\n";
    unsigned char md_value[EVP_MAX_MD_SIZE];
    int md_len,i;

    OpenSSL_add_all_digests();

    if(!argv[1]) {
       printf("Usage: mdtest digestname\n");
       exit(1);
    }

    md = EVP_get_digestbyname(argv[1]);

    if(!md) {
       printf("UnkNown message digest %s\n",argv[1]);
       exit(1);
    }

    EVP_MD_CTX_init(&mdctX);
    EVP_DigesTinit_ex(&mdctx,md,null);
    EVP_Digestupdate(&mdctx,mess1,strlen(mess1));
    EVP_Digestupdate(&mdctx,mess2,strlen(mess2));
    EVP_DigestFinal_ex(&mdctx,md_value,&md_len);
    EVP_MD_CTX_cleanup(&mdctX);

    printf("Digest is: ");
    for(i = 0; i < md_len; i++) printf("%02x",md_value[i]);
    printf("\n");
}

大佬总结

以上是大佬教程为你收集整理的在C中打开SSL证书指纹全部内容,希望文章能够帮你解决在C中打开SSL证书指纹所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。