![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Xojo Plugin) Backup Windows Current User / Personal Certificates to a .zipDemonstrates how to backup the certificates in the Windows registry-based Current User certificate store (in the "Personal" Logical Store as seen in certmgr.msc), to a zip archive. Certificates having an exportable private key are exported to .pfx files. Certificates with no private key, or with a non-exportable private key, are exported to .cer files. Obviously, this example only runs on Windows computers.
Dim certStore As New Chilkat.CertStore Dim readOnly As Boolean readOnly = True Dim success As Boolean success = certStore.OpenCurrentUserStore(readOnly) If (Not success) Then System.DebugLog(certStore.LastErrorText) Return End If Dim pfxPassword As String pfxPassword = "secret" Dim allSuccess As Boolean allSuccess = True Dim numSuccess As Int32 numSuccess = 0 Dim entry As Chilkat.ZipEntry Dim zip As New Chilkat.Zip success = zip.NewZip("qa_output/personalCerts.zip") Dim certData As New Chilkat.BinData Dim sbFilename As New Chilkat.StringBuilder // Iterate over the certificates in the Current User store. Dim numCerts As Int32 numCerts = certStore.NumCertificates Dim i As Int32 i = 0 While i < numCerts Dim cert As Chilkat.Cert cert = certStore.GetCertificate(i) System.DebugLog("DN = " + cert.SubjectDN) success = sbFilename.SetString("cert") success = sbFilename.AppendInt(i + 1) Dim bHasPrivateKey As Boolean bHasPrivateKey = cert.HasPrivateKey() If ((bHasPrivateKey = True) And (cert.PrivateKeyExportable = True)) Then // Export to a .pfx success = cert.ExportToPfxBd(pfxPassword,True,certData) If (success = True) Then success = sbFilename.Append(".pfx") entry = zip.AppendBd(sbFilename.GetAsString(),certData) End If Else // Export to a .cer success = cert.ExportCertDerBd(certData) If (success = True) Then success = sbFilename.Append(".cer") entry = zip.AppendBd(sbFilename.GetAsString(),certData) End If End If If (success <> True) Then allSuccess = False Else numSuccess = numSuccess + 1 End If i = i + 1 Wend If (numSuccess > 0) Then success = zip.WriteZipAndClose() If (success <> True) Then System.DebugLog(zip.LastErrorText) allSuccess = False End If End If System.DebugLog("All success = " + Str(allSuccess)) |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.