diff options
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.kt | 6 |
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)") } |