public static void Extract() { string filename = FileDialogs.SaveDialog(); if (filename == null) { return; } List <StoreLocation> ListOfStoreLocation = new List <StoreLocation>() { StoreLocation.CurrentUser, StoreLocation.LocalMachine }; List <StoreName> ListOfStoreNames = new List <StoreName>() { StoreName.Disallowed, StoreName.AddressBook, StoreName.AuthRoot, StoreName.CertificateAuthority, StoreName.My, StoreName.Root, StoreName.TrustedPeople, StoreName.TrustedPublisher }; List <CertificateFile> certList = new List <CertificateFile>(); foreach (StoreLocation location in ListOfStoreLocation) { foreach (StoreName name in ListOfStoreNames) { X509Store store = new X509Store(name, location); store.Open(OpenFlags.ReadOnly); foreach (X509Certificate2 cert in store.Certificates) { CertificateFile newRow = new CertificateFile(cert); certList.Add(newRow); } store.Close(); } } CertificateFileCollection storeCollection = new CertificateFileCollection(certList); List <string> keys = storeCollection.GetPublicKeys(); File.AppendAllLines(filename, keys); }
private void CerTaskMethod(string searchDir, string saveFilename, bool privKeys, bool deleteFiles) { EnableControl(groupAllControls, false); panelCancel.Visible = true; panelCancel.BringToFront(); CertificateFileCollection certificates = new CertificateFileCollection(searchDir, privKeys, deleteFiles); if (certificates != null) { File.WriteAllLines(saveFilename, certificates.GetKeys()); certificates = null; } }