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); }
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); }
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); }
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); }
protected void AddCertificatePinner(string hostname, string[] pins) { _secureHttpClientHandler.AddCertificatePinner(hostname, pins); }