我有一个生成的证书,但我希望能够从证书中提取信息,例如国家、有效性、公钥等。我必须将从证书中检索到的信息与我存储在 C 程序中的其他信息进行比较。
我知道如果我使用这样的功能,它会打印我的证书信息:
void print_certificate(const char* cert)
{
X509 *x509 = NULL;
BIO *i = BIO_new(BIO_s_file());
BIO *o = BIO_new_fp(stdout,BIO_NOCLOSE);
if((BIO_read_filename(i, cert) <= 0) ||
((x509 = PEM_read_bio_X509_AUX(i, NULL, NULL, NULL)) == NULL)) {
printf("Bad certificate, unable to read\n");
}
X509_print_ex(o, x509, XN_FLAG_COMPAT, X509_FLAG_COMPAT);
if(x509)
X509_free(x509);
}
但我想要的只是这些信息的一部分。怎么做到呢?
谢谢