我有一個生成的證書,但我希望能夠從證書中提取信息,例如國家,有效性,公鑰等。我必須將從證書中獲得的這些信息與我在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