PowerShell
PowerShell
Get Public Key from CSR
See more CSR Examples
Demonstrates how to get the public key from a CSR.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$pem = New-Object Chilkat.Pem
# No password is required. Pass an empty password string..
$noPassword = ""
$success = $pem.LoadPemFile("qa_data/csr/csr2.pem",$noPassword)
if ($success -ne $true) {
$($pem.LastErrorText)
exit
}
$strBase64 = $pem.GetEncodedItem("csr","","base64",0)
$asn = New-Object Chilkat.Asn
$success = $asn.LoadEncoded($strBase64,"base64")
if ($success -ne $true) {
$($asn.LastErrorText)
exit
}
# Convert the ASN.1 to XML.
$xml = New-Object Chilkat.Xml
$success = $xml.LoadXml($asn.AsnToXml())
$($xml.GetXml())
$("----")
$strModulusHex = $xml.GetChildContent("bits")
$("strModulusHex = " + $strModulusHex)
$("----")
# We need the modulus as base64.
$bd = New-Object Chilkat.BinData
$bd.AppendEncoded($strModulusHex,"hex")
$modulus64 = $bd.GetEncoded("base64")
$("modulus64 = " + $modulus64)
$("----")
# Build the XML for the public key.
$xmlPubKey = New-Object Chilkat.Xml
$xmlPubKey.Tag = "RSAPublicKey"
$xmlPubKey.UpdateChildContent("Modulus",$modulus64)
# The RSA exponent will always be decimal 65537 (base64 = AQAB)
$xmlPubKey.UpdateChildContent("Exponent","AQAB")
$("RSA public key as XML:")
$($xmlPubKey.GetXml())
$("----")
# Load the XML into a Chilkat public key object.
$pubkey = New-Object Chilkat.PublicKey
$success = $pubkey.LoadFromString($xmlPubKey.GetXml())
if ($success -ne $true) {
$($pubkey.LastErrorText)
exit
}
# Show the public key as PEM.
$preferPkcs1 = $true
$($pubkey.GetPem($preferPkcs1))