Openssl C ++获得到期日期

时间:2012-07-27 07:08:51

标签: c++ openssl x509certificate

我应该使用什么功能来获得x509证书的到期日期?我将首先检查证书的有效性。如果它已过期,我需要获得证书的失效日期。

2 个答案:

答案 0 :(得分:6)

我认为你应该使用它。

#define     X509_get_notBefore(x) ((x)->cert_info->validity->notBefore)
#define     X509_get_notAfter(x) ((x)->cert_info->validity->notAfter)

以此为例。示例使用此宏。

http://www.openssl.org/docs/crypto/X509_STORE_CTX_set_verify_cb.html

答案 1 :(得分:5)

编辑:在使用X509_get_notAfter和X509_get_notBefore后,您应该按照“Forever”之前的回答进行以下操作。

要转换ASN1_TIME,您可以使用asn1.h中声明的ASN1_TIME_print()例程。

这可以胜任:

BIO *bio;
int write = 0;
bio = BIO_new(BIO_s_mem());
if (bio) {
    if (ASN1_TIME_print(bio, tm))
        write = BIO_read(bio, buf, len-1);
    BIO_free(bio);
}
buf[write]='\0';
return write;