Skip to content

Commit

Permalink
bugfix(hd-wallet): chainweaver sign did not use the right hash (#2067)
Browse files Browse the repository at this point in the history
* bugfix(hd-wallet): chainweaver sign did not use the right hash

* add changeset

---------

Co-authored-by: Bart Huijgen <barthuijgen@users.noreply.github.com>
  • Loading branch information
barthuijgen and barthuijgen committed May 7, 2024
1 parent 180a091 commit 0b30187
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 4 deletions.
5 changes: 5 additions & 0 deletions .changeset/breezy-oranges-pump.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@kadena/hd-wallet': minor
---

Fixed bug in chainweaver signing
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export const kadenaSign = async (
): Promise<Uint8Array> => {
return await originalKadenaSign(
password,
message,
Buffer.from(message, 'base64'),
await kadenaDecrypt(password, secretKey),
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@ export async function kadenaSignFromRootKey(
): Promise<Uint8Array> {
const { secretKey } = await kadenaGenKeypair(password, rootKey, index);
const secret = await kadenaDecrypt(password, secretKey);
return kadenaSign(password, message, secret);
return kadenaSign(password, Buffer.from(message, 'base64'), secret);
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
kadenaGenKeypair,
kadenaGenMnemonic,
kadenaMnemonicToRootKeypair,
kadenaSign,
kadenaSignFromRootKey,
} from '../index.js';

Expand Down Expand Up @@ -135,7 +136,17 @@ describe('kadenaGenKeypair', () => {

expect(signature).toBeTruthy();
expect(Buffer.from(signature).toString('hex')).toBe(
'4a9a35634ca8b1efd0d84053bf73d78dda4e59223d230869ea7abbee8f923b723538f9a3ed13de31c8d629c97205a3becb15f5fdc71dc1dc4e42596b9a10d906',
'e3d3ffe85877a181487ef66acd4e2b5968fa4d055d81efcce812cfcee855d42547a962dc6a28a445f9da696ad2270b046b27a462d1f1ced6c7408b65a1a7fa0c',
);
});
it('should generate a valid signature with keypair', async () => {
const rootKey = await kadenaMnemonicToRootKeypair(PASSWORD, MNEMONIC);
const keypair = await kadenaGenKeypair(PASSWORD, rootKey, 1);
const signature = await kadenaSign(PASSWORD, 'hello', keypair.secretKey);

expect(signature).toBeTruthy();
expect(Buffer.from(signature).toString('hex')).toBe(
'e3d3ffe85877a181487ef66acd4e2b5968fa4d055d81efcce812cfcee855d42547a962dc6a28a445f9da696ad2270b046b27a462d1f1ced6c7408b65a1a7fa0c',
);
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export declare const kadenaMnemonicToRootKeypair: (

export declare const kadenaSign: (
password: string | Uint8Array,
message: string,
message: Uint8Array,
privateKey: string | Uint8Array,
) => Uint8Array;

Expand Down

0 comments on commit 0b30187

Please sign in to comment.