CryptoSys PKI examples VB6 to VB.NET

X509_CheckCertInCRL

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]

[HOME]   [NEXT: X509_GetCertFromP7Chain...]

Copyright © 2010-20 D.I. Management Services Pty Ltd. All rights reserved.