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. Dim success As Boolean Dim certStore As New Chilkat.CertStore() ' Load the PFX file into a certificate store object Dim password As String password = "*myPassword2*" success = certStore.LoadPfxFile("chilkat.pfx",password) If (success <> true) Then MsgBox(certStore.LastErrorText) Exit Sub End If Dim i As Long Dim numCerts As Long numCerts = certStore.NumCertificates ' Loop over each certificate in the PFX. Dim cert As Chilkat.Cert Dim fname As String For i = 0 To numCerts - 1 cert = certStore.GetCertificate(i) TextBox1.Text = TextBox1.Text & cert.SubjectDN & vbCrLf TextBox1.Text = TextBox1.Text & "---" & vbCrLf Dim encodedCert As String encodedCert = cert.GetEncoded() ' This string may now be stored in a relational database string field. ' To re-create the cert, do this: Dim cert2 As New Chilkat.Cert() cert2.SetFromEncoded(encodedCert) ' Does this cert have a private key? If (cert.HasPrivateKey() = true) Then ' Get the private key. Dim pvkey As Chilkat.PrivateKey pvkey = cert.ExportPrivateKey() ' The private key can be exported into ' a string in PKCS8, RSA PEM, or XML format: Dim pemPvKey As String Dim pkcs8PvKey As String Dim xmlPvKey As String pemPvKey = pvkey.GetRsaPem() pkcs8PvKey = pvkey.GetPkcs8Pem() xmlPvKey = pvkey.GetXml() TextBox1.Text = TextBox1.Text & pemPvKey & vbCrLf TextBox1.Text = TextBox1.Text & pkcs8PvKey & vbCrLf TextBox1.Text = TextBox1.Text & xmlPvKey & vbCrLf ' 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: Dim pvKey2 As New Chilkat.PrivateKey() pvKey2.LoadPem(pemPvKey) pvKey2.LoadPem(pkcs8PvKey) pvKey2.LoadXml(xmlPvKey) End If ' Now for the public key: Dim pubkey As Chilkat.PublicKey pubkey = cert.ExportPublicKey() ' It can be exported to a string as OpenSSL PEM ' or XML: Dim pubKeyPem As String Dim pubKeyXml As String pubKeyPem = pubkey.GetOpenSslPem() pubKeyXml = pubkey.GetXml() TextBox1.Text = TextBox1.Text & pubKeyPem & vbCrLf TextBox1.Text = TextBox1.Text & pubKeyXml & vbCrLf ' To re-load a PublicKey object, call LoadXml ' or LoadOpenSslPem: Dim pubKey2 As New Chilkat.PublicKey() pubKey2.LoadOpenSslPem(pubKeyPem) pubKey2.LoadXml(pubKeyXml) fname = "pubkey" & CStr(i) & "_openSsl.der" pubkey.SaveOpenSslDerFile(fname) Next ' 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.