Example #1
0
        static void Main(string[] args)
        {
            foreach (StoreLocation storeLocation in (StoreLocation[])Enum.GetValues(typeof(StoreLocation)))
            {
                foreach (StoreName storeName in (StoreName[])Enum.GetValues(typeof(StoreName)))
                {
                    X509Store store = new X509Store(storeName, storeLocation);
                    try
                    {
                        store.Open(OpenFlags.OpenExistingOnly);
                        if (store.Certificates.Count > 0)
                        {
                            Console.WriteLine("Store:   {0}, {1}", store.Name, store.Location);
                            Console.WriteLine("=============================================");

                            foreach (X509Certificate2 Cert in store.Certificates)
                            {
                                if (Cert.NotAfter <= DateTime.Now)
                                {
                                    Console.WriteLine("Expired: " + (Cert.FriendlyName != "" ? Cert.FriendlyName + ", " : Cert.Subject) + " (" + Cert.GetExpirationDateString() + ")");
                                }
                                else
                                {
                                    Console.WriteLine("OK:      " + (Cert.FriendlyName != "" ? Cert.FriendlyName + ", " : Cert.Subject) + " (" + Cert.GetExpirationDateString() + ")");
                                }
                            }
                            Console.WriteLine();
                        }
                        store.Close();
                    }
                    catch (CryptographicException)
                    {
                        //store does not exist or access denied
                    }
                }
            }
        }