From 2f331d4d815605a86f982a571ff12a76a1a4e45e Mon Sep 17 00:00:00 2001 From: enimax-anime <107899019+enimax-anime@users.noreply.github.com> Date: Sat, 3 Dec 2022 05:10:43 -0800 Subject: [PATCH] Fixed #1026 (#1053) --- src/en/sflix/build.gradle | 2 +- .../animeextension/en/sflix/extractors/SFlixExtractor.kt | 7 ++++++- .../tachiyomi/animeextension/en/sflix/utils/Decryptor.kt | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/en/sflix/build.gradle b/src/en/sflix/build.gradle index 273c1b65e..2e95a76a3 100644 --- a/src/en/sflix/build.gradle +++ b/src/en/sflix/build.gradle @@ -5,7 +5,7 @@ ext { extName = 'Sflix' pkgNameSuffix = 'en.sflix' extClass = '.SFlix' - extVersionCode = 13 + extVersionCode = 14 libVersion = '13' } diff --git a/src/en/sflix/src/eu/kanade/tachiyomi/animeextension/en/sflix/extractors/SFlixExtractor.kt b/src/en/sflix/src/eu/kanade/tachiyomi/animeextension/en/sflix/extractors/SFlixExtractor.kt index b2a4563f4..869b91749 100644 --- a/src/en/sflix/src/eu/kanade/tachiyomi/animeextension/en/sflix/extractors/SFlixExtractor.kt +++ b/src/en/sflix/src/eu/kanade/tachiyomi/animeextension/en/sflix/extractors/SFlixExtractor.kt @@ -47,13 +47,18 @@ class SFlixExtractor(private val client: OkHttpClient) { ) .execute() .body!!.string() + + val key = newClient.newCall(GET("https://raw.githubusercontent.com/consumet/rapidclown/rabbitstream/key.txt")) + .execute() + .body!!.string() + // encrypted data will start with "U2Fsd..." because they put // "Salted__" at the start of encrypted data, thanks openssl // if its not encrypted, then return it if ("\"sources\":\"U2FsdGVk" !in srcRes) return srcRes if (!srcRes.contains("{\"sources\":")) return null val encrypted = srcRes.substringAfter("sources\":\"").substringBefore("\"") - val decrypted = Decryptor.decrypt(encrypted, cachedJs) ?: return null + val decrypted = Decryptor.decrypt(encrypted, key) ?: return null val end = srcRes.replace("\"$encrypted\"", decrypted) return end } diff --git a/src/en/sflix/src/eu/kanade/tachiyomi/animeextension/en/sflix/utils/Decryptor.kt b/src/en/sflix/src/eu/kanade/tachiyomi/animeextension/en/sflix/utils/Decryptor.kt index 87c425e9c..57dd1619c 100644 --- a/src/en/sflix/src/eu/kanade/tachiyomi/animeextension/en/sflix/utils/Decryptor.kt +++ b/src/en/sflix/src/eu/kanade/tachiyomi/animeextension/en/sflix/utils/Decryptor.kt @@ -9,11 +9,11 @@ import javax.crypto.spec.SecretKeySpec object Decryptor { - fun decrypt(encodedData: String, js: String): String? { + fun decrypt(encodedData: String, remoteKey: String): String? { val saltedData = Base64.decode(encodedData, Base64.DEFAULT) val salt = saltedData.copyOfRange(8, 16) val ciphertext = saltedData.copyOfRange(16, saltedData.size) - val password = FindPassword.getPassword(js).toByteArray() + val password = remoteKey.toByteArray() val (key, iv) = GenerateKeyAndIv(password, salt) ?: return null val keySpec = SecretKeySpec(key, "AES") val ivSpec = IvParameterSpec(iv)