X509_get0_notBefore和X509_get0_noAfter在这个范围内?

X509_get0_notBefore and X509_get0_noAfter in this scope?

本文关键字:X509 get0 范围内 noAfter notBefore      更新时间:2023-10-16

我正在尝试获取数字证书的到期日期。我正在使用此实验室中的示例代码。http://www.cis.syr.edu/~wedu/seed/Labs_12.04/Crypto/Crypto_PublicKey/

/* We could do all sorts of certificate verification stuff here before
deallocating the certificate. */
int i;
//expir = X509_get0_notBefore(server_cert);
i = X509_cmp_time(X509_get0_notBefore(server_cert), ptime);
i = X509_cmp_time(X509_get0_notAfter(server_cert), ptime);
//printf("expiration date: %d",i);

它一直给我这个错误:

cli.cpp:122:52: error: ‘X509_get0_notBefore’ was not declared in this scope
cli.cpp:123:51: error: ‘X509_get0_notAfter’ was not declared in this scope
make: *** [all] Error 1

这是我正在使用的示例代码中的头文件。

#include <unistd.h>
#include <stdio.h>
#include <memory.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <openssl/crypto.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
#include <openssl/ssl.h>
#include <openssl/err.h>

对于您的OpenSSL版本,您应该这样做

i = X509_cmp_time(server_cert->validity->notBefore, ptime);
i = X509_cmp_time(server_cert->validity->notAfter, ptime);