summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rw-r--r--util/src/main/kotlin/CryptoUtil.kt8
-rw-r--r--util/src/test/kotlin/CryptoUtilTest.kt4
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