Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
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. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% set certStore = Server.CreateObject("Chilkat_9_5_0.CertStore") ' Load the PFX file into a certificate store object password = "*myPassword2*" success = certStore.LoadPfxFile("chilkat.pfx",password) If (success <> 1) Then Response.Write certStore.LastErrorText & "<br>" End If numCerts = certStore.NumCertificates ' Loop over each certificate in the PFX. For i = 0 To numCerts - 1 Set cert = certStore.GetCertificate(i) Response.Write cert.SubjectDN & "<br>" Response.Write "---" & "<br>" encodedCert = cert.GetEncoded() ' This string may now be stored in a relational database string field. ' To re-create the cert, do this: set cert2 = Server.CreateObject("Chilkat_9_5_0.Cert") cert2.SetFromEncoded encodedCert ' Does this cert have a private key? If (cert.HasPrivateKey() = 1) Then ' Get the private key. Set pvkey = cert.ExportPrivateKey() ' The private key can be exported into ' a string in PKCS8, RSA PEM, or XML format: pemPvKey = pvkey.GetRsaPem() pkcs8PvKey = pvkey.GetPkcs8Pem() xmlPvKey = pvkey.GetXml() Response.Write pemPvKey & "<br>" Response.Write pkcs8PvKey & "<br>" Response.Write xmlPvKey & "<br>" ' 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: set pvKey2 = Server.CreateObject("Chilkat_9_5_0.PrivateKey") pvKey2.LoadPem pemPvKey pvKey2.LoadPem pkcs8PvKey pvKey2.LoadXml xmlPvKey End If ' Now for the public key: Set pubkey = cert.ExportPublicKey() ' It can be exported to a string as OpenSSL PEM ' or XML: pubKeyPem = pubkey.GetOpenSslPem() pubKeyXml = pubkey.GetXml() Response.Write pubKeyPem & "<br>" Response.Write pubKeyXml & "<br>" ' To re-load a PublicKey object, call LoadXml ' or LoadOpenSslPem: set pubKey2 = Server.CreateObject("Chilkat_9_5_0.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. %> </body> </html> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.