我有一个生成的证书,但我希望能够从证书中提取信息,例如国家,有效性,公钥等。我必须将从证书中获得的这些信息与我在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);
}
但我要的是唯一的信息某些部分。如何做呢?
感谢
EVP_PKEY * X509_get_pubkey(X509 * x);从这个EVP_PKEY如何将它变成EC_KEY,以便我可以在我的情况下验证签名。非常感谢您的快速回答。 – mmm
已解决的问题已使用:EC_KEY * EVP_PKEY_get1_EC_KEY(EVP_PKEY * pkey);谢谢:) – mmm