diff options
author | Marcello Stanisci <stanisci.m@gmail.com> | 2020-03-30 21:22:28 +0200 |
---|---|---|
committer | Marcello Stanisci <stanisci.m@gmail.com> | 2020-03-30 21:22:28 +0200 |
commit | 9dfaa047bc554e36c92900c0f5dbc48a7be578ae (patch) | |
tree | 78336151c0bded82e2b0e35e756acd0e97b5239d /util | |
parent | 89a529c95caf2050803d314c8f70e8dec09f2c47 (diff) | |
download | libeufin-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.kt | 7 | ||||
-rw-r--r-- | util/src/test/kotlin/CryptoUtilTest.kt | 16 |
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 |