Ejemplo n.º 1
0
        private OkHttpClient CreateOkHttpClientInstance()
        {
            var builder = new OkHttpClient.Builder()
                          .ConnectTimeout(100, TimeUnit.Seconds)
                          .WriteTimeout(100, TimeUnit.Seconds)
                          .ReadTimeout(100, TimeUnit.Seconds)
                          .CookieJar(new JavaNetCookieJar(new Java.Net.CookieManager()));

            if (_certificatePinnerBuilder.IsValueCreated)
            {
                builder.CertificatePinner(_certificatePinnerBuilder.Value.Build());
            }

            if (Build.VERSION.SdkInt < BuildVersionCodes.Lollipop)
            {
                // Support TLS1.2 on Android versions before Lollipop
                builder.SslSocketFactory(new TlsSslSocketFactory(KeyManagers, TrustManagers), _x509TrustManager ?? TlsSslSocketFactory.GetSystemDefaultTrustManager());
            }
            else if (_keyMgrFactory != null || _trustMgrFactory != null)
            {
                var context = SSLContext.GetInstance("TLS");
                context.Init(KeyManagers, TrustManagers, null);
                builder.SslSocketFactory(context.SocketFactory, _x509TrustManager ?? TlsSslSocketFactory.GetSystemDefaultTrustManager());
            }

            return(builder.Build());
        }
Ejemplo n.º 2
0
        private static SSLSocketFactory SelfSignedSocketFactory()
        {
            var trustManager = new SelfSignedTrustManager();
            var sslContext   = SSLContext.GetInstance("TLS");

            sslContext.Init(null, new[] { trustManager }, null);
            return(sslContext.SocketFactory);
        }
Ejemplo n.º 3
0
 /// <summary>Initializes the factory.</summary>
 /// <exception cref="GeneralSecurityException">
 /// thrown if an SSL initialization error
 /// happened.
 /// </exception>
 /// <exception cref="System.IO.IOException">
 /// thrown if an IO error happened while reading the SSL
 /// configuration.
 /// </exception>
 public virtual void Init()
 {
     keystoresFactory.Init(mode);
     context = SSLContext.GetInstance("TLS");
     context.Init(keystoresFactory.GetKeyManagers(), keystoresFactory.GetTrustManagers
                      (), null);
     context.GetDefaultSSLParameters().SetProtocols(enabledProtocols);
     hostnameVerifier = GetHostnameVerifier(conf);
 }
