DataFlex
DataFlex
Verify the RSA Signature of a SHA256 Hash
See more RSA Examples
Demonstrates how to verify an RSA signature of a SHA256 hash.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Variant vPubKey
Handle hoPubKey
Handle hoRsa
Handle hoBdHash
Handle hoBdSig
String sEnc
String sTemp1
String sTemp2
Move False To iSuccess
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// Let's say you have a file containing the 32-bytes of a SHA256 hash,
// and a file that is an RSA signature of those 32 bytes.
// Here's how you verify using the RSA public key found in a PEM.
Get Create (RefClass(cComChilkatPublicKey)) To hoPubKey
If (Not(IsComObjectCreated(hoPubKey))) Begin
Send CreateComObject of hoPubKey
End
Get ComLoadFromFile Of hoPubKey "rsaPubKey.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 the public key.
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
// Get the 32-byte SHA256 hash.
Get Create (RefClass(cComChilkatBinData)) To hoBdHash
If (Not(IsComObjectCreated(hoBdHash))) Begin
Send CreateComObject of hoBdHash
End
Get ComLoadFile Of hoBdHash "myHash.sha256" To iSuccess
If (iSuccess = False) Begin
Showln "Failed to load SHA256 hash."
Procedure_Return
End
// Get the RSA signature to be validated.
Get Create (RefClass(cComChilkatBinData)) To hoBdSig
If (Not(IsComObjectCreated(hoBdSig))) Begin
Send CreateComObject of hoBdSig
End
Get ComLoadFile Of hoBdSig "mySig.sig" To iSuccess
If (iSuccess = False) Begin
Showln "Failed to load RSA signature."
Procedure_Return
End
// Verify the signature against the SHA256 hash.
Move "base64" To sEnc
Set ComEncodingMode Of hoRsa To sEnc
Get ComGetEncoded Of hoBdHash sEnc To sTemp1
Get ComGetEncoded Of hoBdSig sEnc To sTemp2
Get ComVerifyHashENC Of hoRsa sTemp1 "sha256" sTemp2 To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoRsa To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "Signature validated."
End_Procedure