Sample code for 30+ languages & platforms
B4X

Binary Certificate Extension Data

See more Certificates Examples

Demonstrates how to binary certificate extension data by OID.

The GetExtensionBd method is added in Chilkat v9.5.0.96.

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

Dim cert As ChilkatCert
cert.Initialize("cert")

success = cert.LoadFromFile("qa_data/certs/testCert.cer")
If success = False Then
    Log(cert.LastErrorText)
    Return
End If


Dim bd As ChilkatBinData
bd.Initialize

'  The particular certificate in this test contains the following extensions

Dim oid As String = "1.2.250.1.71.1.2.5"
success = cert.GetExtensionBd(oid, bd)
If success = True Then
    Log(oid & ": " & bd.GetEncoded("hex_lower"))
End If


oid = "1.2.250.1.71.1.2.2"
success = cert.GetExtensionBd(oid, bd)
If success = True Then
    Log(oid & ": " & bd.GetEncoded("hex_lower"))
End If


oid = "1.2.250.1.71.1.2.3"
success = cert.GetExtensionBd(oid, bd)
If success = True Then
    Log(oid & ": " & bd.GetEncoded("hex_lower"))
End If


oid = "1.2.250.1.71.1.2.7"
success = cert.GetExtensionBd(oid, bd)
If success = True Then
    Log(oid & ": " & bd.GetEncoded("hex_lower"))
End If


oid = "1.2.250.1.71.4.2.5"
success = cert.GetExtensionBd(oid, bd)
If success = True Then
    Log(oid & ": " & bd.GetEncoded("hex_lower"))
End If


'  Sample output:
'  1.2.250.1.71.1.2.5: 040180
'  1.2.250.1.71.1.2.2: 020100
'  1.2.250.1.71.1.2.3: 1315383032353030303030312f32393030303539313432
'  1.2.250.1.71.1.2.7: 02010a
'  1.2.250.1.71.4.2.5: 30060c04534d3236

'  The above binary values are actually ASN.1
'  You can get the ASN.1 decoed by calling GetExtensionAsXml to get it in XML format,
'  and then you extract the values from the XML.

oid = "1.2.250.1.71.1.2.5"
Dim strXml As String = cert.GetExtensionAsXml(oid)
If cert.LastMethodSuccess = True Then
    Log(oid & ": " & strXml)
End If


oid = "1.2.250.1.71.1.2.2"
strXml = cert.GetExtensionAsXml(oid)
If cert.LastMethodSuccess = True Then
    Log(oid & ": " & strXml)
End If


oid = "1.2.250.1.71.1.2.3"
strXml = cert.GetExtensionAsXml(oid)
If cert.LastMethodSuccess = True Then
    Log(oid & ": " & strXml)
End If


oid = "1.2.250.1.71.1.2.7"
strXml = cert.GetExtensionAsXml(oid)
If cert.LastMethodSuccess = True Then
    Log(oid & ": " & strXml)
End If


oid = "1.2.250.1.71.4.2.5"
strXml = cert.GetExtensionAsXml(oid)
If cert.LastMethodSuccess = True Then
    Log(oid & ": " & strXml)
End If


'  Sample output:
'  1.2.250.1.71.1.2.5: <octets>gA==</octets>
'  1.2.250.1.71.1.2.2: <int>00</int>
'  1.2.250.1.71.1.2.3: <printable>8025000001/2900059142</printable>
'  1.2.250.1.71.1.2.7: <int>0A</int>
'  1.2.250.1.71.4.2.5: <sequence><utf8>SM26</utf8></sequence>

'  "gA==" is the base64 encoded byte values
'  "0A" is hex for decimal 10