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); }