A
Server:
import javax.net.ssl.*; import java.io.*; import java.security.*;
public class SSLServer {
public static void main(String[] a) throws Exception {
SSLContext ctx = SSLContext.getInstance("TLS");
KeyStore ks = KeyStore.getInstance("JKS");
ks.load(new FileInputStream("server_keystore.jks"), "password".toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, "password".toCharArray());
ctx.init(kmf.getKeyManagers(), null, null);
SSLSocket c = (SSLSocket) ((SSLServerSocket) ctx.getServerSocketFactory().createServerSocket(12345)).accept();
BufferedReader r = new BufferedReader(new InputStreamReader(c.getInputStream()));
PrintWriter w = new PrintWriter(c.getOutputStream(), true);
w.println("Ack: " + r.readLine());
r.close(); w.close(); c.close();
}
}
Client:
import javax.net.ssl.*; import java.io.*; import java.security.*;
public class SSLClient {
public static void main(String[] a) throws Exception {
SSLContext ctx = SSLContext.getInstance("TLS");
KeyStore ts = KeyStore.getInstance("JKS");
ts.load(new FileInputStream("client_truststore.jks"), "password".toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
tmf.init(ts); ctx.init(null, tmf.getTrustManagers(), null);
SSLSocket s = (SSLSocket) ctx.getSocketFactory().createSocket("localhost", 12345);
PrintWriter w = new PrintWriter(s.getOutputStream(), true);
BufferedReader r = new BufferedReader(new InputStreamReader(s.getInputStream()));
w.println("Hello"); System.out.println(r.readLine());
r.close(); w.close(); s.close();
}
}
Comments
Post a Comment