Sample code for 30+ languages & platforms
PowerBuilder

Export Digital Certificate's Public Key

See more Certificates Examples

The ExportPublicKey method can be called to get a certificate's public key. It can then be saved to any of a number of formats: (1) OpenSSL DER, (2) OpenSSL PEM, (3) RSA DER, (4) XML.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Cert
oleobject loo_Pubkey

li_Success = 0

loo_Cert = create oleobject
li_rc = loo_Cert.ConnectToNewObject("Chilkat.Cert")
if li_rc < 0 then
    destroy loo_Cert
    MessageBox("Error","Connecting to COM object failed")
    return
end if

// LoadFromFile will load virtually any certificate format file.
// It will auto-recognize the format and load appropiately.
li_Success = loo_Cert.LoadFromFile("/Users/chilkat/testData/cer/chilkat.cer")
if li_Success = 0 then
    Write-Debug loo_Cert.LastErrorText
    destroy loo_Cert
    return
end if

// Get the public key:
loo_Pubkey = create oleobject
li_rc = loo_Pubkey.ConnectToNewObject("Chilkat.PublicKey")

loo_Cert.GetPublicKey(loo_Pubkey)

// Save to various formats:
li_Success = loo_Pubkey.SaveDerFile(0,"/Users/chilkat/testData/pubkeys/chilkat_pkcs8.der")
if li_Success <> 1 then
    Write-Debug loo_Pubkey.LastErrorText
    destroy loo_Cert
    destroy loo_Pubkey
    return
end if

li_Success = loo_Pubkey.SavePemFile(0,"/Users/chilkat/testData/pubkeys/chilkat.pem")
if li_Success <> 1 then
    Write-Debug loo_Pubkey.LastErrorText
    destroy loo_Cert
    destroy loo_Pubkey
    return
end if

li_Success = loo_Pubkey.SaveDerFile(1,"/Users/chilkat/testData/pubkeys/chilkat_pkcs1.der")
if li_Success <> 1 then
    Write-Debug loo_Pubkey.LastErrorText
    destroy loo_Cert
    destroy loo_Pubkey
    return
end if

li_Success = loo_Pubkey.SaveXmlFile("/Users/chilkat/testData/pubkeys/chilkat.xml")
if li_Success <> 1 then
    Write-Debug loo_Pubkey.LastErrorText
    destroy loo_Cert
    destroy loo_Pubkey
    return
end if

Write-Debug "Public key exported to all file formats."


destroy loo_Cert
destroy loo_Pubkey