diff options
| author | Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> | 2022-09-23 17:56:38 +0800 |
|---|---|---|
| committer | Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> | 2022-09-23 17:56:38 +0800 |
| commit | a38700b5ae8822f159c7457d4d67e53f75ca63fa (patch) | |
| tree | 13097a8f1a5e1e3b71a0948f9b876e6ec3d1c600 /src/utils | |
| parent | 644a192508dba2719c24ecd3c0b3295120b0fbb5 (diff) | |
| download | SoopyV2-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.cer | bin | 0 -> 1391 bytes | |||
| -rw-r--r-- | src/utils/letsEncryptCerts.js | 32 | ||||
| -rw-r--r-- | src/utils/networkUtils.js | 6 |
3 files changed, 38 insertions, 0 deletions
diff --git a/src/utils/certs/ISRGRootX1.cer b/src/utils/certs/ISRGRootX1.cer Binary files differnew file mode 100644 index 0000000..9d2132e --- /dev/null +++ b/src/utils/certs/ISRGRootX1.cer 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) { |
