![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Verfies an RSA SignatureSee more Apple Keychain ExamplesVerifies an RSA signature against the original data.Note: This example requires Chilkat v11.0.0 or greater.
IncludeFile "CkBinData.pb" IncludeFile "CkRsa.pb" IncludeFile "CkPublicKey.pb" Procedure ChilkatExample() success.i = 0 ; The following data was signed by the following example: ; RSA Sign using a Private Key on a USB Token or Smartcard bd.i = CkBinData::ckCreate() If bd.i = 0 Debug "Failed to create object." ProcedureReturn EndIf i.i For i = 0 To 100 CkBinData::ckAppendEncoded(bd,"000102030405060708090A0B0C0D0E0F","hex") Next ; Load the signature bdSig.i = CkBinData::ckCreate() If bdSig.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkBinData::ckLoadFile(bdSig,"rsaSignatures/test1.sig") If success = 0 Debug "Failed to load the RSA signature" CkBinData::ckDispose(bd) CkBinData::ckDispose(bdSig) ProcedureReturn EndIf ; Get the public key to be used for signature verification. pubKey.i = CkPublicKey::ckCreate() If pubKey.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkPublicKey::ckLoadFromFile(pubKey,"rsaKeys/chilkat-rsa-2048.pem") If success = 0 Debug CkPublicKey::ckLastErrorText(pubKey) CkBinData::ckDispose(bd) CkBinData::ckDispose(bdSig) CkPublicKey::ckDispose(pubKey) ProcedureReturn EndIf rsa.i = CkRsa::ckCreate() If rsa.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkRsa::ckUsePublicKey(rsa,pubKey) ; Verify the hash of the data against the signature. ; We pass in the original data. Internally, the hash is generated ; and used to validate the signature. ; Validating the RSA signature means two things: ; (1) the original data is exactly what was signed, and ; (2) it was signed by the owner of the RSA private key. success = CkRsa::ckVerifyBd(rsa,bd,"sha256",bdSig) If success = 0 Debug CkRsa::ckLastErrorText(rsa) Debug "Signature invalid." Else Debug "Signature valid." EndIf CkBinData::ckDispose(bd) CkBinData::ckDispose(bdSig) CkPublicKey::ckDispose(pubKey) CkRsa::ckDispose(rsa) ProcedureReturn EndProcedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.