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 ActiveX) 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 // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.CertStore') $certStore = new COM("Chilkat.CertStore"); $readOnly = 1; $success = $certStore->OpenCurrentUserStore($readOnly); if (!$success) { print $certStore->LastErrorText . "\n"; exit; } $pfxPassword = 'secret'; $allSuccess = 1; $numSuccess = 0; // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.Zip') $zip = new COM("Chilkat.Zip"); $zip->NewZip('qa_output/personalCerts.zip'); // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.BinData') $certData = new COM("Chilkat.BinData"); // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.StringBuilder') $sbFilename = new COM("Chilkat.StringBuilder"); // Iterate over the certificates in the Current User store. $numCerts = $certStore->NumCertificates; $i = 0; while ($i < $numCerts) { // cert is a Chilkat.Cert $cert = $certStore->GetCertificate($i); print 'DN = ' . $cert->SubjectDN . "\n"; $sbFilename->SetString('cert'); $sbFilename->AppendInt($i + 1); $bHasPrivateKey = $cert->HasPrivateKey(); if (($bHasPrivateKey == 1) and ($cert->PrivateKeyExportable == 1)) { // Export to a .pfx $success = $cert->ExportToPfxBd($pfxPassword,1,$certData); if ($success == 1) { $sbFilename->Append('.pfx'); // entry is a Chilkat.ZipEntry $entry = $zip->AppendBd($sbFilename->getAsString(),$certData); } } else { // Export to a .cer $success = $cert->ExportCertDerBd($certData); if ($success == 1) { $sbFilename->Append('.cer'); // entry is a Chilkat.ZipEntry $entry = $zip->AppendBd($sbFilename->getAsString(),$certData); } } if ($success != 1) { $allSuccess = 0; } else { $numSuccess = $numSuccess + 1; } $i = $i + 1; } if ($numSuccess > 0) { $success = $zip->WriteZipAndClose(); if ($success != 1) { print $zip->LastErrorText . "\n"; $allSuccess = 0; } } print 'All success = ' . $allSuccess . "\n"; ?> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.