mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-01-07 21:24:00 -05:00
GP-6250 Corrected BSim SSLSocketFactory regression due to removal of
ApplicationSSLSocketFactory. (Closes #8803)
This commit is contained in:
@@ -608,7 +608,7 @@ public class BSimControlLaunchable implements GhidraLaunchable {
|
||||
private Connection createLocalConnection() throws SQLException, IOException {
|
||||
Properties properties = new Properties();
|
||||
properties.setProperty("sslmode", "require");
|
||||
properties.setProperty("sslfactory", "ghidra.net.ApplicationSSLSocketFactory");
|
||||
properties.setProperty("sslfactory", "ghidra.net.DefaultSSLSocketFactory");
|
||||
properties.setProperty("user", connectingUserName);
|
||||
StringBuilder buffer = new StringBuilder();
|
||||
buffer.append("jdbc:postgresql://localhost");
|
||||
@@ -687,6 +687,7 @@ public class BSimControlLaunchable implements GhidraLaunchable {
|
||||
*/
|
||||
private int runCommand(File directory, List<String> command, String envvar, String value)
|
||||
throws IOException, InterruptedException {
|
||||
System.out.println("Command: " + command);
|
||||
ProcessBuilder processBuilder = new ProcessBuilder(command);
|
||||
processBuilder.directory(directory); // Set the working directory
|
||||
if (envvar != null) {
|
||||
|
||||
@@ -217,7 +217,7 @@ public class BSimPostgresDBConnectionManager {
|
||||
|
||||
private void setSSLProperties() {
|
||||
bds.addConnectionProperty("sslmode", "require");
|
||||
bds.addConnectionProperty("sslfactory", "ghidra.net.ApplicationSSLSocketFactory");
|
||||
bds.addConnectionProperty("sslfactory", "ghidra.net.DefaultSSLSocketFactory");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
/* ###
|
||||
* IP: GHIDRA
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package ghidra.net;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.*;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.SSLSocketFactory;
|
||||
|
||||
import ghidra.util.Msg;
|
||||
|
||||
/**
|
||||
* <code>ApplicationSSLSocketFactory</code> provides a replacement for the default
|
||||
* <code>SSLSocketFactory</code> which utilizes the default SSLContext established
|
||||
* by {@link DefaultSSLContextInitializer}.
|
||||
*/
|
||||
public class DefaultSSLSocketFactory extends SSLSocketFactory {
|
||||
|
||||
private final SSLSocketFactory socketFactory;
|
||||
|
||||
/**
|
||||
* ApplicationSSLSocketFactory constructor.
|
||||
* SSLContext initialization will be performed using {@link DefaultSSLContextInitializer}.
|
||||
*/
|
||||
public DefaultSSLSocketFactory() {
|
||||
SSLSocketFactory factory = null;
|
||||
try {
|
||||
if (DefaultSSLContextInitializer.initialize()) {
|
||||
factory = SSLContext.getDefault().getSocketFactory();
|
||||
}
|
||||
}
|
||||
catch (NoSuchAlgorithmException e) {
|
||||
Msg.error(this, "Failed to employ default SSLContext: " + e.toString(), e);
|
||||
}
|
||||
this.socketFactory =
|
||||
factory != null ? factory : (SSLSocketFactory) SSLSocketFactory.getDefault();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Socket createSocket(Socket s, String host, int port, boolean autoClose)
|
||||
throws IOException {
|
||||
return socketFactory.createSocket(s, host, port, autoClose);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getDefaultCipherSuites() {
|
||||
return socketFactory.getDefaultCipherSuites();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getSupportedCipherSuites() {
|
||||
return socketFactory.getSupportedCipherSuites();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Socket createSocket(String host, int port) throws IOException, UnknownHostException {
|
||||
return socketFactory.createSocket(host, port);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Socket createSocket(InetAddress host, int port) throws IOException {
|
||||
return socketFactory.createSocket(host, port);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Socket createSocket(String host, int port, InetAddress localHost, int localPort)
|
||||
throws IOException, UnknownHostException {
|
||||
return socketFactory.createSocket(host, port, localHost, localPort);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Socket createSocket(InetAddress address, int port, InetAddress localAddress,
|
||||
int localPort)
|
||||
throws IOException {
|
||||
return socketFactory.createSocket(address, port, localAddress, localPort);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user