/// <summary> /// The Dropbox certificate validation callback. /// </summary> /// <param name="sender">The sender.</param> /// <param name="certificate">The certificate.</param> /// <param name="chain">The chain.</param> /// <param name="sslpolicyerrors">The sslpolicyerrors.</param> /// <returns></returns> private static bool DropboxCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslpolicyerrors) { X509ChainElement root = chain.ChainElements[chain.ChainElements.Count - 1]; string publicKey = root.Certificate.GetPublicKeyString(); return(DropboxCertHelper.IsKnownRootCertPublicKey(publicKey)); }
private void InitializeCertPinning() { ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { var root = chain.ChainElements[chain.ChainElements.Count - 1]; var publicKey = root.Certificate.GetPublicKeyString(); return(DropboxCertHelper.IsKnownRootCertPublicKey(publicKey)); }; }
/// <summary> /// The Dropbox certificate validation callback. /// </summary> /// <param name="sender">The sender.</param> /// <param name="certificate">The certificate.</param> /// <param name="chain">The chain.</param> /// <param name="sslpolicyerrors">The sslpolicyerrors.</param> /// <returns></returns> private static bool DropboxCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslpolicyerrors) { // http://babbacom.com/?p=300 - fix security hole if (sslpolicyerrors != SslPolicyErrors.None || chain == null) { return(false); } int n = chain.ChainElements.Count; if (n == 0) { return(false); } X509ChainElement root = chain.ChainElements[n - 1]; string publicKey = root.Certificate.GetPublicKeyString(); return(DropboxCertHelper.IsKnownRootCertPublicKey(publicKey)); }