CkPython
CkPython
Get Public Key from CSR
See more CSR Examples
Demonstrates how to get the public key from a CSR.Chilkat CkPython Downloads
import sys
import chilkat
success = False
# This requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
pem = chilkat.CkPem()
# No password is required. Pass an empty password string..
noPassword = ""
success = pem.LoadPemFile("qa_data/csr/csr2.pem",noPassword)
if (success != True):
print(pem.lastErrorText())
sys.exit()
strBase64 = pem.getEncodedItem("csr","","base64",0)
asn = chilkat.CkAsn()
success = asn.LoadEncoded(strBase64,"base64")
if (success != True):
print(asn.lastErrorText())
sys.exit()
# Convert the ASN.1 to XML.
xml = chilkat.CkXml()
success = xml.LoadXml(asn.asnToXml())
print(xml.getXml())
print("----")
strModulusHex = xml.getChildContent("bits")
print("strModulusHex = " + strModulusHex)
print("----")
# We need the modulus as base64.
bd = chilkat.CkBinData()
bd.AppendEncoded(strModulusHex,"hex")
modulus64 = bd.getEncoded("base64")
print("modulus64 = " + modulus64)
print("----")
# Build the XML for the public key.
xmlPubKey = chilkat.CkXml()
xmlPubKey.put_Tag("RSAPublicKey")
xmlPubKey.UpdateChildContent("Modulus",modulus64)
# The RSA exponent will always be decimal 65537 (base64 = AQAB)
xmlPubKey.UpdateChildContent("Exponent","AQAB")
print("RSA public key as XML:")
print(xmlPubKey.getXml())
print("----")
# Load the XML into a Chilkat public key object.
pubkey = chilkat.CkPublicKey()
success = pubkey.LoadFromString(xmlPubKey.getXml())
if (success != True):
print(pubkey.lastErrorText())
sys.exit()
# Show the public key as PEM.
preferPkcs1 = True
print(pubkey.getPem(preferPkcs1))