PowerBuilder
PowerBuilder
RSA Hash Binary Data and Sign (and Verify)
See more RSA Examples
Demonstrates how to sign the hash of binary data. Also demonstrates how to verify the RSA signature.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_PrivKey
oleobject loo_Rsa
string ls_OriginalData
oleobject loo_BdData
oleobject loo_BdSignature
oleobject loo_PubKey
oleobject loo_Rsa2
integer li_BVerified
li_Success = 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// Load an RSA private key for signing.
loo_PrivKey = create oleobject
li_rc = loo_PrivKey.ConnectToNewObject("Chilkat.PrivateKey")
if li_rc < 0 then
destroy loo_PrivKey
MessageBox("Error","Connecting to COM object failed")
return
end if
li_Success = loo_PrivKey.LoadEncryptedPemFile("qa_data/pem/rsa_passwd.pem","passwd")
if li_Success = 0 then
Write-Debug loo_PrivKey.LastErrorText
destroy loo_PrivKey
return
end if
loo_Rsa = create oleobject
li_rc = loo_Rsa.ConnectToNewObject("Chilkat.Rsa")
loo_Rsa.UsePrivateKey(loo_PrivKey)
// We have some binary data (in hex) to sign
ls_OriginalData = "0102030405060708090A"
loo_BdData = create oleobject
li_rc = loo_BdData.ConnectToNewObject("Chilkat.BinData")
loo_BdData.AppendEncoded(ls_OriginalData,"hex")
// Hash (SHA-256) and sign the hash:
loo_BdSignature = create oleobject
li_rc = loo_BdSignature.ConnectToNewObject("Chilkat.BinData")
li_Success = loo_Rsa.SignBd(loo_BdData,"sha256",loo_BdSignature)
if li_Success = 0 then
Write-Debug loo_Rsa.LastErrorText
destroy loo_PrivKey
destroy loo_Rsa
destroy loo_BdData
destroy loo_BdSignature
return
end if
// Show the RSA signature in base64
Write-Debug loo_BdSignature.GetEncoded("base64")
// ------------------------------------------
// Get the public key from the private key
loo_PubKey = create oleobject
li_rc = loo_PubKey.ConnectToNewObject("Chilkat.PublicKey")
loo_PrivKey.ToPublicKey(loo_PubKey)
// Verify the signature..
loo_Rsa2 = create oleobject
li_rc = loo_Rsa2.ConnectToNewObject("Chilkat.Rsa")
loo_Rsa2.UsePublicKey(loo_PubKey)
li_BVerified = loo_Rsa2.VerifyBd(loo_BdData,"sha256",loo_BdSignature)
Write-Debug "signature verified: " + string(li_BVerified)
destroy loo_PrivKey
destroy loo_Rsa
destroy loo_BdData
destroy loo_BdSignature
destroy loo_PubKey
destroy loo_Rsa2