我应该使用什么功能来获得x509证书的到期日期?我将首先检查证书的有效性。如果它已过期,我需要获得证书的失效日期。
答案 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;