Example #1
0
        public async Task CertificatePinnerTest_TwoHosts_SecondHostFails()
        {
            var secureHttpClientHandler = new SecureHttpClientHandler();

            secureHttpClientHandler.AddCertificatePinner(Hostname, PinsOk);
            secureHttpClientHandler.AddCertificatePinner(Hostname2, Pins2Ko);

            await AssertCertificatePinnerSuccessAsync(Page, secureHttpClientHandler).ConfigureAwait(false);
            await AssertCertificatePinnerFailureAsync(Page2, secureHttpClientHandler).ConfigureAwait(false);
        }
Example #2
0
        public async Task CertificatePinnerTest_OneHost_Failure()
        {
            var secureHttpClientHandler = new SecureHttpClientHandler();

            secureHttpClientHandler.AddCertificatePinner(Hostname, PinsKo);

            await AssertCertificatePinnerFailureAsync(Page, secureHttpClientHandler).ConfigureAwait(false);
        }
        public override HttpMessageHandler CreateMessageHandler()
        {
            var apiHost = new Uri("https://pokeapi.co/").Host;

            _secureHttpClientHandler.AddCertificatePinner(apiHost,
                                                          new string[] { "sha256/ERDh/10Q0FN9dIlnVgCqwBkkTHgysozHT5AzU+RtMgo=" });
            return(_secureHttpClientHandler);
        }
Example #4
0
        private static async Task <string> GetPageAsync(string page, string hostname = null, string[] pins = null)
        {
            var secureHttpClientHandler = new SecureHttpClientHandler();

            if (pins != null)
            {
                secureHttpClientHandler.AddCertificatePinner(hostname, pins);
            }
            string result;

            using (var httpClient = new HttpClient(secureHttpClientHandler))
                using (var response = await httpClient.GetAsync(page).ConfigureAwait(false))
                {
                    result = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
                }
            return(result);
        }
Example #5
0
        public static HttpClient CreateHttpClient(string url)
        {
            HttpClient client;
            Uri        baseAddress = new Uri(url);

            var innerHandler = new SecureHttpClientHandler(null);

            innerHandler.UseProxy = false;
            innerHandler.AddCertificatePinner(baseAddress.Host, CertificatePins);
#if DEBUG
            var verbosity = HttpMessageParts.RequestBody | HttpMessageParts.RequestHeaders | HttpMessageParts.ResponseBody;
            client = new HttpClient(new HttpTracerHandler(innerHandler, verbosity));
#else
            client = new HttpClient(innerHandler);
#endif
            client.BaseAddress = baseAddress;
            client.Timeout     = TimeSpan.FromSeconds(60);

            return(client);
        }
Example #6
0
 protected void AddCertificatePinner(string hostname, string[] pins)
 {
     _secureHttpClientHandler.AddCertificatePinner(hostname, pins);
 }