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
(PHP Extension) 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.
<?php // The version number (9_5_0) should match version of the Chilkat extension used, omitting the micro-version number. // For example, if using Chilkat v9.5.0.48, then include as shown here: include("chilkat_9_5_0.php"); $certStore = new CkCertStore(); $readOnly = true; $success = $certStore->OpenCurrentUserStore($readOnly); if (!$success) { print $certStore->lastErrorText() . "\n"; exit; } $pfxPassword = 'secret'; $allSuccess = true; $numSuccess = 0; $zip = new CkZip(); $zip->NewZip('qa_output/personalCerts.zip'); $certData = new CkBinData(); $sbFilename = new 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() . "\n"; $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() . "\n"; $allSuccess = false; } } print 'All success = ' . $allSuccess . "\n"; ?> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.