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
(CkPython) 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.
import sys import chilkat certStore = chilkat.CkCertStore() readOnly = True success = certStore.OpenCurrentUserStore(readOnly) if (not success): print(certStore.lastErrorText()) sys.exit() pfxPassword = "secret" allSuccess = True numSuccess = 0 zip = chilkat.CkZip() zip.NewZip("qa_output/personalCerts.zip") certData = chilkat.CkBinData() sbFilename = chilkat.CkStringBuilder() # Iterate over the certificates in the Current User store. numCerts = certStore.get_NumCertificates() i = 0 while i < numCerts : # cert is a CkCert cert = certStore.GetCertificate(i) print("DN = " + cert.subjectDN()) sbFilename.SetString("cert") sbFilename.AppendInt(i + 1) bHasPrivateKey = cert.HasPrivateKey() if ((bHasPrivateKey == True) and (cert.get_PrivateKeyExportable() == True)): # Export to a .pfx success = cert.ExportToPfxBd(pfxPassword,True,certData) if (success == True): sbFilename.Append(".pfx") # entry is a CkZipEntry entry = zip.AppendBd(sbFilename.getAsString(),certData) else: # Export to a .cer success = cert.ExportCertDerBd(certData) if (success == True): sbFilename.Append(".cer") # entry is a CkZipEntry entry = zip.AppendBd(sbFilename.getAsString(),certData) if (success != True): allSuccess = False else: numSuccess = numSuccess + 1 i = i + 1 if (numSuccess > 0): success = zip.WriteZipAndClose() if (success != True): print(zip.lastErrorText()) allSuccess = False print("All success = " + str(allSuccess)) |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.