summaryrefslogtreecommitdiff
path: root/src/androidMain/kotlin/net/taler/wallet/kotlin/crypto/RsaBlinding.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/androidMain/kotlin/net/taler/wallet/kotlin/crypto/RsaBlinding.kt')
-rw-r--r--src/androidMain/kotlin/net/taler/wallet/kotlin/crypto/RsaBlinding.kt6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/androidMain/kotlin/net/taler/wallet/kotlin/crypto/RsaBlinding.kt b/src/androidMain/kotlin/net/taler/wallet/kotlin/crypto/RsaBlinding.kt
index 6158c52..715bf83 100644
--- a/src/androidMain/kotlin/net/taler/wallet/kotlin/crypto/RsaBlinding.kt
+++ b/src/androidMain/kotlin/net/taler/wallet/kotlin/crypto/RsaBlinding.kt
@@ -1,10 +1,10 @@
package net.taler.wallet.kotlin.crypto
import java.math.BigInteger
+import kotlin.math.abs
import kotlin.math.ceil
import kotlin.math.floor
-@OptIn(ExperimentalStdlibApi::class)
internal object RsaBlinding {
fun rsaBlind(hm: ByteArray, bks: ByteArray, rsaPubEnc: ByteArray): ByteArray {
@@ -40,8 +40,8 @@ internal object RsaBlinding {
}
private fun rsaPubDecode(publicKey: ByteArray): RsaPublicKey {
- val modulusLength = (publicKey[0].toInt() shl 8) or publicKey[1].toInt()
- val exponentLength = (publicKey[2].toInt() shl 8) or publicKey[3].toInt()
+ val modulusLength = abs((publicKey[0].toInt() shl 8) or publicKey[1].toInt())
+ val exponentLength = abs((publicKey[2].toInt() shl 8) or publicKey[3].toInt())
if (4 + exponentLength + modulusLength != publicKey.size) {
throw Error("invalid RSA public key (format wrong)")
}