Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Sign with .pfx to create .p7s, Verify with .cerC++ example to sign a file using a .pfx and creating a .p7s file as output. It then uses a .cer file to verify the signature.
#include <CkCrypt2.h> #include <CkCertStore.h> #include <CkCert.h> #include <CkCSP.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; } CkCertStore certStore; success = certStore.LoadPfxFile("chilkat.pfx","myPfxPassword"); if (success != true) { printf("%s\n",certStore.lastErrorText()); return; } CkCert *cert = 0; cert = certStore.FindCertBySubjectCN("Chilkat Software, Inc."); if (cert == 0 ) { printf("Failed to find certificate\n"); return; } // We can explicitly choose hash/encryption algorithms using a CSP. CkCSP csp; csp.SetProviderMicrosoftEnhanced(); csp.SetHashAlgorithm("sha-1"); // Tell the crypt component to use this cert and this CSP. crypt.SetSigningCert(*cert); crypt.SetCSP(csp); // We can sign any type of file, creating a .p7s as output: success = crypt.CreateP7S("hamlet.xml","hamlet.p7s"); if (success == true) { printf("Signature created.\n"); } else { printf("%s\n",crypt.lastErrorText()); } // Verify and restore the original file: // Use a cert from a .cer file (which only contains the public key) CkCert cert2; success = cert2.LoadFromFile("chilkat.cer"); if (success != true) { printf("%s\n",cert2.lastErrorText()); return; } crypt.SetVerifyCert(cert2); success = crypt.VerifyP7S("hamlet.xml","hamlet.p7s"); if (success == true) { printf("Signature verified.\n"); } else { printf("%s\n",crypt.lastErrorText()); } } |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.