Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) AddDetachedSignaturePkDemonstrates how to add a detached signature using a certifcate and it's corresponding private key. The easiest way of doing it is when both the certificate and private key are contained together within a PFX (.pfx or .p12) file. This example demonstrates how to use the certificate and its corresponding private key when they are stored in separate files -- a .cer for the certificate, and a .pem for the private key.
#include <CkMime.h> #include <CkCert.h> #include <CkPrivateKey.h> void ChilkatSample(void) { CkString strOut; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkMime mime; // Load the certificate from a .cer file. CkCert cert; bool success = cert.LoadFromFile("aaworkarea/myCert.cer"); if (success == false) { strOut.append(cert.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Load the private key from an encrypted PEM file. // (A private key can be loaded from other file formats also..) CkPrivateKey privKey; success = privKey.LoadEncryptedPemFile("aaworkarea/myPrivateKey.pem","myPassword"); if (success == false) { strOut.append(privKey.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } success = mime.SetBodyFromPlainText("This is the plain-text MIME body."); // Sign the MIME (adds a PKCS7 detached signature) success = mime.AddDetachedSignaturePk(cert,privKey); if (success == false) { strOut.append(mime.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Save the S/MIME to a file. success = mime.SaveMime("aaworkarea/signedMime.txt"); if (success == false) { strOut.append(mime.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } strOut.append("success!"); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.