libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit 9dfaa047bc554e36c92900c0f5dbc48a7be578ae
parent 89a529c95caf2050803d314c8f70e8dec09f2c47
Author: Marcello Stanisci <stanisci.m@gmail.com>
Date:   Mon, 30 Mar 2020 21:22:28 +0200

EdDSA public key sanity check.

Diffstat:
Mutil/src/main/kotlin/CryptoUtil.kt | 7+++++++
Mutil/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 @@ -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 @@ -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