PowerBuilder
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
integer li_rc
integer li_Success
oleobject loo_Pem
oleobject loo_PrivKey
oleobject loo_Cert
integer li_IncludeCertChain
string ls_Password
integer li_ExtendedAttrs
integer li_NoKeys
integer li_NoCerts
integer 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