DataFlex
DataFlex
Get Public Key from CSR
See more CSR Examples
Demonstrates how to get the public key from a CSR.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoPem
String sNoPassword
String sStrBase64
Handle hoAsn
Handle hoXml
String sStrModulusHex
Handle hoBd
String sModulus64
PubKey Handle hoXmlPubKey
Handle hoPubkey
Boolean iPreferPkcs1
String sTemp1
Move False To iSuccess
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatPem)) To hoPem
If (Not(IsComObjectCreated(hoPem))) Begin
Send CreateComObject of hoPem
End
// No password is required. Pass an empty password string..
Move "" To sNoPassword
Get ComLoadPemFile Of hoPem "qa_data/csr/csr2.pem" sNoPassword To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoPem To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComGetEncodedItem Of hoPem "csr" "" "base64" 0 To sStrBase64
Get Create (RefClass(cComChilkatAsn)) To hoAsn
If (Not(IsComObjectCreated(hoAsn))) Begin
Send CreateComObject of hoAsn
End
Get ComLoadEncoded Of hoAsn sStrBase64 "base64" To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoAsn To sTemp1
Showln sTemp1
Procedure_Return
End
// Convert the ASN.1 to XML.
Get Create (RefClass(cComChilkatXml)) To hoXml
If (Not(IsComObjectCreated(hoXml))) Begin
Send CreateComObject of hoXml
End
Get ComAsnToXml Of hoAsn To sTemp1
Get ComLoadXml Of hoXml sTemp1 To iSuccess
Get ComGetXml Of hoXml To sTemp1
Showln sTemp1
Showln "----"
Get ComGetChildContent Of hoXml "bits" To sStrModulusHex
Showln "strModulusHex = " sStrModulusHex
Showln "----"
// We need the modulus as base64.
Get Create (RefClass(cComChilkatBinData)) To hoBd
If (Not(IsComObjectCreated(hoBd))) Begin
Send CreateComObject of hoBd
End
Get ComAppendEncoded Of hoBd sStrModulusHex "hex" To iSuccess
Get ComGetEncoded Of hoBd "base64" To sModulus64
Showln "modulus64 = " sModulus64
Showln "----"
// Build the XML for the public key.
Get Create (RefClass(cComChilkatXml)) To hoXmlPubKey
If (Not(IsComObjectCreated(hoXmlPubKey))) Begin
Send CreateComObject of hoXmlPubKey
End
Set ComTag Of hoXmlPubKey To "RSAPublicKey"
Send ComUpdateChildContent To hoXmlPubKey "Modulus" sModulus64
// The RSA exponent will always be decimal 65537 (base64 = AQAB)
Send ComUpdateChildContent To hoXmlPubKey "Exponent" "AQAB"
Showln "RSA public key as XML:"
Get ComGetXml Of hoXmlPubKey To sTemp1
Showln sTemp1
Showln "----"
// Load the XML into a Chilkat public key object.
Get Create (RefClass(cComChilkatPublicKey)) To hoPubkey
If (Not(IsComObjectCreated(hoPubkey))) Begin
Send CreateComObject of hoPubkey
End
Get ComGetXml Of hoXmlPubKey To sTemp1
Get ComLoadFromString Of hoPubkey sTemp1 To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoPubkey To sTemp1
Showln sTemp1
Procedure_Return
End
// Show the public key as PEM.
Move True To iPreferPkcs1
Get ComGetPem Of hoPubkey iPreferPkcs1 To sTemp1
Showln sTemp1
End_Procedure