diff options
Diffstat (limited to 'util')
-rw-r--r-- | util/src/main/kotlin/CryptoUtil.kt | 8 | ||||
-rw-r--r-- | util/src/test/kotlin/CryptoUtilTest.kt | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/util/src/main/kotlin/CryptoUtil.kt b/util/src/main/kotlin/CryptoUtil.kt index 3e98971d..413ce4a7 100644 --- a/util/src/main/kotlin/CryptoUtil.kt +++ b/util/src/main/kotlin/CryptoUtil.kt @@ -19,6 +19,7 @@ package tech.libeufin.util +import net.taler.wallet.crypto.Base32Crockford import org.bouncycastle.jce.provider.BouncyCastleProvider import org.slf4j.Logger import org.slf4j.LoggerFactory @@ -285,7 +286,12 @@ object CryptoUtil { return bundle.encoded } - fun checkValidEddsaPublicKey(data: ByteArray): Boolean { + fun checkValidEddsaPublicKey(enc: String): Boolean { + val data = try { + Base32Crockford.decode(enc) + } catch (e: Exception) { + return false + } if (data.size != 32) { return false } diff --git a/util/src/test/kotlin/CryptoUtilTest.kt b/util/src/test/kotlin/CryptoUtilTest.kt index bdd8d7e1..705f4434 100644 --- a/util/src/test/kotlin/CryptoUtilTest.kt +++ b/util/src/test/kotlin/CryptoUtilTest.kt @@ -150,8 +150,8 @@ class CryptoUtilTest { val givenEnc = "XZH3P6NF9DSG3BH0C082X38N2RVK1RV2H24KF76028QBKDM24BCG" val non32bytes = "N2RVK1RV2H24KF76028QBKDM24BCG" - assertTrue(CryptoUtil.checkValidEddsaPublicKey(Base32Crockford.decode(givenEnc))) - assertFalse(CryptoUtil.checkValidEddsaPublicKey(Base32Crockford.decode(non32bytes))) + assertTrue(CryptoUtil.checkValidEddsaPublicKey(givenEnc)) + assertFalse(CryptoUtil.checkValidEddsaPublicKey(non32bytes)) } @Test |