![]() |
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
(Unicode C) Verify an RSA Signature Against the Signed StringSee more Apple Keychain ExamplesDemonstrates how to validate an RSA Signature against the string that was signed.
#include <C_CkStringBuilderW.h> #include <C_CkPublicKeyW.h> #include <C_CkRsaW.h> void ChilkatSample(void) { HCkStringBuilderW sb; BOOL crlfLineEnding; int i; const wchar_t *base64_rsa_sig; HCkPublicKeyW pubKey; BOOL success; HCkRsaW rsa; const wchar_t *signedString; // Create the same string we previously signed in this example: // RSA Sign utf-8 Bytes of String to get Base64 RSA Signature sb = CkStringBuilderW_Create(); crlfLineEnding = TRUE; for (i = 0; i <= 10; i++) { CkStringBuilderW_AppendLine(sb,L"This is a test.",crlfLineEnding); } base64_rsa_sig = L"gWgpEXQqvXN6wh0MuFXPiw2xCb8cnmdizBT1TD1Tpm2GlJ8gnD59DGSj35GGXk1tM+mCOvMa2uW/9gmz8p6A90JLbn918i/2wKGvcde4wXnzPO7JADSNn2UwYzf3rp4/q/JrHv1GZETRJhABSFqTxOgdmdbEJQE/zijOSctCtQAM2CTb6t2BO8uHKSSUAwPH2cbeWxqsaVRLT4ruk5nZOxhoLgLMSjupiSzbE8zSTkkFOEHD+Mbb2xwg85AI0E4DsUnp+hLwwtS0blesgSyvtBY8oJODJeFcJsR7JDOTPdzHQHgJRl/2A4ij5xT91TpXy7ok43jhT6O9j7Q3qrafIQ=="; // Get the public key to be used for signature verification. pubKey = CkPublicKeyW_Create(); success = CkPublicKeyW_LoadFromFile(pubKey,L"rsaKeys/chilkat-rsa-2048.pem"); if (success == FALSE) { wprintf(L"%s\n",CkPublicKeyW_lastErrorText(pubKey)); CkStringBuilderW_Dispose(sb); CkPublicKeyW_Dispose(pubKey); return; } rsa = CkRsaW_Create(); CkRsaW_ImportPublicKeyObj(rsa,pubKey); // 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. CkRsaW_putCharset(rsa,L"utf-8"); CkRsaW_putEncodingMode(rsa,L"base64"); signedString = CkStringBuilderW_getAsString(sb); success = CkRsaW_VerifyStringENC(rsa,signedString,L"sha256",base64_rsa_sig); if (success == FALSE) { wprintf(L"%s\n",CkRsaW_lastErrorText(rsa)); wprintf(L"Signature invalid.\n"); } else { wprintf(L"Signature valid.\n"); } CkStringBuilderW_Dispose(sb); CkPublicKeyW_Dispose(pubKey); CkRsaW_Dispose(rsa); } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.