Sample code for 30+ languages & platforms
Visual Basic 6.0

Get Public Key from CSR

See more CSR Examples

Demonstrates how to get the public key from a CSR.

Chilkat Visual Basic 6.0 Downloads

Visual Basic 6.0
Dim success As Long
success = 0

' This requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.

Dim pem As New ChilkatPem

' No password is required.  Pass an empty password string..
Dim noPassword As String
noPassword = ""
success = pem.LoadPemFile("qa_data/csr/csr2.pem",noPassword)
If (success <> 1) Then
    Debug.Print pem.LastErrorText
    Exit Sub
End If

Dim strBase64 As String
strBase64 = pem.GetEncodedItem("csr","","base64",0)

Dim asn As New ChilkatAsn
success = asn.LoadEncoded(strBase64,"base64")
If (success <> 1) Then
    Debug.Print asn.LastErrorText
    Exit Sub
End If

' Convert the ASN.1 to XML.
Dim xml As New ChilkatXml
success = xml.LoadXml(asn.AsnToXml())
Debug.Print xml.GetXml()
Debug.Print "----"

Dim strModulusHex As String
strModulusHex = xml.GetChildContent("bits")
Debug.Print "strModulusHex = " & strModulusHex
Debug.Print "----"

' We need the modulus as base64.
Dim bd As New ChilkatBinData
success = bd.AppendEncoded(strModulusHex,"hex")
Dim modulus64 As String
modulus64 = bd.GetEncoded("base64")
Debug.Print "modulus64 = " & modulus64
Debug.Print "----"

' Build the XML for the public key.
Dim xmlPubKey As New ChilkatXml
xmlPubKey.Tag = "RSAPublicKey"
xmlPubKey.UpdateChildContent "Modulus",modulus64
' The RSA exponent will always be decimal 65537 (base64 = AQAB)
xmlPubKey.UpdateChildContent "Exponent","AQAB"

Debug.Print "RSA public key as XML:"
Debug.Print xmlPubKey.GetXml()
Debug.Print "----"

' Load the XML into a Chilkat public key object.
Dim pubkey As New PublicKey
success = pubkey.LoadFromString(xmlPubKey.GetXml())
If (success <> 1) Then
    Debug.Print pubkey.LastErrorText
    Exit Sub
End If

' Show the public key as PEM.
Dim preferPkcs1 As Long
preferPkcs1 = 1
Debug.Print pubkey.GetPem(preferPkcs1)