Sample code for 30+ languages & platforms
PowerBuilder

Add Private Key and Certificate to a PEM

See more PEM Examples

Demonstrates how to add certificates and private keys to a PEM.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
long li_Success
oleobject loo_Pem
oleobject loo_PrivKey
oleobject loo_Cert
long li_IncludeCertChain
string ls_Password
long li_ExtendedAttrs
long li_NoKeys
long li_NoCerts
long li_NoCaCerts
string ls_EncryptAlg
string ls_PemStr

li_Success = 0

//  This example assumes the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

//  The Chilkat PEM class was introduced in v9.5.0.49.  
//  It requires the bundle to be unlocked, as shown above.
loo_Pem = create oleobject
li_rc = loo_Pem.ConnectToNewObject("Chilkat.Pem")
if li_rc < 0 then
    destroy loo_Pem
    MessageBox("Error","Connecting to COM object failed")
    return
end if

//  Add the private key found in alice.key to this PEM.
//  
loo_PrivKey = create oleobject
li_rc = loo_PrivKey.ConnectToNewObject("Chilkat.PrivateKey")

li_Success = loo_PrivKey.LoadAnyFormatFile("qa_data/alice.key","")
if li_Success <> 1 then
    Write-Debug loo_PrivKey.LastErrorText
    destroy loo_Pem
    destroy loo_PrivKey
    return
end if

//  Add it to the PEM:
li_Success = loo_Pem.AddPrivateKey(loo_PrivKey)

//  Add the certificate found in alice.crt to this PEM.
//  
loo_Cert = create oleobject
li_rc = loo_Cert.ConnectToNewObject("Chilkat.Cert")

li_Success = loo_Cert.LoadFromFile("qa_data/alice.crt")
if li_Success <> 1 then
    Write-Debug loo_Cert.LastErrorText
    destroy loo_Pem
    destroy loo_PrivKey
    destroy loo_Cert
    return
end if

//  Add it to the PEM:
li_IncludeCertChain = 0
li_Success = loo_Pem.AddCert(loo_Cert,li_IncludeCertChain)

//  Write the PEM containing the private key and certificate.
//  The private key will be output in PKCS8 encrypted form.
//  Certificates are never encrypted.

//  This is the password that will be required to open and access the private key
//  from the PEM we're about to write..
ls_Password = "secret"
li_ExtendedAttrs = 0
li_NoKeys = 0
li_NoCerts = 0
li_NoCaCerts = 0
ls_EncryptAlg = "aes128"

ls_PemStr = loo_Pem.ToPemEx(li_ExtendedAttrs,li_NoKeys,li_NoCerts,li_NoCaCerts,ls_EncryptAlg,ls_Password)
Write-Debug ls_PemStr


destroy loo_Pem
destroy loo_PrivKey
destroy loo_Cert