正在查看: 050 IP Phone v2.3.0 应用的 v.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 050 IP Phone v2.3.0 应用的 v.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package i5;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
import javax.net.SocketFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
public class v extends b {
private static final p7.a g = s5.d.a(v.class);
private static List<Socket> h = new ArrayList();
private boolean e;
private Socket f;
class a implements X509TrustManager {
a() {
}
@Override
public void checkClientTrusted(X509Certificate[] x509CertificateArr, String str) {
}
@Override
public void checkServerTrusted(X509Certificate[] x509CertificateArr, String str) {
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
}
protected v(Socket socket, InetAddress inetAddress, int i, InetAddress inetAddress2, int i8, boolean z) {
super("tls", inetAddress, i, inetAddress2, i8);
this.f = socket;
this.e = z;
try {
synchronized (h) {
h.add(socket);
}
if (socket instanceof SSLSocket) {
((SSLSocket) socket).startHandshake();
}
p7.a aVar = g;
if (aVar.c() && (socket instanceof SSLSocket)) {
SSLSession session = ((SSLSocket) socket).getSession();
aVar.a("tls connector created,cipher_suite=[" + session.getCipherSuite() + "],peer_host=[" + session.getPeerHost() + "],peer_port=[" + session.getPeerPort() + "],protocol=[" + session.getProtocol() + "]");
}
synchronized (h) {
h.remove(socket);
}
} catch (Throwable th) {
synchronized (h) {
h.remove(socket);
throw th;
}
}
}
public static v m(Socket socket) {
return new v(socket, socket.getLocalAddress(), socket.getLocalPort(), socket.getInetAddress(), socket.getPort(), false);
}
private static SocketFactory n(boolean z) {
return z ? o() : (SSLSocketFactory) SSLSocketFactory.getDefault();
}
private static SSLSocketFactory o() {
try {
TrustManager[] trustManagerArr = {new a()};
SSLContext sSLContext = SSLContext.getInstance("TLS");
sSLContext.init(null, trustManagerArr, null);
return sSLContext.getSocketFactory();
} catch (Exception e) {
p7.a aVar = g;
if (aVar.c()) {
aVar.b("Failed to initialize TLS socket", e);
}
if (e instanceof IOException) {
throw ((IOException) e);
}
throw new IOException("Failed to initialize TLS socket");
}
}
public static List<Socket> p() {
ArrayList arrayList;
synchronized (h) {
arrayList = new ArrayList(h);
}
return arrayList;
}
public static v q(SocketFactory socketFactory, String[] strArr, SocketAddress socketAddress, SocketAddress socketAddress2, int i, int i8) {
Socket createSocket = socketFactory.createSocket();
if ((createSocket instanceof SSLSocket) && strArr != null && strArr.length > 0) {
((SSLSocket) createSocket).setEnabledCipherSuites(strArr);
}
if (i8 >= 0 && i8 <= 255) {
((SSLSocket) createSocket).setTrafficClass(i8);
}
createSocket.bind(socketAddress);
if (i < 0) {
createSocket.connect(socketAddress2);
} else {
createSocket.connect(socketAddress2, i);
}
InetAddress localAddress = createSocket.getLocalAddress();
int localPort = createSocket.getLocalPort();
InetAddress inetAddress = createSocket.getInetAddress();
int port = createSocket.getPort();
int soTimeout = createSocket.getSoTimeout();
try {
createSocket.setSoTimeout(i);
return new v(createSocket, localAddress, localPort, inetAddress, port, true);
} finally {
createSocket.setSoTimeout(soTimeout);
}
}
public static v r(boolean z, String[] strArr, SocketAddress socketAddress, SocketAddress socketAddress2, int i, int i8) {
return q(n(z), strArr, socketAddress, socketAddress2, i, i8);
}
@Override
public String a() {
return "tls";
}
@Override
public int b() {
return 2;
}
@Override
public void close() {
p7.a aVar = g;
if (aVar.c()) {
aVar.a("closing connector,local=[" + k() + "],remote=[" + l() + "]");
}
Socket socket = this.f;
if (socket != null) {
try {
socket.close();
} catch (Exception e) {
p7.a aVar2 = g;
if (aVar2.c()) {
aVar2.b("Failed to close socket", e);
}
}
}
super.close();
}
@Override
public void e(int i) {
p7.a aVar = g;
if (aVar.c()) {
aVar.a("setting traffic class,tc=[" + i + "]");
}
this.f.setTrafficClass(i);
}
@Override
public OutputStream f() {
return this.f.getOutputStream();
}
@Override
public InputStream g() {
return this.f.getInputStream();
}
}