]> git.codecow.com Git - libnemo.git/commitdiff
Simplify blake ckd.
authorChris Duncan <chris@zoso.dev>
Thu, 31 Jul 2025 21:13:41 +0000 (14:13 -0700)
committerChris Duncan <chris@zoso.dev>
Thu, 31 Jul 2025 21:13:41 +0000 (14:13 -0700)
src/lib/safe/blake2b-ckd.ts

index 8110317609d3d93e5a96cd95917ec6ee4f22768e..b347a5e75ee16cd16cc19d224f41a3811c820472 100644 (file)
@@ -2,7 +2,7 @@
 //! SPDX-License-Identifier: GPL-3.0-or-later\r
 \r
 import { Blake2b } from '#src/lib/blake2b.js'\r
-import { bytes, hex } from '#src/lib/convert.js'\r
+import { hex } from '#src/lib/convert.js'\r
 \r
 /**\r
 * Derives account private keys from a wallet seed using the BLAKE2b hashing\r
@@ -19,10 +19,10 @@ import { bytes, hex } from '#src/lib/convert.js'
 */\r
 export class Blake2bCkd {\r
        static ckd (seed: ArrayBuffer, index: number): ArrayBuffer {\r
-               const indexHex = Math.floor(index).toString(16).padStart(8, '0').toUpperCase()\r
-               const inputHex = `${bytes.toHex(new Uint8Array(seed))}${indexHex}`.padStart(72, '0')\r
-               const inputBytes = hex.toBytes(inputHex)\r
-               const privateKey = new Blake2b(32).update(inputBytes).digest()\r
-               return privateKey.buffer\r
+               return new Blake2b(32)\r
+                       .update(new Uint8Array(seed))\r
+                       .update(hex.toBytes(index.toString(16).padStart(8, '0')))\r
+                       .digest()\r
+                       .buffer\r
        }\r
 }\r