Returns the date and time an X.509 certificate expires.
Public Declare Function X509_CertExpiresOn Lib "diCrPKI.dll"
(ByVal strCertFile As String, ByVal strOutput As String,
ByVal nOutChars As Long, ByVal nOptions As Long) As Long
nRet = X509_CertExpiresOn(strCertFile, strOutput, nOutChars, nOptions)
long __stdcall X509_CertExpiresOn(const char *szCertFile, char *szOutput, long nOutChars, long nOptions);
Returns the number of characters set in szOutput. If nOutChars is zero it returns the maximum number of characters required (currently 20, but don't assume that for future releases). C/C++ users should allocate one extra for the terminating NUL character. If an error occurs, it returns a negative error code.
The time format is in accordance with ISO 8601 and will always be of the form YYYY-MM-DDThh:mm:ssZ. The time is always given as GMT (Greenwich Mean Time, UTC, Zulu Time).
Dim nRet As Long Dim strCertName As String Dim strDateTime As String * 32 strCertName = "AliceRSASignByCarl.cer" ' Change your dir to suit nRet = X509_CertIssuedOn(strCertName, strDateTime, Len(strDateTime), 0) Debug.Print "X509_CertIssuedOn returns " & nRet & " for " & strCertName & ": " & strDateTime nRet = X509_CertExpiresOn(strCertName, strDateTime, Len(strDateTime), 0) Debug.Print "X509_CertExpiresOn returns " & nRet & " for " & strCertName & ": " & strDateTime
Should result in (in all locales):
X509_CertIssuedOn returns 20 for AliceRSASignByCarl.cer: 1999-09-19T01:08:47Z X509_CertExpiresOn returns 20 for AliceRSASignByCarl.cer: 2039-12-31T23:59:59Z
X509_CertIssuedOn X509_CertIsValidNow X509_QueryCert