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
Extract Public/Private Keys and Certs from PFX into String Variables
Demonstrates how to export certificates and public/private keys from a PFX file into in-memory strings. bool success; Chilkat.CertStore certStore = new Chilkat.CertStore(); // Load the PFX file into a certificate store object string password; password = "*myPassword2*"; success = certStore.LoadPfxFile("chilkat.pfx",password); if (success != true) { MessageBox.Show(certStore.LastErrorText); return; } int i; int numCerts; numCerts = certStore.NumCertificates; // Loop over each certificate in the PFX. Chilkat.Cert cert = null; string fname; for (i = 0; i <= numCerts - 1; i++) { cert = certStore.GetCertificate(i); textBox1.Text += cert.SubjectDN + "\r\n"; textBox1.Text += "---" + "\r\n"; string encodedCert; encodedCert = cert.GetEncoded(); // This string may now be stored in a relational database string field. // To re-create the cert, do this: Chilkat.Cert cert2 = new Chilkat.Cert(); cert2.SetFromEncoded(encodedCert); // Does this cert have a private key? if (cert.HasPrivateKey() == true) { // Get the private key. Chilkat.PrivateKey pvkey = null; pvkey = cert.ExportPrivateKey(); // The private key can be exported into // a string in PKCS8, RSA PEM, or XML format: string pemPvKey; string pkcs8PvKey; string xmlPvKey; pemPvKey = pvkey.GetRsaPem(); pkcs8PvKey = pvkey.GetPkcs8Pem(); xmlPvKey = pvkey.GetXml(); textBox1.Text += pemPvKey + "\r\n"; textBox1.Text += pkcs8PvKey + "\r\n"; textBox1.Text += xmlPvKey + "\r\n"; // Any of these formatted strings may // be stored in a relational database field. // to restore, call LoadPem or LoadXml // LoadPem accepts either RSA PEM or // PKCS8 PEM: Chilkat.PrivateKey pvKey2 = new Chilkat.PrivateKey(); pvKey2.LoadPem(pemPvKey); pvKey2.LoadPem(pkcs8PvKey); pvKey2.LoadXml(xmlPvKey); } // Now for the public key: Chilkat.PublicKey pubkey = null; pubkey = cert.ExportPublicKey(); // It can be exported to a string as OpenSSL PEM // or XML: string pubKeyPem; string pubKeyXml; pubKeyPem = pubkey.GetOpenSslPem(); pubKeyXml = pubkey.GetXml(); textBox1.Text += pubKeyPem + "\r\n"; textBox1.Text += pubKeyXml + "\r\n"; // To re-load a PublicKey object, call LoadXml // or LoadOpenSslPem: Chilkat.PublicKey pubKey2 = new Chilkat.PublicKey(); pubKey2.LoadOpenSslPem(pubKeyPem); pubKey2.LoadXml(pubKeyXml); fname = "pubkey" + Convert.ToString(i) + "_openSsl.der"; pubkey.SaveOpenSslDerFile(fname); } // The Chilkat Certificate, Certificate Store, Private Key, // Public Key, and Key Container classes / objects are freeware. // They are used by and included with the Chilkat Email, // Crypt, S/MIME, and other commercial Chilkat components. |
© 2000-2012 Chilkat Software, Inc. All Rights Reserved.