![]() |
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.
IncludeFile "CkBinData.pb" IncludeFile "CkRsa.pb" IncludeFile "CkPublicKey.pb" Procedure ChilkatExample() ; 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.i = 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::ckImportPublicKeyObj(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.