public static List <TOCertificadoDigital> BuscarListaCertificados()
        {
            List <TOCertificadoDigital> lista = new List <TOCertificadoDigital>();

            IntPtr hCertStore = Crypt32.CertOpenSystemStore(IntPtr.Zero, "My");

            if (hCertStore == IntPtr.Zero)
            {
                throw new Exception("CertOpenSystemStore failed: " + Marshal.GetLastWin32Error().ToString());
            }

            IntPtr pCertContext = Crypt32.CertEnumCertificatesInStore(hCertStore, IntPtr.Zero);

            while (pCertContext != IntPtr.Zero)
            {
                //X509Certificate2 x509 = new X509Certificate2("c:", "dec2017",X509KeyStorageFlags.MachineKeySet);
                X509Certificate2 x509 = new X509Certificate2(pCertContext);
                //Verifica se o certificado foi emitido pelo ICP-Brasil
                if (x509.Issuer.Contains("O=ICP-Brasil") &&
                    x509.Issuer.Contains("C=BR"))
                {
                    if (ValidarCertificado(x509, DateTime.Now))
                    {
                        lista.Add(new TOCertificadoDigital(x509));
                    }
                }
                pCertContext = Crypt32.CertEnumCertificatesInStore(hCertStore, pCertContext);
            }

            return(lista);
        }