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 687e64fc8..3da4e57c9 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,25 +31,23 @@ class AsymmetricCrypto(algorithm: String) : HutoolAsymmetricCrypto(algorithm) { } } - private fun cryptoDelegate( + private fun cryptoDelegate( data: Any, - keyType: Int, - func: (Any, KeyType) -> T - ): T { - val keyType = getKeyType(keyType) + func: (Any) -> T? + ): T? { return when { - data is ByteArray -> func.invoke(data, keyType) - data is String -> func.invoke(data, keyType) - data is InputStream -> func.invoke(data, keyType) + data is ByteArray -> func.invoke(data as ByteArray) + data is String -> func.invoke(data as String) + data is InputStream -> func.invoke(data as InputStream) else -> null } } - fun decrypt(data: Any, keyType: Int): ByteArray? = cryptoDelegate(data, keyType, decrypt) - fun decryptStr(data: Any, keyType: Int): String? = cryptoDelegate(data, keyType, decryptStr) + fun decrypt(data: Any, keyType: Int): ByteArray? = cryptoDelegate(data) { decrypt(it, getKeyType(keyType)) } + fun decryptStr(data: Any, keyType: Int): String? = cryptoDelegate(data) { decryptStr(it, getKeyType(keyType)) } - fun encrypt(data: Any, keyType: Int): ByteArray? = cryptoDelegate(data, keyType, encrypt) - fun encryptHex(data: Any, keyType: Int): String? = cryptoDelegate(data, keyType, encryptHex) - fun encryptBase64(data: Any, keyType: Int): String? =cryptoDelegate(data, keyType, encryptBase64) + fun encrypt(data: Any, keyType: Int): ByteArray? = cryptoDelegate(data) { encrypt(it, getKeyType(keyType)) } + fun encryptHex(data: Any, keyType: Int): String? = cryptoDelegate(data) { encryptHex(it, getKeyType(keyType)) } + fun encryptBase64(data: Any, keyType: Int): String? =cryptoDelegate(data) { encryptBase64(it, getKeyType(keyType)) } } \ No newline at end of file