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) Load PKCS12 / PFX and Access ContentsLoads a PKCS12 / PFX file and iterates over the contents which include private keys and certificates.
#include <CkPfx.h> #include <CkPrivateKey.h> #include <CkCert.h> void ChilkatSample(void) { CkString strOut; CkPfx pfx; // Load the PKCS12 from a file bool success = pfx.LoadPfxFile("/someDir/my.p12","pfxFilePassword"); if (success != true) { strOut.append(pfx.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } int numPrivateKeys = pfx.get_NumPrivateKeys(); CkPrivateKey *privKey = 0; strOut.append("Private Keys:"); strOut.append("\r\n"); int i = 0; while (i < numPrivateKeys) { privKey = pfx.GetPrivateKey(i); // Do something with the private key ... delete privKey; i = i + 1; } CkCert *cert = 0; int numCerts = pfx.get_NumCerts(); strOut.append("Certs:"); strOut.append("\r\n"); i = 0; while (i < numCerts) { cert = pfx.GetCert(i); strOut.append(cert->subjectDN()); strOut.append("\r\n"); // If the certificate has a private key (one of the private keys within the PFX) // then it can also be obtained via the certificate object: if (cert->HasPrivateKey() == true) { strOut.append("Has private key!"); strOut.append("\r\n"); privKey = cert->ExportPrivateKey(); // ... delete privKey; } delete cert; i = i + 1; } SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.