Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
PKCS7 SignedData Detached SignatureHow to create a PKCS7 detached signature. The resulting PKCS7 structure is encoded to a printable string using hex or base64 encoding. The data being signed is not included in the PKCS#7 structure.
#include <CkCrypt2.h> #include <CkCert.h> void ChilkatSample(void) { CkCrypt2 crypt; // Any string argument automatically begins the 30-day trial. bool success; success = crypt.UnlockComponent("30-day trial"); if (success != true) { printf("Crypt component unlock failed\n"); return; } CkCert cert; success = cert.LoadByCommonName("Chilkat Software"); if (success != true) { printf("%s\n",cert.lastErrorText()); return; } // Make sure this certificate has a private key available: bool bHasPrivateKey; bHasPrivateKey = cert.HasPrivateKey(); if (bHasPrivateKey != true) { printf("No private key available for signing.\n"); return; } // Tell the encryption component to use this cert. crypt.SetSigningCert(cert); const char * strData; strData = "This is the data to be signed."; // Indicate that the PKCS7 signature should be returned // as a base64 encoded string: crypt.put_EncodingMode("base64"); // The EncodingMode may be set to other values such as // "hex", "url", "quoted-printable", etc. const char * strSignature; strSignature = crypt.SignStringENC(strData); printf("%s\n",(const char *)strSignature); // Now verify the signature against the original data. // Tell the component what certificate to use for verification. crypt.SetVerifyCert(cert); success = crypt.VerifyStringENC(strData,strSignature); if (success == true) { printf("digital signature verified\n"); } else { printf("digital signature invalid\n"); } // Try it with incorrect data: success = crypt.VerifyStringENC("This is not the signed data",strSignature); if (success == true) { printf("digital signature verified\n"); } else { printf("digital signature invalid\n"); } } |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.