B4X
B4X
Get Public Key from CSR
See more CSR Examples
Demonstrates how to get the public key from a CSR.Chilkat B4X Downloads
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 ChilkatPem
pem.Initialize
' 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
Log(pem.LastErrorText)
Return
End If
Dim strBase64 As String = pem.GetEncodedItem("csr", "", "base64", 0)
Dim asn As ChilkatAsn
asn.Initialize
success = asn.LoadEncoded(strBase64, "base64")
If success <> True Then
Log(asn.LastErrorText)
Return
End If
' Convert the ASN.1 to XML.
Dim xml As ChilkatXml
xml.Initialize
success = xml.LoadXml(asn.AsnToXml)
Log(xml.GetXml)
Log("----")
Dim strModulusHex As String = xml.GetChildContent("bits")
Log("strModulusHex = " & strModulusHex)
Log("----")
' We need the modulus as base64.
Dim bd As ChilkatBinData
bd.Initialize
bd.AppendEncoded(strModulusHex, "hex")
Dim modulus64 As String = bd.GetEncoded("base64")
Log("modulus64 = " & modulus64)
Log("----")
' Build the XML for the public key.
Dim xmlPubKey As ChilkatXml
xmlPubKey.Initialize
xmlPubKey.Tag = "RSAPublicKey"
xmlPubKey.UpdateChildContent("Modulus", modulus64)
' The RSA exponent will always be decimal 65537 (base64 = AQAB)
xmlPubKey.UpdateChildContent("Exponent", "AQAB")
Log("RSA public key as XML:")
Log(xmlPubKey.GetXml)
Log("----")
' Load the XML into a Chilkat public key object.
Dim pubkey As ChilkatPublicKey
pubkey.Initialize
success = pubkey.LoadFromString(xmlPubKey.GetXml)
If success <> True Then
Log(pubkey.LastErrorText)
Return
End If
' Show the public key as PEM.
Dim preferPkcs1 As Boolean = True
Log(pubkey.GetPem(preferPkcs1))