From 40abd71d2e8ee75f10e251b037eefd4a7c31cd88 Mon Sep 17 00:00:00 2001 From: Adhiraj Singh Date: Sat, 23 Apr 2022 17:46:59 +0530 Subject: [PATCH] fix: curve verification return boolean --- src/Utils/crypto.ts | 11 ++++++++--- src/Utils/validate-connection.ts | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Utils/crypto.ts b/src/Utils/crypto.ts index 26f89d2..fa08e22 100644 --- a/src/Utils/crypto.ts +++ b/src/Utils/crypto.ts @@ -27,9 +27,14 @@ export const Curve = { sign: (privateKey: Uint8Array, buf: Uint8Array) => ( libsignal.curve.calculateSignature(privateKey, buf) ), - verify: (pubKey: Uint8Array, message: Uint8Array, signature: Uint8Array) => ( - libsignal.curve.verifySignature(generateSignalPubKey(pubKey), message, signature) - ) + verify: (pubKey: Uint8Array, message: Uint8Array, signature: Uint8Array) => { + try { + libsignal.curve.verifySignature(generateSignalPubKey(pubKey), message, signature) + return true + } catch(error) { + return false + } + } } export const signedKeyPair = (identityKeyPair: KeyPair, keyId: number) => { diff --git a/src/Utils/validate-connection.ts b/src/Utils/validate-connection.ts index a52d613..67c4c0a 100644 --- a/src/Utils/validate-connection.ts +++ b/src/Utils/validate-connection.ts @@ -126,7 +126,7 @@ export const configureSuccessfulPairing = ( // verify the device signature matches const accountMsg = Buffer.concat([ Buffer.from([6, 0]), deviceDetails, signedIdentityKey.public ]) if(!Curve.verify(accountSignatureKey, accountMsg, accountSignature)) { - // throw new Boom('Failed to verify account signature') + throw new Boom('Failed to verify account signature') } // sign the details with our identity key