/// <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));
        }
Exemplo n.º 2
0
        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));
            };
        }
Exemplo n.º 3
0
        /// <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));
        }