Browse Source

Diagnostic...

Douglas William Thrift 13 years ago
parent
commit
bab87a6e69
1 changed files with 67 additions and 2 deletions
  1. 67 2
      src/net/douglasthrift/bigscreenbot/Remote.java

+ 67 - 2
src/net/douglasthrift/bigscreenbot/Remote.java

@@ -119,7 +119,7 @@ public class Remote
         {
             KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA");
             KeyPair pair = generator.generateKeyPair();
-            X509Certificate certificate = SslUtil.generateX509V3Certificate(pair, "CN=anymote-remote/bigscreenbot/" + System.getProperty("os.name") + "/" + System.getProperty("os.arch") + "/" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName());
+            X509Certificate certificate = SslUtil.generateX509V3Certificate(pair, "CN=anymote/bigscreenbot/" + System.getProperty("os.name") + "/" + System.getProperty("os.arch") + "/" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName());
 
             store.setKeyEntry(LOCAL_ALIAS, pair.getPrivate(), NULL, new Certificate[]{ certificate });
 
@@ -130,7 +130,72 @@ public class Remote
 
         factory.init(store, NULL);
 
-        this.factory = DummySSLSocketFactory.fromKeyManagers(factory.getKeyManagers());
+        final javax.net.ssl.X509ExtendedKeyManager manager = (javax.net.ssl.X509ExtendedKeyManager)factory.getKeyManagers()[0];
+
+        this.factory = DummySSLSocketFactory.fromKeyManagers(new KeyManager[]{
+            new javax.net.ssl.X509ExtendedKeyManager()
+            {
+                @Override
+                public java.security.PrivateKey getPrivateKey(String alias)
+                {
+                    java.security.PrivateKey key = manager.getPrivateKey(alias);
+
+                    System.out.println("getPrivateKey(" + alias + ") -> " + key);
+
+                    return key;
+                }
+
+                @Override
+                public X509Certificate[] getCertificateChain(String alias)
+                {
+                    X509Certificate[] chain = manager.getCertificateChain(alias);
+
+                    System.out.println("getCertificateChain(" + alias + ") -> " + java.util.Arrays.toString(chain));
+
+                    return chain;
+                }
+
+                @Override
+                public String chooseServerAlias(String keyType, java.security.Principal[] issuers, java.net.Socket socket)
+                {
+                    String alias = manager.chooseServerAlias(keyType, issuers, socket);
+
+                    System.out.println("chooseServerAlias(" + keyType + ", " + java.util.Arrays.toString(issuers) + ", " + socket + ") -> " + alias);
+
+                    return alias;
+                }
+
+                @Override
+                public String[] getServerAliases(String keyType, java.security.Principal[] issuers)
+                {
+                    String[] aliases = manager.getServerAliases(keyType, issuers);
+
+                    System.out.println("getServerAliases(" + keyType + ", " + java.util.Arrays.toString(issuers) + ") -> " + java.util.Arrays.toString(aliases));
+
+                    return aliases;
+                }
+
+                @Override
+                public String chooseClientAlias(String[] keyType, java.security.Principal[] issuers, java.net.Socket socket)
+                {
+                    String alias = manager.chooseClientAlias(keyType, issuers, socket);
+
+                    System.out.println("chooseClientAlias(" + java.util.Arrays.toString(keyType) + ", " + java.util.Arrays.toString(issuers) + ", " + socket + ") -> " + alias);
+
+                    return alias;
+                }
+
+                @Override
+                public String[] getClientAliases(String keyType, java.security.Principal[] issuers)
+                {
+                    String[] aliases = manager.getClientAliases(keyType, issuers);
+
+                    System.out.println("getClientAliases(" + keyType + ", " + java.util.Arrays.toString(issuers) + ") -> " + java.util.Arrays.toString(aliases));
+
+                    return aliases;
+                }
+            }
+        });
     }
 
     public List<String> listDevices()