PowerBuilder
PowerBuilder
Generate an RSA Key and Save to Encrypted PEM
See more RSA Examples
Demonstrates how to generate an RSA key and save to an encrypted PEM file.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Rsa
oleobject loo_PrivKey
string ls_Password
string ls_Path
oleobject loo_PubKey
integer li_PreferPkcs1
li_Success = 0
loo_Rsa = create oleobject
li_rc = loo_Rsa.ConnectToNewObject("Chilkat.Rsa")
if li_rc < 0 then
destroy loo_Rsa
MessageBox("Error","Connecting to COM object failed")
return
end if
// Generate a 2048-bit key.
loo_PrivKey = create oleobject
li_rc = loo_PrivKey.ConnectToNewObject("Chilkat.PrivateKey")
li_Success = loo_Rsa.GenKey(2048,loo_PrivKey)
if li_Success = 0 then
Write-Debug loo_Rsa.LastErrorText
destroy loo_Rsa
destroy loo_PrivKey
return
end if
ls_Password = "secret"
// Saving to a relative path (from the current working directory of the process).
ls_Path = "rsaKeys/myTestRsaPrivate.pem"
// Encrypt the PEM using 256-bit AES encryption.
loo_PrivKey.Pkcs8EncryptAlg = "aes256"
li_Success = loo_PrivKey.SavePkcs8EncryptedPemFile(ls_Password,ls_Path)
if li_Success = 0 then
Write-Debug loo_PrivKey.LastErrorText
destroy loo_Rsa
destroy loo_PrivKey
return
end if
//
// We can also save the public key.
// There is no need to encrypt public keys.
loo_PubKey = create oleobject
li_rc = loo_PubKey.ConnectToNewObject("Chilkat.PublicKey")
loo_PrivKey.ToPublicKey(loo_PubKey)
ls_Path = "rsaKeys/myTestRsaPublic.pem"
// Choose PKCS1 or PKCS8
// We'll choose PKCS8.
li_PreferPkcs1 = 0
li_Success = loo_PubKey.SavePemFile(li_PreferPkcs1,ls_Path)
if li_Success = 0 then
Write-Debug loo_PubKey.LastErrorText
destroy loo_Rsa
destroy loo_PrivKey
destroy loo_PubKey
return
end if
//
Write-Debug "Success."
destroy loo_Rsa
destroy loo_PrivKey
destroy loo_PubKey