Sample code for 30+ languages & platforms
VB.NET

Get Public Key from CSR

See more CSR Examples

Demonstrates how to get the public key from a CSR.

Chilkat VB.NET Downloads

VB.NET
Dim success As Boolean = False

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

Dim pem As New Chilkat.Pem

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


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

Dim asn As New Chilkat.Asn
success = asn.LoadEncoded(strBase64,"base64")
If (success <> True) Then
    Debug.WriteLine(asn.LastErrorText)
    Exit Sub
End If


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

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

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

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

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

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


' Show the public key as PEM.
Dim preferPkcs1 As Boolean = True
Debug.WriteLine(pubkey.GetPem(preferPkcs1))