public jvm::java.security.cert.X509Certificate[] getAcceptedIssuers()
        {
            // tested by ?
            var dir = new FileInfo(typeof(TrustEveryoneManager).Assembly.Location).Directory;

            // firefox needs a cert here?
            //Console.WriteLine("X509TrustManager getAcceptedIssuers " + new { dir });


            var ff = from f in dir.GetFiles()
                     where f.Name.EndsWith(".crt")

                     //jvm::java.security.cert.CertificateFactory.getInstance("X.509").generateCertificate(
                     //let crt = jvm::java.security.cert.X509Certificate.
                     select f;


            var a = new List<jvm::java.security.cert.X509Certificate> { };
            foreach (var item in ff)
            {
                //Console.WriteLine("X509TrustManager getAcceptedIssuers " + new { item.FullName });

                try
                {
                    var ksfis = new jvm::java.io.FileInputStream(item.FullName);
                    var certificate = (jvm::java.security.cert.X509Certificate)
                      jvm::java.security.cert.CertificateFactory.getInstance("X.509").generateCertificate(ksfis);

                    // Z:\jsc.svn\examples\javascript\ubuntu\UbuntuSSLWebApplication\UbuntuSSLWebApplication\ApplicationWebService.cs

                    a.Add(certificate);
                }
                catch
                {

                }

            }

            //Console.WriteLine("X509TrustManager getAcceptedIssuers " + new { a.Count });
            return a.ToArray();
        }
        public jvm::java.security.cert.X509Certificate[] getAcceptedIssuers()
        {
            // tested by ?
            var dir = new FileInfo(typeof(TrustEveryoneManager).Assembly.Location).Directory;

            // firefox needs a cert here?
            //Console.WriteLine("X509TrustManager getAcceptedIssuers " + new { dir });


            var ff = from f in dir.GetFiles()
                     where f.Name.EndsWith(".crt")

                     //jvm::java.security.cert.CertificateFactory.getInstance("X.509").generateCertificate(
                     //let crt = jvm::java.security.cert.X509Certificate.
                     select f;


            var a = new List <jvm::java.security.cert.X509Certificate> {
            };

            foreach (var item in ff)
            {
                //Console.WriteLine("X509TrustManager getAcceptedIssuers " + new { item.FullName });

                try
                {
                    var ksfis       = new jvm::java.io.FileInputStream(item.FullName);
                    var certificate = (jvm::java.security.cert.X509Certificate)
                                      jvm::java.security.cert.CertificateFactory.getInstance("X.509").generateCertificate(ksfis);

                    // Z:\jsc.svn\examples\javascript\ubuntu\UbuntuSSLWebApplication\UbuntuSSLWebApplication\ApplicationWebService.cs

                    a.Add(certificate);
                }
                catch
                {
                }
            }

            //Console.WriteLine("X509TrustManager getAcceptedIssuers " + new { a.Count });
            return(a.ToArray());
        }
        public localKeyManager(
            string keystorepath
            )
        {
            //Console.WriteLine("enter localKeyManager");


            try
            {
                var xFileInputStream = default(jvm::java.io.FileInputStream);


                var xKeyStore = default(jvm::java.security.KeyStore);
                // certmgr.msc
                var xKeyStoreDefaultType = "Windows-MY";
                var xKeyStorePassword = default(char[]);

                //try
                //{
                //    Console.WriteLine(new { xKeyStoreDefaultType });
                //    xKeyStore = KeyStore.getInstance(xKeyStoreDefaultType);
                //}
                //catch
                {
                    xKeyStoreDefaultType = jvm::java.security.KeyStore.getDefaultType();
                    // http://www.coderanch.com/t/377172/java/java/cacerts-JAVA-HOME-jre-lib
                    // /usr/lib/jvm/default-java/jre/lib/security/cacerts

                    //Console.WriteLine(new { xKeyStoreDefaultType });
                    xKeyStore = jvm::java.security.KeyStore.getInstance(xKeyStoreDefaultType);

                    //var fa = new FileInfo(typeof(Program).Assembly.Location);

                    try
                    {
                        xFileInputStream = new jvm::java.io.FileInputStream(keystorepath);
                        xKeyStorePassword = "".PadLeft(6, '0').ToCharArray();
                    }
                    catch
                    {
                        throw;
                    }
                }

                //Console.WriteLine("localKeyManager " + new { xKeyStore });

                xKeyStore.load(xFileInputStream, xKeyStorePassword);


                var en = xKeyStore.aliases();
                //Console.WriteLine("aliases... done");

                while (en.hasMoreElements())
                {
                    alias = (string)en.nextElement();
                }

                var kmf = jvm::javax.net.ssl.KeyManagerFactory.getInstance("SunX509");

                Console.WriteLine("localKeyManager " + new { kmf, xKeyStore, alias });


                kmf.init(xKeyStore, xKeyStorePassword);

                KeyManagers = kmf.getKeyManagers();

                //Console.WriteLine("localKeyManager " + new { KeyManagers.Length });


                //{ xKeyStoreDefaultType = Windows-MY }
                //WindowsMYKeyManagers { xKeyStore = java.security.KeyStore@ac4d3b }
                //WindowsMYKeyManagers { kmf = javax.net.ssl.KeyManagerFactory@1c7d56b }
                //WindowsMYKeyManagers { KeyManagers = [Ljavax.net.ssl.KeyManager;@f77511 }

                // http://docs.oracle.com/javase/7/docs/api/javax/net/ssl/KeyManager.html
                // http://stackoverflow.com/questions/5292074/how-to-specify-outbound-certificate-alias-for-https-calls
                // http://www.angelfire.com/or/abhilash/site/articles/jsse-km/customKeyManager.html

                foreach (var KeyManager in KeyManagers)
                {
                    var xX509KeyManager = KeyManager as jvm::javax.net.ssl.X509KeyManager;
                    if (xX509KeyManager != null)
                    {
                        //Console.WriteLine("localKeyManager " + new { xX509KeyManager });

                        InternalX509KeyManager = xX509KeyManager;
                    }
                }



                // http://stackoverflow.com/questions/15076820/java-sslhandshakeexception-no-cipher-suites-in-common
                // http://stackoverflow.com/questions/7535154/chrome-closing-connection-on-handshake-with-java-ssl-server
            }
            catch
            {
                throw;

            }
        }
        public localKeyManager(
            string keystorepath
            )
        {
            //Console.WriteLine("enter localKeyManager");


            try
            {
                var xFileInputStream = default(jvm::java.io.FileInputStream);


                var xKeyStore = default(jvm::java.security.KeyStore);
                // certmgr.msc
                var xKeyStoreDefaultType = "Windows-MY";
                var xKeyStorePassword    = default(char[]);

                //try
                //{
                //    Console.WriteLine(new { xKeyStoreDefaultType });
                //    xKeyStore = KeyStore.getInstance(xKeyStoreDefaultType);
                //}
                //catch
                {
                    xKeyStoreDefaultType = jvm::java.security.KeyStore.getDefaultType();
                    // http://www.coderanch.com/t/377172/java/java/cacerts-JAVA-HOME-jre-lib
                    // /usr/lib/jvm/default-java/jre/lib/security/cacerts

                    //Console.WriteLine(new { xKeyStoreDefaultType });
                    xKeyStore = jvm::java.security.KeyStore.getInstance(xKeyStoreDefaultType);

                    //var fa = new FileInfo(typeof(Program).Assembly.Location);

                    try
                    {
                        xFileInputStream  = new jvm::java.io.FileInputStream(keystorepath);
                        xKeyStorePassword = "".PadLeft(6, '0').ToCharArray();
                    }
                    catch
                    {
                        throw;
                    }
                }

                //Console.WriteLine("localKeyManager " + new { xKeyStore });

                xKeyStore.load(xFileInputStream, xKeyStorePassword);


                var en = xKeyStore.aliases();
                //Console.WriteLine("aliases... done");

                while (en.hasMoreElements())
                {
                    alias = (string)en.nextElement();
                }

                var kmf = jvm::javax.net.ssl.KeyManagerFactory.getInstance("SunX509");

                Console.WriteLine("localKeyManager " + new { kmf, xKeyStore, alias });


                kmf.init(xKeyStore, xKeyStorePassword);

                KeyManagers = kmf.getKeyManagers();

                //Console.WriteLine("localKeyManager " + new { KeyManagers.Length });


                //{ xKeyStoreDefaultType = Windows-MY }
                //WindowsMYKeyManagers { xKeyStore = java.security.KeyStore@ac4d3b }
                //WindowsMYKeyManagers { kmf = javax.net.ssl.KeyManagerFactory@1c7d56b }
                //WindowsMYKeyManagers { KeyManagers = [Ljavax.net.ssl.KeyManager;@f77511 }

                // http://docs.oracle.com/javase/7/docs/api/javax/net/ssl/KeyManager.html
                // http://stackoverflow.com/questions/5292074/how-to-specify-outbound-certificate-alias-for-https-calls
                // http://www.angelfire.com/or/abhilash/site/articles/jsse-km/customKeyManager.html

                foreach (var KeyManager in KeyManagers)
                {
                    var xX509KeyManager = KeyManager as jvm::javax.net.ssl.X509KeyManager;
                    if (xX509KeyManager != null)
                    {
                        //Console.WriteLine("localKeyManager " + new { xX509KeyManager });

                        InternalX509KeyManager = xX509KeyManager;
                    }
                }



                // http://stackoverflow.com/questions/15076820/java-sslhandshakeexception-no-cipher-suites-in-common
                // http://stackoverflow.com/questions/7535154/chrome-closing-connection-on-handshake-with-java-ssl-server
            }
            catch
            {
                throw;
            }
        }