summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2020-03-30 21:22:28 +0200
committerMarcello Stanisci <stanisci.m@gmail.com>2020-03-30 21:22:28 +0200
commit9dfaa047bc554e36c92900c0f5dbc48a7be578ae (patch)
tree78336151c0bded82e2b0e35e756acd0e97b5239d /util
parent89a529c95caf2050803d314c8f70e8dec09f2c47 (diff)
downloadlibeufin-9dfaa047bc554e36c92900c0f5dbc48a7be578ae.tar.gz
libeufin-9dfaa047bc554e36c92900c0f5dbc48a7be578ae.tar.bz2
libeufin-9dfaa047bc554e36c92900c0f5dbc48a7be578ae.zip
EdDSA public key sanity check.
Diffstat (limited to 'util')
-rw-r--r--util/src/main/kotlin/CryptoUtil.kt7
-rw-r--r--util/src/test/kotlin/CryptoUtilTest.kt16
2 files changed, 10 insertions, 13 deletions
diff --git a/util/src/main/kotlin/CryptoUtil.kt b/util/src/main/kotlin/CryptoUtil.kt
index b73dee49..3e98971d 100644
--- a/util/src/main/kotlin/CryptoUtil.kt
+++ b/util/src/main/kotlin/CryptoUtil.kt
@@ -284,4 +284,11 @@ object CryptoUtil {
val bundle = EncryptedPrivateKeyInfo(bundleAlgorithmParams, cipherText)
return bundle.encoded
}
+
+ fun checkValidEddsaPublicKey(data: ByteArray): Boolean {
+ if (data.size != 32) {
+ return false
+ }
+ return true
+ }
}
diff --git a/util/src/test/kotlin/CryptoUtilTest.kt b/util/src/test/kotlin/CryptoUtilTest.kt
index 735db865..2e4f313d 100644
--- a/util/src/test/kotlin/CryptoUtilTest.kt
+++ b/util/src/test/kotlin/CryptoUtilTest.kt
@@ -145,21 +145,11 @@ class CryptoUtilTest {
}
@Test
- fun importEdDSAPublicKeyTest() {
+ fun checkEddsaPublicKey() {
val givenEnc = "XZH3P6NF9DSG3BH0C082X38N2RVK1RV2H24KF76028QBKDM24BCG"
- // import a public key
- val spki = SubjectPublicKeyInfo(
- AlgorithmIdentifier(
- EdECObjectIdentifiers.id_Ed25519
- ),
+ assertTrue(CryptoUtil.checkValidEddsaPublicKey(
Base32Crockford.decode(givenEnc)
- )
- val ks: KeySpec = X509EncodedKeySpec(spki.encoded)
- val kpg = KeyFactory.getInstance(
- "EdDSA",
- org.bouncycastle.jce.provider.BouncyCastleProvider()
- )
- kpg.generatePublic(ks)
+ ))
}
@Test