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