public String chooseClientAlias(String[] keyType, Principal[] issuers, Socket
socket) {
- //System.out.println("MyX509KeyManager.chooseClientAlias()");
- //for (int i = 0; i < keyType.length; i++) {
- //System.out.println("MyX509KeyManager.chooseClientAlias() keyType[" + i +
-//"]=" + keyType[i]);
- //}
- //for (int i = 0; i < issuers.length; i++) {
- //System.out.println("MyX509KeyManager.chooseClientAlias() issuers[" + i +
-//"]=" + issuers[i]);
- //}
+ System.out.println("MyX509KeyManager.chooseClientAlias()");
+/*
+ for (int i = 0; i < keyType.length; i++) {
+ System.out.println("MyX509KeyManager.chooseClientAlias() keyType[" + i +
+"]=" + keyType[i]);
+ }
+ for (int i = 0; i < issuers.length; i++) {
+ System.out.println("MyX509KeyManager.chooseClientAlias() issuers[" + i +
+"]=" + issuers[i]);
+ }
+*/
return "";
}
public String chooseServerAlias(String keyType, Principal[] issuers, Socket
socket) {
- //System.out.println("MyX509KeyManager.chooseServerAlias(" + keyType + ")");
- return null;
+/*
+ System.out.println("MyX509KeyManager.chooseServerAlias(" + keyType + ")");
+
+ if (issuers != null) for (int i=0; i<issuers.length; i++)
+ System.out.println(" " + issuers[i]);
+*/
+
+ return "";
}
public X509Certificate[] getCertificateChain(String alias) {
- //System.out.println("MyX509KeyManager.getCertificateChain(" + alias + ")");
+// System.out.println("MyX509KeyManager.getCertificateChain(" + alias + ")");
return certchain;
}
public String[] getClientAliases(String keyType, Principal[] issuers) {
- //System.out.println("MyX509KeyManager.getClientAliases(" + keyType + ")");
+// System.out.println("MyX509KeyManager.getClientAliases(" + keyType + ")");
return null;
}
public PrivateKey getPrivateKey(String alias) {
- //System.out.println("MyX509KeyManager.getPrivateKey(" + alias + ")");
+// System.out.println("MyX509KeyManager.getPrivateKey(" + alias + ")");
return key;
}
public String[] getServerAliases(String keyType, Principal[] issuers) {
- //System.out.println("MyX509KeyManager.getServerAliases(" + keyType + ")");
+// System.out.println("MyX509KeyManager.getServerAliases(" + keyType + ")");
return null;
}
}
}
SSLContext sctx;
- SSLSocket socket;
+ SSLSocket client;
+ SSLServerSocket server;
SSLSession sess;
String proxy;
- PrintStream osw = null;
void init_ctx() throws KeyStoreException,NoSuchAlgorithmException,KeyManagementException {
if (sctx == null) {
proxy = p;
}
- public void connect(String host,int port,int timeout) throws KeyStoreException,NoSuchAlgorithmException,KeyManagementException,SocketException,IOException {
+ public PrintStream connect(String host,int port,int timeout) throws KeyStoreException,NoSuchAlgorithmException,KeyManagementException,SocketException,IOException {
init_ctx();
- osw = null;
- socket = (SSLSocket) sctx.getSocketFactory().createSocket();
+ client = (SSLSocket) sctx.getSocketFactory().createSocket();
- socket.setEnabledProtocols(new String[]{"SSLv3"});
- socket.setUseClientMode(true);
- socket.setSoTimeout(timeout * 10); //read timeout
+ client.setEnabledProtocols(new String[]{"SSLv3"});
+ client.setUseClientMode(true);
+ client.setSoTimeout(timeout); //read timeout
- socket.connect(new InetSocketAddress(host, port), timeout); //connect timeout
- socket.startHandshake();
+ client.connect(new InetSocketAddress(host, port), timeout); //connect timeout
+ client.startHandshake();
- sess = socket.getSession();
+ sess = client.getSession();
if (sess == null) {
throw new NullPointerException("null session");
}
- osw = new PrintStream(socket.getOutputStream(), false);
+ return new PrintStream(client.getOutputStream(),false);
}
- public void close() throws IOException,SocketException {
- osw.close();
- socket.close();
- }
+ public InputStream accept(int port,int timeout)
+ throws KeyStoreException,IOException,SocketException,NoSuchAlgorithmException,KeyManagementException
+ {
- public void sendString(String message,int timeout) throws IOException,SocketException {
- socket.setSoTimeout(timeout * 10);
- osw.print(message);
- osw.flush();
+ init_ctx();
+
+ server = (SSLServerSocket) sctx.getServerSocketFactory().createServerSocket();
+
+ server.setEnabledProtocols(new String[]{"SSLv3"});
+ server.setSoTimeout(timeout);
+
+ server.bind(new InetSocketAddress(port));
+
+ SSLSocket conn = (SSLSocket) server.accept();
+
+ return conn.getInputStream();
}
- public void sendBytes(byte[] message,int len,int timeout) throws IOException,SocketException {
- socket.setSoTimeout(timeout * 10);
- osw.write(message,0,len);
- osw.flush();
+ public void close() throws IOException,SocketException {
+ client.close();
}
/**
package org.glite.lb;
import java.io.IOException;
+import java.io.PrintStream;
import java.security.*;
/**
SSL lbsock = new SSL();
lbsock.setProxy(keyStoreSender);
- lbsock.connect(host,port,timeout);
+ PrintStream s = lbsock.connect(host,port,timeout);
- lbsock.sendString(EDG_WLL_LOG_SOCKET_HEADER,timeout);
+ s.print(EDG_WLL_LOG_SOCKET_HEADER);
message = message.replaceFirst("DG.LLLID=[0-9]* ", "");
message = message.replaceFirst("DG.USER=\\x22[a-zA-Z ]*\\x22 ", "");
messageSize >>= 8;
revertedInt[3] = (byte) (messageSize);
- lbsock.sendBytes(revertedInt,4,timeout);
- lbsock.sendString(message + '\n' + '\0',timeout);
- lbsock.close();
-
+ s.write(revertedInt,0,4);
+ s.print(message + '\n' + '\0');
+ s.flush();
+ s.close();
}
}