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
Create PKCS7 Signature using .cer and .key FilesUses a digital certificate (.cer file) and private key file to create a PKCS7 signature. 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 <C_CkCert.h> #include <C_CkPrivateKey.h> #include <C_CkCrypt2.h> #include <C_CkByteData.h> void ChilkatSample(void) { HCkCert cert; BOOL success; HCkPrivateKey privKey; const char * password; HCkCrypt2 crypt; HCkByteData pkcs7; const char * textToSign; // First, load the .cer and .key files into Chilkat objects... cert = CkCert_Create(); success = CkCert_LoadFromFile(cert,"myCert.cer"); if (success != TRUE) { printf("%s\n",CkCert_lastErrorText(cert)); return; } privKey = CkPrivateKey_Create(); password = "myPassword"; // The private key object provides different methods for // loading keys of many different formats. // This example loads a PKCS8 encrypted private key. success = CkPrivateKey_LoadPkcs8EncryptedFile(privKey,"myPrivateKey.key",password); if (success != TRUE) { printf("%s\n",CkPrivateKey_lastErrorText(privKey)); return; } // NOTE: In this example, the .cer should contain the public key // that corresponds to the private key. crypt = CkCrypt2_Create(); // Any string argument automatically begins the 30-day trial. success = CkCrypt2_UnlockComponent(crypt,"30-day trial"); if (success != TRUE) { printf("%s\n",CkCrypt2_lastErrorText(crypt)); return; } // Set the certifcate + private key to be used for signing: CkCrypt2_SetSigningCert2(crypt,cert,privKey); pkcs7 = CkByteData_Create(); textToSign = "This is the text to be signed."; success = CkCrypt2_SignString(crypt,textToSign,pkcs7); if (success == FALSE) { printf("%s\n",CkCrypt2_lastErrorText(crypt)); return; } // Save the PKCS7 signature to a file. success = CkByteData_saveFile(pkcs7,"out_pkcs7.p7s"); if (success == FALSE) { printf("Failed to save output file.\n"); } else { printf("Success.\n"); } CkCert_Dispose(cert); CkPrivateKey_Dispose(privKey); CkCrypt2_Dispose(crypt); CkByteData_Dispose(pkcs7); } |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.