private StoreLocation RetornaStoreLocation(CertSignStoreLocation storeLocation)
        {
            switch (storeLocation)
            {
            case CertSignStoreLocation.CurrentUser:
                return(StoreLocation.CurrentUser);

            case CertSignStoreLocation.LocalMachine:
                return(StoreLocation.LocalMachine);

            default:
                return(StoreLocation.CurrentUser);
            }
        }
        private List <DigitalCertificate> GetCertificates(CertSignStoreName storeName, CertSignStoreLocation storeLocation)
        {
            try
            {
                var store = new X509Store(RetornaStoreName(storeName), RetornaStoreLocation(storeLocation));
                store.Open(OpenFlags.MaxAllowed);
                if (store != null)
                {
                    var collection        = store.Certificates;
                    var listaCertificados = collection.Find(X509FindType.FindByKeyUsage, X509KeyUsageFlags.DigitalSignature, true);

                    var list = new List <DigitalCertificate>();
                    foreach (var i in listaCertificados)
                    {
                        if (!string.IsNullOrEmpty(i.FriendlyName))
                        {
                            list.Add(new DigitalCertificate
                            {
                                FriendlyName = i.FriendlyName,
                                Name         = i.IssuerName.Name,
                                Certificate  = i,
                                PublicKey    = i.GetPublicKey()
                            });
                        }
                    }

                    return(list);
                }
                return(null);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(null);
            }
        }
        public DigitalCertificate[] GetArrayCertificates(CertSignStoreName storeName, CertSignStoreLocation storeLocation)
        {
            var lista = GetCertificates(storeName, storeLocation);

            return(lista.ToArray());
        }
 public List <DigitalCertificate> GetListCertificates(CertSignStoreName storeName, CertSignStoreLocation storeLocation)
 {
     return(GetCertificates(storeName, storeLocation));
 }