John Jiang 66b1b4dc54 8165367: Additional tests for JEP 288: Disable SHA-1 Certificates
The new tests just focus on the usage constraints TLSSever and TLSClient with TLS communication

Reviewed-by: ascarpino
2017-04-04 19:58:24 -07:00

49 lines
1.6 KiB
Java

/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
/*
* A SSL socket client.
*/
public class JSSEClient {
public static void main(String[] args) throws Exception {
System.out.println("Client: arguments=" + String.join("; ", args));
int port = Integer.valueOf(args[0]);
String[] trustNames = args[1].split(TLSRestrictions.DELIMITER);
String[] certNames = args[2].split(TLSRestrictions.DELIMITER);
String constraint = args[3];
TLSRestrictions.setConstraint("Client", constraint);
SSLContext context = TLSRestrictions.createSSLContext(
trustNames, certNames);
SSLSocketFactory socketFactory = context.getSocketFactory();
try (SSLSocket socket = (SSLSocket) socketFactory.createSocket()) {
socket.connect(new InetSocketAddress("localhost", port),
TLSRestrictions.TIMEOUT);
socket.setSoTimeout(TLSRestrictions.TIMEOUT);
System.out.println("Client: connected");
InputStream sslIS = socket.getInputStream();
OutputStream sslOS = socket.getOutputStream();
sslOS.write('C');
sslOS.flush();
sslIS.read();
System.out.println("Client: finished");
} catch (Exception e) {
throw new RuntimeException("Client: failed.", e);
}
}
}