DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoSb
Boolean iCrlfLineEnding
Integer i
String sBase64_rsa_sig
Variant vPubKey
Handle hoPubKey
Handle hoRsa
String sSignedString
String sTemp1
Move False To iSuccess
// Create the same string we previously signed in this example:
// RSA Sign utf-8 Bytes of String to get Base64 RSA Signature
Get Create (RefClass(cComChilkatStringBuilder)) To hoSb
If (Not(IsComObjectCreated(hoSb))) Begin
Send CreateComObject of hoSb
End
Move True To iCrlfLineEnding
For i From 0 To 10
Get ComAppendLine Of hoSb "This is a test." iCrlfLineEnding To iSuccess
Loop
Move "gWgpEXQqvXN6wh0MuFXPiw2xCb8cnmdizBT1TD1Tpm2GlJ8gnD59DGSj35GGXk1tM+mCOvMa2uW/9gmz8p6A90JLbn918i/2wKGvcde4wXnzPO7JADSNn2UwYzf3rp4/q/JrHv1GZETRJhABSFqTxOgdmdbEJQE/zijOSctCtQAM2CTb6t2BO8uHKSSUAwPH2cbeWxqsaVRLT4ruk5nZOxhoLgLMSjupiSzbE8zSTkkFOEHD+Mbb2xwg85AI0E4DsUnp+hLwwtS0blesgSyvtBY8oJODJeFcJsR7JDOTPdzHQHgJRl/2A4ij5xT91TpXy7ok43jhT6O9j7Q3qrafIQ==" To sBase64_rsa_sig
// Get the public key to be used for signature verification.
Get Create (RefClass(cComChilkatPublicKey)) To hoPubKey
If (Not(IsComObjectCreated(hoPubKey))) Begin
Send CreateComObject of hoPubKey
End
Get ComLoadFromFile Of hoPubKey "rsaKeys/chilkat-rsa-2048.pem" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoPubKey To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatRsa)) To hoRsa
If (Not(IsComObjectCreated(hoRsa))) Begin
Send CreateComObject of hoRsa
End
Get pvComObject of hoPubKey to vPubKey
Get ComUsePublicKey Of hoRsa vPubKey To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoRsa To sTemp1
Showln sTemp1
Procedure_Return
End
// 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.
Set ComCharset Of hoRsa To "utf-8"
Set ComEncodingMode Of hoRsa To "base64"
Get ComGetAsString Of hoSb To sSignedString
Get ComVerifyStringENC Of hoRsa sSignedString "sha256" sBase64_rsa_sig To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoRsa To sTemp1
Showln sTemp1
Showln "Signature invalid."
End
Else Begin
Showln "Signature valid."
End
End_Procedure