c - 使用 openssl 以编程方式提取 pem 证书信息

标签 c certificate openssl x509 pem

使用 openssl 命令行可以以人类可读的方式提取 .pem 证书中包含的所有信息;即:

openssl x509 -noout -in <MyCertificate>.pem  -text

使用 openssl API 提取此信息的合适步骤是什么?

最佳答案

X509_print_ex 系列函数就是您的答案。

#include <openssl/x509.h>
#include <openssl/pem.h>
#include <openssl/bio.h>

int main(int argc, char **argv)
{
    X509 *x509;
    BIO *i = BIO_new(BIO_s_file());
    BIO *o = BIO_new_fp(stdout,BIO_NOCLOSE);

    if((argc < 2) ||
       (BIO_read_filename(i, argv[1]) <= 0) ||
       ((x509 = PEM_read_bio_X509_AUX(i, NULL, NULL, NULL)) == NULL)) {
        return -1;
    }

    X509_print_ex(o, x509, XN_FLAG_COMPAT, X509_FLAG_COMPAT);
}

关于c - 使用 openssl 以编程方式提取 pem 证书信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6509189/

相关文章:

c - 如何在单个CPU的多个CPU核心而不是多个CPU上设置亲和性?

c - 读(...): Will read remember the change?

php - 将我的加密库从 Mcrypt 升级到 OpenSSL

Openssl x509v3 扩展 key 用法

java - 将 C 转换为 Java - 指针查询

使用 C 中的 realloc 更改内存地址

.net - 您如何从X509Certificate2解析主题备用名称?

ssl - 更新 SSL 证书颁发者值

VeriSign 签名证书中的 Java SSLHandshakeException

security - 用静态证书解密openssl数据包