From 2eea17fe9f8a0e875d59ac8f762435e9c3238416 Mon Sep 17 00:00:00 2001 From: Adhiraj Singh Date: Sat, 18 Mar 2023 12:24:19 +0530 Subject: [PATCH] fix: group cipher signatures --- WASignalGroup/group_cipher.js | 2 +- WASignalGroup/sender_key_distribution_message.js | 2 +- WASignalGroup/sender_key_message.js | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/WASignalGroup/group_cipher.js b/WASignalGroup/group_cipher.js index a10de25..3c126f4 100644 --- a/WASignalGroup/group_cipher.js +++ b/WASignalGroup/group_cipher.js @@ -41,7 +41,7 @@ class GroupCipher { const senderKeyMessage = new SenderKeyMessage(null, null, null, null, senderKeyMessageBytes); const senderKeyState = record.getSenderKeyState(senderKeyMessage.getKeyId()); - //senderKeyMessage.verifySignature(senderKeyState.getSigningKeyPublic()); + senderKeyMessage.verifySignature(senderKeyState.getSigningKeyPublic()); const senderKey = this.getSenderKey(senderKeyState, senderKeyMessage.getIteration()); // senderKeyState.senderKeyStateStructure.senderSigningKey.private = diff --git a/WASignalGroup/sender_key_distribution_message.js b/WASignalGroup/sender_key_distribution_message.js index 9c1400f..77c2a48 100644 --- a/WASignalGroup/sender_key_distribution_message.js +++ b/WASignalGroup/sender_key_distribution_message.js @@ -17,7 +17,7 @@ class SenderKeyDistributionMessage extends CiphertextMessage { const distributionMessage = protobufs.SenderKeyDistributionMessage.decode( message - ).toJSON(); + ); this.serialized = serialized; this.id = distributionMessage.id; this.iteration = distributionMessage.iteration; diff --git a/WASignalGroup/sender_key_message.js b/WASignalGroup/sender_key_message.js index 80683a6..f3d9cf9 100644 --- a/WASignalGroup/sender_key_message.js +++ b/WASignalGroup/sender_key_message.js @@ -17,8 +17,8 @@ class SenderKeyMessage extends CiphertextMessage { const version = serialized[0]; const message = serialized.slice(1, serialized.length - this.SIGNATURE_LENGTH); const signature = serialized.slice(-1 * this.SIGNATURE_LENGTH); - const senderKeyMessage = protobufs.SenderKeyMessage.decode(message).toJSON(); - senderKeyMessage.ciphertext = Buffer.from(senderKeyMessage.ciphertext, 'base64'); + const senderKeyMessage = protobufs.SenderKeyMessage.decode(message); + senderKeyMessage.ciphertext = senderKeyMessage.ciphertext; this.serialized = serialized; this.messageVersion = (version & 0xff) >> 4; @@ -64,7 +64,7 @@ class SenderKeyMessage extends CiphertextMessage { } verifySignature(signatureKey) { - const part1 = this.serialized.slice(0, this.serialized.length - this.SIGNATURE_LENGTH + 1); + const part1 = this.serialized.slice(0, this.serialized.length - this.SIGNATURE_LENGTH); const part2 = this.serialized.slice(-1 * this.SIGNATURE_LENGTH); const res = curve.verifySignature(signatureKey, part1, part2); if (!res) throw new Error('Invalid signature!');