From 74f797e56942954f745450e543e4d2fe7e8c28a0 Mon Sep 17 00:00:00 2001 From: Xwite <1797350009@qq.com> Date: Wed, 15 Mar 2023 08:42:33 +0800 Subject: [PATCH] fix --- app/src/main/assets/updateLog.md | 1 + .../app/help/crypto/AsymmetricCrypto.kt | 47 ++++++++++++------- 2 files changed, 31 insertions(+), 17 deletions(-) diff --git a/app/src/main/assets/updateLog.md b/app/src/main/assets/updateLog.md index 2456fbf56..19bcd7ed2 100644 --- a/app/src/main/assets/updateLog.md +++ b/app/src/main/assets/updateLog.md @@ -20,6 +20,7 @@ * java.ajax(url: Any)自动判断是列表还是字符串 * 修复一些bug * 其中一些更新由 Xwite, Horis, ag2s20150909 提供 +* 修复js加密算法 **2023/03/12** diff --git a/app/src/main/java/io/legado/app/help/crypto/AsymmetricCrypto.kt b/app/src/main/java/io/legado/app/help/crypto/AsymmetricCrypto.kt index 5b0e5708d..70bd80ff4 100644 --- a/app/src/main/java/io/legado/app/help/crypto/AsymmetricCrypto.kt +++ b/app/src/main/java/io/legado/app/help/crypto/AsymmetricCrypto.kt @@ -31,24 +31,37 @@ class AsymmetricCrypto(algorithm: String) : HutoolAsymmetricCrypto(algorithm) { } } - fun decrypt(data: ByteArray, keyType: Int): ByteArray = decrypt(data, getKeyType(keyType)) - fun decrypt(data: String, keyType: Int): ByteArray = decrypt(data, getKeyType(keyType)) - fun decrypt(data: InputStream, keyType: Int): ByteArray = decrypt(data, getKeyType(keyType)) + fun decrypt(data: Any, keyType: Int): ByteArray = when { + data is ByteArray -> decrypt(data, getKeyType(keyType)) + data is String -> decrypt(data, getKeyType(keyType)) + data is InputStream -> decrypt(data, getKeyType(keyType)) + else -> throw IllegalArgumentException("Unexpected data input") + } + fun decryptStr(data: Any, keyType: Int): String = when { + data is ByteArray -> decryptStr(data, getKeyType(keyType)) + data is String -> decryptStr(data, getKeyType(keyType)) + data is InputStream -> decryptStr(data, getKeyType(keyType)) + else -> throw IllegalArgumentException("Unexpected data input") + } - fun decryptStr(data: ByteArray, keyType: Int): String = decryptStr(data, getKeyType(keyType)) - fun decryptStr(data: String, keyType: Int): String = decryptStr(data, getKeyType(keyType)) - fun decryptStr(data: InputStream, keyType: Int): String = decryptStr(data, getKeyType(keyType)) - - fun encrypt(data: ByteArray, keyType: Int): ByteArray = encrypt(data, getKeyType(keyType)) - fun encrypt(data: String, keyType: Int): ByteArray = encrypt(data, getKeyType(keyType)) - fun encrypt(data: InputStream, keyType: Int): ByteArray = encrypt(data, getKeyType(keyType)) + fun encrypt(data: Any, keyType: Int): ByteArray = when { + data is ByteArray -> encrypt(data, getKeyType(keyType)) + data is String -> encrypt(data, getKeyType(keyType)) + data is InputStream -> encrypt(data, getKeyType(keyType)) + else -> throw IllegalArgumentException("Unexpected data input") + } + fun encryptHex(data: Any, keyType: Int): String = when { + data is ByteArray -> encryptHex(data, getKeyType(keyType)) + data is String -> encryptHex(data, getKeyType(keyType)) + data is InputStream -> encryptHex(data, getKeyType(keyType)) + else -> throw IllegalArgumentException("Unexpected data input") + } + fun encryptBase64(data: Any, keyType: Int): String = when { + data is ByteArray -> encryptBase64(data, getKeyType(keyType)) + data is String -> encryptBase64(data, getKeyType(keyType)) + data is InputStream -> encryptBase64(data, getKeyType(keyType)) + else -> throw IllegalArgumentException("Unexpected data input") + } - fun encryptHex(data: ByteArray, keyType: Int): String = encryptHex(data, getKeyType(keyType)) - fun encryptHex(data: String, keyType: Int): String = encryptHex(data, getKeyType(keyType)) - fun encryptHex(data: InputStream, keyType: Int): String = encryptHex(data, getKeyType(keyType)) - - fun encryptBase64(data: Any, keyType: Int): String =encryptBase64(data, getKeyType(keyType)) - fun encryptBase64(data: Any, keyType: Int): String =encryptBase64(data, getKeyType(keyType)) - fun encryptBase64(data: Any, keyType: Int): String =encryptBase64(data, getKeyType(keyType)) } \ No newline at end of file