Sample code for 30+ languages & platforms
Classic ASP

Get Public Key from CSR

See more CSR Examples

Demonstrates how to get the public key from a CSR.

Chilkat Classic ASP Downloads

Classic ASP
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
success = 0

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

set pem = Server.CreateObject("Chilkat.Pem")

' No password is required.  Pass an empty password string..
noPassword = ""
success = pem.LoadPemFile("qa_data/csr/csr2.pem",noPassword)
If (success <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( pem.LastErrorText) & "</pre>"
    Response.End
End If

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

set asn = Server.CreateObject("Chilkat.Asn")
success = asn.LoadEncoded(strBase64,"base64")
If (success <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( asn.LastErrorText) & "</pre>"
    Response.End
End If

' Convert the ASN.1 to XML.
set xml = Server.CreateObject("Chilkat.Xml")
success = xml.LoadXml(asn.AsnToXml())
Response.Write "<pre>" & Server.HTMLEncode( xml.GetXml()) & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "----") & "</pre>"

strModulusHex = xml.GetChildContent("bits")
Response.Write "<pre>" & Server.HTMLEncode( "strModulusHex = " & strModulusHex) & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "----") & "</pre>"

' We need the modulus as base64.
set bd = Server.CreateObject("Chilkat.BinData")
success = bd.AppendEncoded(strModulusHex,"hex")
modulus64 = bd.GetEncoded("base64")
Response.Write "<pre>" & Server.HTMLEncode( "modulus64 = " & modulus64) & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "----") & "</pre>"

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

Response.Write "<pre>" & Server.HTMLEncode( "RSA public key as XML:") & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( xmlPubKey.GetXml()) & "</pre>"
Response.Write "<pre>" & Server.HTMLEncode( "----") & "</pre>"

' Load the XML into a Chilkat public key object.
set pubkey = Server.CreateObject("Chilkat.PublicKey")
success = pubkey.LoadFromString(xmlPubKey.GetXml())
If (success <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( pubkey.LastErrorText) & "</pre>"
    Response.End
End If

' Show the public key as PEM.
preferPkcs1 = 1
Response.Write "<pre>" & Server.HTMLEncode( pubkey.GetPem(preferPkcs1)) & "</pre>"

%>
</body>
</html>