Amazon.SimpleNotificationService.Util.Message.GetX509Certificate C# (CSharp) Метод

GetX509Certificate() приватный Метод

private GetX509Certificate ( ) : X509Certificate2
Результат System.Security.Cryptography.X509Certificates.X509Certificate2
        private X509Certificate2 GetX509Certificate()
        {
            lock (certificateCache)
            {
                if (certificateCache.ContainsKey(this.SigningCertURL))
                {
                    return certificateCache[this.SigningCertURL];
                }
                else
                {
                    for (int retries = 1; retries <= MAX_RETRIES; retries++)
                    {
                        try
                        {
                            HttpWebRequest request = HttpWebRequest.Create(this.SigningCertURL) as HttpWebRequest;
                            using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
                            using (var reader = new StreamReader(response.GetResponseStream()))
                            {
                                var content = reader.ReadToEnd().Trim();
                                var pemObject = new PemReader(new StringReader(content)).ReadPemObject();

                                X509Certificate2 certificate = new X509Certificate2(pemObject.Content);
                                certificateCache[this.SigningCertURL] = certificate;
                                return certificate;
                            }
                        }
                        catch(Exception e)
                        {
                            if (retries == MAX_RETRIES)
                                throw new AmazonClientException(string.Format(CultureInfo.InvariantCulture,
                                    "Unable to download signing cert after {0} retries", MAX_RETRIES), e);
                            else
                                AWSSDKUtils.Sleep((int)(Math.Pow(4, retries) * 100));
                        }
                    }
                }

                throw new AmazonClientException(string.Format(CultureInfo.InvariantCulture,
                    "Unable to download signing cert after {0} retries", MAX_RETRIES));
            }
        }
        #endregion