Checks whether an X.509 certificate has been revoked in a Certificate Revocation List (CRL).
VB6/VBA
Debug.Print "Testing X509_CheckCertInCRL ..." Dim nRet As Long Dim strCrlFile As String Dim strCertFile As String Dim strDate As String ' Use test CRL and certs from RFC3280 strCrlFile = "rfc3280bis_CRL.crl" ' This cert has not been revoked. strCertFile = "rfc3280bis_cert1.cer" Debug.Print "CrlFile=" & strCrlFile Debug.Print "CertFile=" & strCertFile nRet = X509_CheckCertInCRL(strCertFile, strCrlFile, "", "", 0) Debug.Print "X509_CheckCertInCRL returns " & nRet If nRet = PKI_X509_REVOKED Then Debug.Print "CERT HAS BEEN REVOKED" ElseIf nRet = 0 Then Debug.Print "Cert has not been revoked" Else Debug.Print "ERROR: " & pkiErrorLookup(nRet) & ": " & pkiGetLastError() End If ' This cert has been revoked. strCertFile = "rfc3280bis_cert2.cer" Debug.Print "CrlFile=" & strCrlFile Debug.Print "CertFile=" & strCertFile nRet = X509_CheckCertInCRL(strCertFile, strCrlFile, "", "", 0) Debug.Print "X509_CheckCertInCRL returns " & nRet If nRet = PKI_X509_REVOKED Then Debug.Print "CERT HAS BEEN REVOKED" ElseIf nRet = 0 Then Debug.Print "Cert has not been revoked" Else Debug.Print "ERROR: " & pkiErrorLookup(nRet) & ": " & pkiGetLastError() End If ' But the same cert was not revoked as at 15:00 GMT on 19 November 2004 strCertFile = "rfc3280bis_cert2.cer" strDate = "2004-11-19T15:00Z" Debug.Print "CrlFile=" & strCrlFile Debug.Print "CertFile=" & strCertFile Debug.Print "Date=" & strDate nRet = X509_CheckCertInCRL(strCertFile, strCrlFile, "", strDate, 0) Debug.Print "X509_CheckCertInCRL(" & strDate & ") returns " & nRet If nRet = PKI_X509_REVOKED Then Debug.Print "CERT HAS BEEN REVOKED" ElseIf nRet = 0 Then Debug.Print "Cert has not been revoked" Else Debug.Print "ERROR: " & pkiErrorLookup(nRet) & ": " & pkiGetLastError() End If
Output
Testing X509_CheckCertInCRL ... CrlFile=rfc3280bis_CRL.crl CertFile=rfc3280bis_cert1.cer X509_CheckCertInCRL returns 0 Cert has not been revoked CrlFile=rfc3280bis_CRL.crl CertFile=rfc3280bis_cert2.cer X509_CheckCertInCRL returns 1 CERT HAS BEEN REVOKED CrlFile=rfc3280bis_CRL.crl CertFile=rfc3280bis_cert2.cer Date=2004-11-19T15:00Z X509_CheckCertInCRL(2004-11-19T15:00Z) returns 0 Cert has not been revoked
VB.NET
Console.WriteLine("Testing X509_CheckCertInCRL ...")
Dim nRet As Integer
Dim strCrlFile As String
Dim strCertFile As String
Dim strDate As String
' Use test CRL and certs from RFC3280
strCrlFile = "rfc3280bis_CRL.crl"
' This cert has not been revoked.
strCertFile = "rfc3280bis_cert1.cer"
Console.WriteLine("CrlFile=" & strCrlFile)
Console.WriteLine("CertFile=" & strCertFile)
nRet = X509.CheckCertInCRL(strCertFile, strCrlFile, "", "")
Console.WriteLine("X509_CheckCertInCRL returns " & nRet)
If nRet = X509.Revoked Then
Console.WriteLine("CERT HAS BEEN REVOKED")
ElseIf nRet = 0 Then
Console.WriteLine("Cert has not been revoked")
Else
Console.WriteLine("ERROR: " & General.ErrorCode & ": " & General.LastError())
End If
' This cert has been revoked.
strCertFile = "rfc3280bis_cert2.cer"
Console.WriteLine("CrlFile=" & strCrlFile)
Console.WriteLine("CertFile=" & strCertFile)
nRet = X509.CheckCertInCRL(strCertFile, strCrlFile, "", "")
Console.WriteLine("X509_CheckCertInCRL returns " & nRet)
If nRet = X509.Revoked Then
Console.WriteLine("CERT HAS BEEN REVOKED")
ElseIf nRet = 0 Then
Console.WriteLine("Cert has not been revoked")
Else
Console.WriteLine("ERROR: " & General.ErrorCode & ": " & General.LastError())
End If
' But the same cert was not revoked as at 15:00 GMT on 19 November 2004
strCertFile = "rfc3280bis_cert2.cer"
strDate = "2004-11-19T15:00Z"
Console.WriteLine("CrlFile=" & strCrlFile)
Console.WriteLine("CertFile=" & strCertFile)
Console.WriteLine("Date=" & strDate)
nRet = X509.CheckCertInCRL(strCertFile, strCrlFile, "", strDate)
Console.WriteLine("X509_CheckCertInCRL(" & strDate & ") returns " & nRet)
If nRet = X509.Revoked Then
Console.WriteLine("CERT HAS BEEN REVOKED")
ElseIf nRet = 0 Then
Console.WriteLine("Cert has not been revoked")
Else
Console.WriteLine("ERROR: " & General.ErrorCode & ": " & General.LastError())
End If
[Contents]