Ejemplo n.º 4
0
 public TlsSslSocketFactory(IKeyManager[] keyManagers = null, ITrustManager[] trustManagers = null)
 {
     if (keyManagers != null || trustManagers != null)
     {
         var context = SSLContext.GetInstance("TLS");
         context.Init(keyManagers, trustManagers, null);
         _factory = context.SocketFactory;
     }
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Sets up the socket factory and hostname verifier to allow all
        /// certificates for all servers.
        /// </summary>
        public static void SetupDangerous()
        {
            // we want to use a new trust manager (high risk!)
            var context = SSLContext.GetInstance("TLSv1.2");

            context.Init(null, new ITrustManager[] { new NullX509TrustManager() }, new SecureRandom());

            // apply the new context
            Setup(context.SocketFactory, new NullHostnameVerifier());
        }
Ejemplo n.º 6
0
        private SSLSocketFactory GetSocketFactory()
        {
            // Create an SSLContext that uses our TrustManager
            var context = SSLContext.GetInstance("TLSv1.2");

            context.Init(null, new ITrustManager[] { new CustomX509TrustManager() }, null);

            // return the final socket factory
            return(context.SocketFactory);
        }
Ejemplo n.º 7
0
        /// <exception cref="Sharpen.NoSuchAlgorithmException"></exception>
        /// <exception cref="Sharpen.KeyManagementException"></exception>
        public virtual SSLContext Build()
        {
            SSLContext sslcontext = SSLContext.GetInstance(this.protocol != null ? this.protocol
                                 : Tls);

            sslcontext.Init(!keymanagers.IsEmpty() ? Sharpen.Collections.ToArray(keymanagers,
                                                                                 new KeyManager[keymanagers.Count]) : null, !trustmanagers.IsEmpty() ? Sharpen.Collections.ToArray
                                (trustmanagers, new TrustManager[trustmanagers.Count]) : null, secureRandom);
            return(sslcontext);
        }
Ejemplo n.º 8
0
        void SetupSSL(HttpsURLConnection httpsConnection)
        {
            if (httpsConnection == null)
            {
                return;
            }

            SSLSocketFactory socketFactory = ConfigureCustomSSLSocketFactory(httpsConnection);

            if (socketFactory != null)
            {
                httpsConnection.SSLSocketFactory = socketFactory;
                return;
            }

            KeyStore keyStore = KeyStore.GetInstance(KeyStore.DefaultType);

            keyStore.Load(null, null);
            bool gotCerts = TrustedCerts?.Count > 0;

            if (gotCerts)
            {
                for (int i = 0; i < TrustedCerts.Count; i++)
                {
                    Certificate cert = TrustedCerts [i];
                    if (cert == null)
                    {
                        continue;
                    }
                    keyStore.SetCertificateEntry($"ca{i}", cert);
                }
            }
            keyStore = ConfigureKeyStore(keyStore);
            KeyManagerFactory   kmf = ConfigureKeyManagerFactory(keyStore);
            TrustManagerFactory tmf = ConfigureTrustManagerFactory(keyStore);

            if (tmf == null)
            {
                // If there are no certs and no trust manager factory, we can't use a custom manager
                // because it will cause all the HTTPS requests to fail because of unverified trust
                // chain
                if (!gotCerts)
                {
                    return;
                }

                tmf = TrustManagerFactory.GetInstance(TrustManagerFactory.DefaultAlgorithm);
                tmf.Init(keyStore);
            }

            SSLContext context = SSLContext.GetInstance("TLS");

            context.Init(kmf?.GetKeyManagers(), tmf.GetTrustManagers(), null);
            httpsConnection.SSLSocketFactory = context.SocketFactory;
        }
Ejemplo n.º 9
0
 /// <summary>Creates default SSL context based on system properties.</summary>
 /// <remarks>
 /// Creates default SSL context based on system properties. This method obtains
 /// default SSL context by calling <code>SSLContext.getInstance("Default")</code>.
 /// Please note that <code>Default</code> algorithm is supported as of Java 6.
 /// This method will fall back onto
 /// <see cref="CreateDefault()">CreateDefault()</see>
 /// when
 /// <code>Default</code> algorithm is not available.
 /// </remarks>
 /// <returns>default system SSL context</returns>
 /// <exception cref="Apache.Http.Conn.Ssl.SSLInitializationException"></exception>
 public static SSLContext CreateSystemDefault()
 {
     try
     {
         return(SSLContext.GetInstance("Default"));
     }
     catch (NoSuchAlgorithmException)
     {
         return(CreateDefault());
     }
 }
Ejemplo n.º 10
0
        public CallTrackerTask(string IpAddress, string deviceId)
        {
            _ipAddress = "https://" + IpAddress;
            _deviceId  = deviceId;

            client.RetryOnConnectionFailure = true;
            SSLContext sslContext = SSLContext.GetInstance("SSL");

            ITrustManager[] trustAllCerfs = new ITrustManager[] { new X509TrustManager() };
            sslContext.Init(null, trustAllCerfs, new Java.Security.SecureRandom());
            client.SetSslSocketFactory(sslContext.SocketFactory);
            client.SetHostnameVerifier(new HostNameVerifier());
        }
Ejemplo n.º 11
0
        public NativeMessageHandler(bool throwOnCaptiveNetwork, CustomSSLVerification customSSLVerification, NativeCookieHandler cookieHandler = null)
        {
            this.throwOnCaptiveNetwork = throwOnCaptiveNetwork;

            var clientBuilder = client.NewBuilder();

            var specsBuilder = new ConnectionSpec.Builder(ConnectionSpec.ModernTls).TlsVersions(TlsVersion.Tls12);
            var specs        = specsBuilder.Build();

            clientBuilder.ConnectionSpecs(new List <ConnectionSpec>()
            {
                specs
            });
            clientBuilder.Protocols(new[] { Protocol.Http11 }); // Required to avoid stream was reset: PROTOCOL_ERROR

            clientBuilder.HostnameVerifier(new HostnameVerifier(customSSLVerification.Pins));

            this.CertificatePinnerBuilder = new CertificatePinner.Builder();

            // Add Certificate Pins
            foreach (var pin in customSSLVerification.Pins)
            {
                this.CertificatePinnerBuilder.Add(pin.Hostname, pin.PublicKeys);
            }

            clientBuilder.CertificatePinner(CertificatePinnerBuilder.Build());

            // Set client credentials
            SetClientCertificate(customSSLVerification.ClientCertificate);

            // Set SslSocketFactory
            if (Build.VERSION.SdkInt < BuildVersionCodes.Lollipop)
            {
                // Support TLS1.2 on Android versions before Lollipop
                clientBuilder.SslSocketFactory(new TlsSslSocketFactory(KeyManagers, null), TlsSslSocketFactory.GetSystemDefaultTrustManager());
            }
            else
            {
                var sslContext = SSLContext.GetInstance("TLS");
                sslContext.Init(KeyManagers, null, null);
                clientBuilder.SslSocketFactory(sslContext.SocketFactory, TlsSslSocketFactory.GetSystemDefaultTrustManager());
            }

            if (cookieHandler != null)
            {
                clientBuilder.CookieJar(cookieHandler);
            }

            client = clientBuilder.Build();
        }
        private SSLSocketFactory GetFactory()
        {
            if (_factory != null)
            {
                return(_factory);
            }

            Android.Util.Log.Warn("ModernHttpClient", "ImprovedSSLSocketFactory : creating factory again");
            var context = SSLContext.GetInstance("TLS");

            context.Init(null, new[] { _trustManager }, null);
            _factory = context.SocketFactory;
            return(_factory);
        }
Ejemplo n.º 13
0
        public Communicator()
        {
            trustAllSslContext = SSLContext.GetInstance("SSL");
            trustAllSslContext.Init(null, new ITrustManager[] { new CustomX509TrustManager() }, new SecureRandom());

            client = new OkHttpClient();
            client.SetConnectTimeout(5, Java.Util.Concurrent.TimeUnit.Seconds);
            client.SetSslSocketFactory(trustAllSslContext.SocketFactory);
            client.SetHostnameVerifier(new CustomHostNameVerifier());
            client.SetProtocols(new Protocol[] { Protocol.Http11 });

            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().PermitAll().Build();
            StrictMode.SetThreadPolicy(policy);
        }
Ejemplo n.º 14
0
        private OkHttpClient GetUnsafeOkHttpClient()
        {
            ITrustManager[] trustAllCerts = new ITrustManager[] { new X509TrustManager() };
            SSLContext      sslContext    = SSLContext.GetInstance("SSL");

            sslContext.Init(null, trustAllCerts, null);
            SSLSocketFactory sslSocketFactory = sslContext.SocketFactory;
            OkHttpClient     okHttpClient     = new OkHttpClient();

            okHttpClient.SetSslSocketFactory(sslSocketFactory);
            okHttpClient.SetHostnameVerifier(new UnsafeHostnameVerifier());

            return(okHttpClient);
        }
        //https://github.com/square/okhttp/issues/2372#issuecomment-244807676
        public static OkHttpClient.Builder EnableTls12OnPreLollipopDevices(this OkHttpClient.Builder builder)
        {
            int currentVersion = (int)Build.VERSION.SdkInt;

            if (currentVersion >= 16 && currentVersion < 22)
            {
                try
                {
                    //Creation of X509TrustManager : https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.Builder.html#sslSocketFactory-javax.net.ssl.SSLSocketFactory-javax.net.ssl.X509TrustManager-
                    var trustManagerFactory = TrustManagerFactory.GetInstance(TrustManagerFactory.DefaultAlgorithm);
                    trustManagerFactory.Init((Java.Security.KeyStore)null);
                    var trustManagers = trustManagerFactory.GetTrustManagers();

                    if (trustManagers.Length != 1)
                    {
                        throw new Java.Lang.IllegalStateException($"Unexpected default trust managers: {trustManagers}");
                    }

                    var trustManager = trustManagers[0].JavaCast <IX509TrustManager>();
                    if (trustManager == null)
                    {
                        throw new Java.Lang.IllegalStateException($"Unexpected default trust managers: {trustManagers}");
                    }

                    var context = SSLContext.GetInstance("TLS");
                    context.Init(null, new ITrustManager[] { trustManager }, null);
                    builder.SslSocketFactory(new ImprovedSSLSocketFactory(context.SocketFactory, trustManager), trustManager);

                    ConnectionSpec connectionSpec = new ConnectionSpec.Builder(ConnectionSpec.ModernTls)
                                                    .TlsVersions(TlsVersion.Tls12)
                                                    .Build();

                    List <ConnectionSpec> connexionSpecs = new List <ConnectionSpec>
                    {
                        new ConnectionSpec.Builder(ConnectionSpec.ModernTls).TlsVersions(TlsVersion.Tls12).Build(),
                        ConnectionSpec.ModernTls,
                        ConnectionSpec.CompatibleTls,
                        ConnectionSpec.Cleartext,
                    };

                    builder.ConnectionSpecs(connexionSpecs);
                }
                catch (Exception ex)
                {
                    Android.Util.Log.Warn("ModernHttpClient", $"Unable to enable TLS 1.2 on okhttpclient: {ex}");
                }
            }

            return(builder);
        }
Ejemplo n.º 16
0
        public static void TrustEveryone()
        {
            try
            {
                HttpsURLConnection.DefaultHostnameVerifier = new HostnameVerifier();
                SSLContext context = SSLContext.GetInstance("TLS");

                context.Init(null, new ITrustManager[] { new MyX509TrustManager() }, new SecureRandom());
                HttpsURLConnection.DefaultSSLSocketFactory = context.SocketFactory;
            }
            catch (Exception exc)
            {
                ToLog?.Invoke($"{nameof(TrustEveryone)}", $"{exc.Message}");
            }
        }
Ejemplo n.º 17
0
        private void SetHandler()
        {
            var algoritm            = TrustManagerFactory.DefaultAlgorithm;
            var trustManagerFactory = TrustManagerFactory.GetInstance(algoritm);

            trustManagerFactory.Init((KeyStore)null);

            var        tm         = new ITrustManager[] { new PublicKeyManager() };
            SSLContext sslContext = SSLContext.GetInstance("TLS");

            sslContext.Init(null, tm, null);
            SSLContext.Default = sslContext;

            HttpsURLConnection.DefaultSSLSocketFactory = sslContext.SocketFactory;
        }
Ejemplo n.º 18
0
 public void Open(string url, string protocol, IDictionary <string, string> headers)
 {
     try
     {
         var ssl = SSLContext.GetInstance("TLS");
         ssl.Init(null, null, null);
         _controller       = new BridgeController(ssl);
         _controller.Proxy = this;
         _controller.Open(url, protocol, headers);
     }
     catch (Exception ex)
     {
         OnError(ex.Message);
     }
 }
Ejemplo n.º 19
0
        private static void trustAllHosts()
        {
            ITrustManager[] trustAllCerts = new TrustManager[] { };


            try
            {
                SSLContext e = SSLContext.GetInstance("TLS");
                e.Init((IKeyManager[])null, trustAllCerts, new SecureRandom());
                HttpsURLConnection.DefaultSSLSocketFactory = e.SocketFactory;
            }
            catch (Java.Lang.Exception var2)
            {
                var2.PrintStackTrace();
            }
        }
Ejemplo n.º 20
0
 private void AllowAllHosts()
 {
     // Setting TrustAll trust manager and AllowAllHostNameVerifier
     ITrustManager[] trustAllCerts = new ITrustManager[] { new AllowAllTrustManager() };
     try
     {
         SSLContext sc = SSLContext.GetInstance("SSL");
         sc.Init(null, trustAllCerts, new Java.Security.SecureRandom());
         HttpsURLConnection.DefaultSSLSocketFactory = sc.SocketFactory;
         HttpsURLConnection.DefaultHostnameVerifier = new AllowAllHostNameVerifier();
     }
     catch (Exception e)
     {
         Log.Error(TAG, "Exception during setting TrustAll key manager", e);
     }
 }
Ejemplo n.º 21
0
 /// <summary>
 /// Creates default factory based on the standard JSSE trust material
 /// (<code>cacerts</code> file in the security properties directory).
 /// </summary>
 /// <remarks>
 /// Creates default factory based on the standard JSSE trust material
 /// (<code>cacerts</code> file in the security properties directory). System properties
 /// are not taken into consideration.
 /// </remarks>
 /// <returns>the default SSL socket factory</returns>
 /// <exception cref="Apache.Http.Conn.Ssl.SSLInitializationException"></exception>
 public static SSLContext CreateDefault()
 {
     try
     {
         SSLContext sslcontext = SSLContext.GetInstance(SSLContextBuilder.Tls);
         sslcontext.Init(null, null, null);
         return(sslcontext);
     }
     catch (NoSuchAlgorithmException ex)
     {
         throw new SSLInitializationException(ex.Message, ex);
     }
     catch (KeyManagementException ex)
     {
         throw new SSLInitializationException(ex.Message, ex);
     }
 }
Ejemplo n.º 22
0
        public static SSLSocketFactory createSSLSocketFactory()
        {
            SSLSocketFactory sSLSocketFactory = null;

            try
            {
                SSLContext sc = SSLContext.GetInstance("TLS");
                sc.Init(null, new ITrustManager[] { new HttpsTrustManager() },
                        new SecureRandom());
                sSLSocketFactory = sc.SocketFactory;
            }
            catch (Exception e)
            {
            }

            return(sSLSocketFactory);
        }
        async Task <String> JavaConnectAndReceiveMessage()
        {
            var hostName = "192.168.1.103";
            var port     = 56111;

            // Build Java Keystore
            Stream   keyin = Resources.OpenRawResource(Resource.Raw.ClientBKS);
            KeyStore ks    = KeyStore.GetInstance("BKS");

            ks.Load(keyin, "password".ToCharArray());

            return(await Task.Run(() => {
                String defaultAlgorithm = KeyManagerFactory.DefaultAlgorithm;
                KeyManagerFactory keyManagerFactory = KeyManagerFactory.GetInstance(defaultAlgorithm);
                keyManagerFactory.Init(ks, "password".ToCharArray());

                SSLContext sslContext = SSLContext.GetInstance("TLS");
                sslContext.Init(keyManagerFactory.GetKeyManagers(), null, null);

                SSLSocketFactory sslSocketFactory = sslContext.SocketFactory;
                Javax.Net.Ssl.SSLSocket sslSocket = (Javax.Net.Ssl.SSLSocket)sslSocketFactory.CreateSocket(new Java.Net.Socket(hostName, port), hostName, port, false);
                sslSocket.AddHandshakeCompletedListener(this);
                sslSocket.NeedClientAuth = true;
                sslSocket.KeepAlive = true;
                sslSocket.StartHandshake();

                // Exchange Messages
                Stream sslIS = sslSocket.InputStream;
                Stream sslOS = sslSocket.OutputStream;

                // Encode a test message into a byte array.
                // Signal the end of the message using the "<EOF>".
                byte[] messsage = Encoding.UTF8.GetBytes("Hello from the client.<EOF>");
                sslOS.Write(messsage, 0, messsage.Length);
                sslOS.Flush();

                string serverMessage = ReadMessage(sslIS);

                sslSocket.Close();

                return serverMessage;
            }));
        }
Ejemplo n.º 24
0
 /// <exception cref="System.IO.IOException"></exception>
 private void DisableSslVerify(URLConnection conn)
 {
     TrustManager[] trustAllCerts = new TrustManager[] { new TransportHttp.DummyX509TrustManager
                                                             () };
     try
     {
         SSLContext ctx = SSLContext.GetInstance("SSL");
         ctx.Init(null, trustAllCerts, null);
         HttpsURLConnection sslConn = (HttpsURLConnection)conn;
         sslConn.SetSSLSocketFactory(ctx.GetSocketFactory());
     }
     catch (KeyManagementException e)
     {
         throw new IOException(e.Message);
     }
     catch (NoSuchAlgorithmException e)
     {
         throw new IOException(e.Message);
     }
 }
    private SSLContext GetSSLContext()
    {
        string protocol;

        if (SslProtocols == SslProtocols.Tls11)
        {
            protocol = "TLSv1.1";
        }
        else if (SslProtocols == SslProtocols.Tls || SslProtocols == SslProtocols.Tls12)
        {
            protocol = "TLSv1.2";
        }
        else
        {
            throw new IOException("unsupported ssl protocol: " + SslProtocols.ToString());
        }
        SSLContext ctx = SSLContext.GetInstance(protocol);

        ctx.Init(keyManagers, trustManagers, null);
        return(ctx);
    }
        protected override SSLSocketFactory ConfigureCustomSSLSocketFactory(HttpsURLConnection connection)
        {
            var algorithm           = TrustManagerFactory.DefaultAlgorithm;
            var trustManagerFactory = TrustManagerFactory.GetInstance(algorithm);

            trustManagerFactory.Init((KeyStore)null);

            var trustManagers = trustManagerFactory.GetTrustManagers();
            var context       = SSLContext.GetInstance("TLS");

            context.Init(null, trustManagers, null);
            SSLContext.Default = context;

            if (_trustManagerExt == null)
            {
                var x509TrustManager = trustManagers.FirstOrDefault(x => x is IX509TrustManager) as IX509TrustManager;
                _trustManagerExt = new X509TrustManagerExtensions(x509TrustManager);
            }

            return(context.SocketFactory);
        }
        public CertificatePinning()
        {
            try {
                byte[] keyStoreBytes = Base64.Decode("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", 0);

                KeyStore keyStore         = KeyStore.GetInstance("BKS");
                System.IO.MemoryStream ms = new System.IO.MemoryStream(keyStoreBytes);
                GZIPInputStream        keyStoreInputStream = new GZIPInputStream(ms);
                //var readbytes = keyStoreInputStream.ToArray<byte>();

                List <byte> values = new List <byte>();

                bool notdone = true;
                while (notdone)
                {
                    var input = keyStoreInputStream.Read();
                    if (input < 0 || input > 255)
                    {
                        break;
                    }
                    values.Add((byte)input);
                }
                try {
                    keyStore.Load(new System.IO.MemoryStream(values.ToArray()), null);
                } finally {
                    keyStoreInputStream.Close();
                }
                TRUST_STORE = keyStore;

                String algorithm = TrustManagerFactory.DefaultAlgorithm;
                TrustManagerFactory trustManagerFactory = TrustManagerFactory.GetInstance(algorithm);
                trustManagerFactory.Init(keyStore);

                SSLContext context = SSLContext.GetInstance("TLS");
                context.Init(null, trustManagerFactory.GetTrustManagers(), null);
                SSL_CONTEXT = context;
            } catch (Exception e) {
            }
        }
Ejemplo n.º 28
0
        private OkHttpClient CreateOkHttpClientInstance()
        {
            var builder = new OkHttpClient.Builder()
                          .ConnectTimeout(100, TimeUnit.Seconds)
                          .WriteTimeout(100, TimeUnit.Seconds)
                          .ReadTimeout(100, TimeUnit.Seconds)
                          .FollowRedirects(AllowAutoRedirect)
                          .AddInterceptor(new DecompressInterceptor(_logger));

            if (UseCookies)
            {
                builder.CookieJar(new JavaNetCookieJar(new Java.Net.CookieManager()));
            }

            if (!UseProxy)
            {
                builder.Proxy(Java.Net.Proxy.NoProxy);
            }
            else if (Proxy is WebProxy webProxy)
            {
                var proxyAddress = new InetSocketAddress(webProxy.Address.Host, webProxy.Address.Port);
                builder.Proxy(new Proxy(Java.Net.Proxy.Type.Http, proxyAddress));
            }

            if (_certificatePinnerBuilder.IsValueCreated)
            {
                builder.CertificatePinner(_certificatePinnerBuilder.Value.Build());
            }

            if (_keyMgrFactory != null || _trustMgrFactory != null)
            {
                var context = SSLContext.GetInstance("TLS");
                context.Init(KeyManagers, TrustManagers, null);
                builder.SslSocketFactory(context.SocketFactory, _x509TrustManager ?? TlsSslSocketFactory.GetSystemDefaultTrustManager());
            }

            return(builder.Build());
        }
Ejemplo n.º 29
0
        protected override void OnCreate(Bundle bundle)
        {
            try
            {
                base.OnCreate(bundle);
                InputDialog.DisplayDialog += OnDisplayDialog;
                AndroidEnvironment.UnhandledExceptionRaiser += HandleUnhandledException;

                global::Xamarin.Forms.Forms.Init(this, bundle);

                context = ApplicationContext; // or activity.getApplicationContext()
                PackageManager packageManager = context.PackageManager;
                string         packageName    = context.PackageName;
                AppData.Version = new OnSiteVersion(string.Format("{0}", packageManager.GetPackageInfo(packageName, 0).VersionName));

                LoadApplication(new App());

                //AppContext.AppContext.ShowInput = () =>
                //{
                //    InputMethodManager showinput = (InputMethodManager)GetSystemService(InputMethodService);
                //    showinput.ToggleSoftInput(ShowFlags.Forced, 0);
                //};


                if (Build.VERSION.SdkInt <= BuildVersionCodes.Kitkat)
                {
                    ProviderInstaller.InstallIfNeeded(ApplicationContext);
                }
                SSLContext sslContext = SSLContext.GetInstance("TLSv1.2");
                sslContext.Init(null, null, null);
                SSLEngine engine = sslContext.CreateSSLEngine();
            }
            catch (Exception ex)
            {
                LogTracking.LogTrace(ex.ToString());
            }
        }
Ejemplo n.º 30
0
        public NativeMessageHandler()
        {
            var clientBuilder = _client.NewBuilder();

            // tls
            var tlsSpecBuilder = new ConnectionSpec.Builder(ConnectionSpec.ModernTls).TlsVersions(new[] { TlsVersion.Tls12, TlsVersion.Tls13 });
            var tlsSpec        = tlsSpecBuilder.Build();
            var specs          = new List <ConnectionSpec>()
            {
                tlsSpec, ConnectionSpec.Cleartext
            };

            clientBuilder.ConnectionSpecs(specs);

            // 始终有Http11避免PROTOCOL_ERROR
            clientBuilder.Protocols(new[] { Protocol.Http11, Protocol.Http2 });

            // 信任所有服务器证书,支持自签名证书
            var sslContext   = SSLContext.GetInstance("TLS");
            var trustManager = new CustomX509TrustManager();

            sslContext.Init(null, new ITrustManager[] { trustManager }, new SecureRandom());
            // Create an ssl socket factory with our all-trusting manager
            var sslSocketFactory = sslContext.SocketFactory;

            clientBuilder.SslSocketFactory(sslSocketFactory, trustManager);

            // 读始终不超时,配合服务器推送
            clientBuilder.ReadTimeout(0, TimeUnit.Milliseconds);
            clientBuilder.WriteTimeout(0, TimeUnit.Milliseconds);
            clientBuilder.CallTimeout(0, TimeUnit.Milliseconds);

            // Hostname始终有效
            clientBuilder.HostnameVerifier((name, ssl) => true);
            _client = clientBuilder.Build();
        }