Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Extract Public/Private Keys and Certs from PFX into String VariablesDemonstrates 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. |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2007 Chilkat Software, Inc. All Rights Reserved.