AuthBridge.Utilities.CertificateUtil.GetCertificate C# (CSharp) Method

GetCertificate() public static method

public static GetCertificate ( StoreName name, StoreLocation location, string subjectName ) : X509Certificate2
name StoreName
location StoreLocation
subjectName string
return System.Security.Cryptography.X509Certificates.X509Certificate2
        public static X509Certificate2 GetCertificate(StoreName name, StoreLocation location, string subjectName)
        {
            X509Store store = new X509Store(name, location);
            X509Certificate2Collection certificates = null;
            store.Open(OpenFlags.ReadOnly);

            try
            {
                X509Certificate2 result = null;

                certificates = store.Certificates;

                for (int i = 0; i < certificates.Count; i++)
                {
                    X509Certificate2 cert = certificates[i];

                    if (cert.SubjectName.Name.ToLower() == subjectName.ToLower())
                    {
                        if (result != null)
                        {
                            throw new ApplicationException(
                                $"There are multiple certificates for subject Name {subjectName}");
                        }

                        result = new X509Certificate2(cert);
                    }
                }

                if (result == null)
                {
                    throw new ApplicationException($"No certificate was found for subject Name {subjectName}");
                }

                return result;
            }
            finally
            {
                if (certificates != null)
                {
                    for (int i = 0; i < certificates.Count; i++)
                    {
                        X509Certificate2 cert = certificates[i];
                        cert.Reset();
                    }
                }

                store.Close();
            }
        }
CertificateUtil