PowerBuilder
PowerBuilder
Verify an RSA Signature Against the Signed String
See more Apple Keychain Examples
Demonstrates how to validate an RSA Signature against the string that was signed.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Sb
integer li_CrlfLineEnding
integer i
string ls_Base64_rsa_sig
oleobject loo_PubKey
oleobject loo_Rsa
string ls_SignedString
li_Success = 0
// Create the same string we previously signed in this example:
// RSA Sign utf-8 Bytes of String to get Base64 RSA Signature
loo_Sb = create oleobject
li_rc = loo_Sb.ConnectToNewObject("Chilkat.StringBuilder")
if li_rc < 0 then
destroy loo_Sb
MessageBox("Error","Connecting to COM object failed")
return
end if
li_CrlfLineEnding = 1
for i = 0 to 10
loo_Sb.AppendLine("This is a test.",li_CrlfLineEnding)
next
ls_Base64_rsa_sig = "gWgpEXQqvXN6wh0MuFXPiw2xCb8cnmdizBT1TD1Tpm2GlJ8gnD59DGSj35GGXk1tM+mCOvMa2uW/9gmz8p6A90JLbn918i/2wKGvcde4wXnzPO7JADSNn2UwYzf3rp4/q/JrHv1GZETRJhABSFqTxOgdmdbEJQE/zijOSctCtQAM2CTb6t2BO8uHKSSUAwPH2cbeWxqsaVRLT4ruk5nZOxhoLgLMSjupiSzbE8zSTkkFOEHD+Mbb2xwg85AI0E4DsUnp+hLwwtS0blesgSyvtBY8oJODJeFcJsR7JDOTPdzHQHgJRl/2A4ij5xT91TpXy7ok43jhT6O9j7Q3qrafIQ=="
// Get the public key to be used for signature verification.
loo_PubKey = create oleobject
li_rc = loo_PubKey.ConnectToNewObject("Chilkat.PublicKey")
li_Success = loo_PubKey.LoadFromFile("rsaKeys/chilkat-rsa-2048.pem")
if li_Success = 0 then
Write-Debug loo_PubKey.LastErrorText
destroy loo_Sb
destroy loo_PubKey
return
end if
loo_Rsa = create oleobject
li_rc = loo_Rsa.ConnectToNewObject("Chilkat.Rsa")
li_Success = loo_Rsa.UsePublicKey(loo_PubKey)
if li_Success = 0 then
Write-Debug loo_Rsa.LastErrorText
destroy loo_Sb
destroy loo_PubKey
destroy loo_Rsa
return
end if
// Verify the string against the signature.
// We signed the utf-8 byte representation of the string, so we must indicate
// to also validate against the utf-8 byte representation.
loo_Rsa.Charset = "utf-8"
loo_Rsa.EncodingMode = "base64"
ls_SignedString = loo_Sb.GetAsString()
li_Success = loo_Rsa.VerifyStringENC(ls_SignedString,"sha256",ls_Base64_rsa_sig)
if li_Success = 0 then
Write-Debug loo_Rsa.LastErrorText
Write-Debug "Signature invalid."
else
Write-Debug "Signature valid."
end if
destroy loo_Sb
destroy loo_PubKey
destroy loo_Rsa