Ruby
Ruby
Backup Windows Current User / Personal Certificates to a .zip
See more Certificates Examples
Demonstrates 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.
Chilkat Ruby Downloads
require 'chilkat'
success = false
certStore = Chilkat::CkCertStore.new()
readOnly = true
success = certStore.OpenCurrentUserStore(readOnly)
if (!success)
print certStore.lastErrorText() + "\n";
exit
end
pfxPassword = "secret"
allSuccess = true
numSuccess = 0
zip = Chilkat::CkZip.new()
zip.NewZip("qa_output/personalCerts.zip")
certData = Chilkat::CkBinData.new()
sbFilename = Chilkat::CkStringBuilder.new()
# Iterate over the certificates in the Current User store.
cert = Chilkat::CkCert.new()
numCerts = certStore.get_NumCertificates()
i = 0
while i < numCerts
certStore.GetCert(i,cert)
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")
zip.AddBd(sbFilename.getAsString(),certData)
end
else
# Export to a .cer
success = cert.ExportCertDerBd(certData)
if (success == true)
sbFilename.Append(".cer")
zip.AddBd(sbFilename.getAsString(),certData)
end
end
if (success != true)
allSuccess = false
else
numSuccess = numSuccess + 1
end
i = i + 1
end
if (numSuccess > 0)
success = zip.WriteZipAndClose()
if (success != true)
print zip.lastErrorText() + "\n";
allSuccess = false
end
end
print "All success = " + allSuccess.to_s() + "\n";