Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
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. Downloads: MS Windows Visual C/C++ Libraries Linux/CentOS C/C++ Libraries MAC OS X C/C++ Libraries Solaris C/C++ Libraries C++ Builder Libraries FreeBSD C++ Libraries HP-UX C++ Libraries BlackBerry QNX C++ Libraries #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"); } } |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.