我有一个 X509 格式的证书。这是一个函数中的输入参数。 我想做的是验证证书的有效性。 如何做呢?
X509_verify_cert();
我找到了这个函数,但是它不接受 X509* 证书,它接受 X509_store 而我只有一个 X509。
谢谢 最好的问候。
最佳答案
我在这里只是为了发布我在上述评论中找到的答案。
我没有证书链,所以在我所做的工作中,我只有一个由我以编程方式生成的证书。我想检查它的有效性,所以我创建了以下函数,它在其他地方检查证书本身以验证它的有效性。
void check_certificate_validaty(X509* certificate)
{
int status;
X509_STORE_CTX *ctx;
ctx = X509_STORE_CTX_new();
X509_STORE *store = X509_STORE_new();
X509_STORE_add_cert(store, certificate);
X509_STORE_CTX_init(ctx, store, certificate, NULL);
status = X509_verify_cert(ctx);
if(status == 1)
{
printf("Certificate verified ok\n");
}else
{
printf("%s\n", X509_verify_cert_error_string(ctx->error));
}
}
希望这对某人有帮助:)
关于c - 如何在 C 中验证 X509 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15836484/