aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorSoopyboo32 <49228220+Soopyboo32@users.noreply.github.com>2022-09-23 17:56:38 +0800
committerSoopyboo32 <49228220+Soopyboo32@users.noreply.github.com>2022-09-23 17:56:38 +0800
commita38700b5ae8822f159c7457d4d67e53f75ca63fa (patch)
tree13097a8f1a5e1e3b71a0948f9b876e6ec3d1c600 /src/utils
parent644a192508dba2719c24ecd3c0b3295120b0fbb5 (diff)
downloadSoopyV2-a38700b5ae8822f159c7457d4d67e53f75ca63fa.tar.gz
SoopyV2-a38700b5ae8822f159c7457d4d67e53f75ca63fa.tar.bz2
SoopyV2-a38700b5ae8822f159c7457d4d67e53f75ca63fa.zip
Support lets encript prepairing for hypixel api change
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/certs/ISRGRootX1.cerbin0 -> 1391 bytes
-rw-r--r--src/utils/letsEncryptCerts.js32
-rw-r--r--src/utils/networkUtils.js6
3 files changed, 38 insertions, 0 deletions
diff --git a/src/utils/certs/ISRGRootX1.cer b/src/utils/certs/ISRGRootX1.cer
new file mode 100644
index 0000000..9d2132e
--- /dev/null
+++ b/src/utils/certs/ISRGRootX1.cer
Binary files differ
diff --git a/src/utils/letsEncryptCerts.js b/src/utils/letsEncryptCerts.js
new file mode 100644
index 0000000..4a639e7
--- /dev/null
+++ b/src/utils/letsEncryptCerts.js
@@ -0,0 +1,32 @@
+// Semisol was here
+let certificates = [
+ "ISRGRootX1.cer"
+] // Certificate names
+const
+ JKeyStore = Java.type("java.security.KeyStore"),
+ JPaths = Java.type("java.nio.file.Paths"),
+ JSystem = Java.type("java.lang.System"),
+ JFiles = Java.type("java.nio.file.Files"),
+ JCertificateFactory = Java.type("java.security.cert.CertificateFactory"),
+ JString = Java.type("java.lang.String"),
+ JByteArrayInputStream = Java.type("java.io.ByteArrayInputStream"),
+ JTrustManagerFactory = Java.type("javax.net.ssl.TrustManagerFactory"),
+ JSSLContext = Java.type("javax.net.ssl.SSLContext")
+let keyStore = JKeyStore.getInstance(JKeyStore.getDefaultType())
+let ksPath = JPaths.get(JSystem.getProperty("java.home"), "lib", "security", "cacerts")
+keyStore.load(JFiles.newInputStream(ksPath), new JString("changeit").toCharArray())
+let cf = JCertificateFactory.getInstance("X.509")
+for (let i of certificates) {
+ let pathStr = `${Config.modulesFolder}/SoopyV2/utils/certs/${i}`
+ let path = JPaths.get(pathStr)
+ let data = JFiles.readAllBytes(path)
+ let cert = cf.generateCertificate(new JByteArrayInputStream(data))
+ keyStore.setCertificateEntry("dev.semisol.letsencryptsupport:" + i, cert)
+}
+let tmf = JTrustManagerFactory.getInstance(JTrustManagerFactory.getDefaultAlgorithm())
+tmf.init(keyStore)
+let sslContext = JSSLContext.getInstance("TLS")
+sslContext.init(null, tmf.getTrustManagers(), null);
+JSSLContext.setDefault(sslContext)
+let socketFactory = sslContext.getSocketFactory()
+export { socketFactory as default };
diff --git a/src/utils/networkUtils.js b/src/utils/networkUtils.js
index 41d27e5..5ac95a4 100644
--- a/src/utils/networkUtils.js
+++ b/src/utils/networkUtils.js
@@ -1,3 +1,5 @@
+import socketFactory from "./letsEncryptCerts"
+
if (!global.networkUtilsThingSoopyPromise) {
let jURL = Java.type("java.net.URL")
@@ -6,6 +8,7 @@ if (!global.networkUtilsThingSoopyPromise) {
let jBufferedReader = Java.type("java.io.BufferedReader")
let jInputStreamReader = Java.type("java.io.InputStreamReader")
let jString = Java.type("java.lang.String")
+ var JHttpsUrlConnection = Java.type('javax.net.ssl.HttpsURLConnection');
function getUrlContent(theUrl, { userAgent = "Mozilla/5.0", includeConnection = false, postData = undefined } = {}) {
@@ -19,6 +22,9 @@ if (!global.networkUtilsThingSoopyPromise) {
// Thread.sleep(1000) //simulating high ping
let conn = new jURL(theUrl).openConnection()
+ if (conn instanceof JHttpsUrlConnection) {
+ conn.setSSLSocketFactory(socketFactory);
+ }
conn.setRequestProperty("User-Agent", userAgent)
if (postData) {