]> git.codecow.com Git - libnemo.git/commitdiff
Simplify BIP-39 seed gen by deriving bits directly.
authorChris Duncan <chris@zoso.dev>
Sat, 9 Aug 2025 07:22:55 +0000 (00:22 -0700)
committerChris Duncan <chris@zoso.dev>
Sat, 9 Aug 2025 07:22:55 +0000 (00:22 -0700)
src/lib/crypto/bip39.ts

index f30120b01cf21c7b69f70cf3569ca71ea5c5379c..bd94034b95a1959f2baf752a5e66f2637f8162c8 100644 (file)
@@ -199,21 +199,14 @@ export class Bip39 {
                                : passphrase\r
                        const keyData = utf8.toBytes(this.phrase)\r
                        const phraseKey = await crypto.subtle.importKey('raw', keyData, 'PBKDF2', false, ['deriveBits', 'deriveKey'])\r
-                       const derivedKeyType: HmacImportParams = {\r
-                               name: 'HMAC',\r
-                               hash: 'SHA-512',\r
-                               length: 512\r
-                       }\r
-\r
                        const algorithm: Pbkdf2Params = {\r
                                name: 'PBKDF2',\r
                                hash: 'SHA-512',\r
                                salt: utf8.toBytes(`mnemonic${salt.normalize('NFKD')}`),\r
                                iterations: BIP39_ITERATIONS\r
                        }\r
-                       const seedKey = await crypto.subtle.deriveKey(algorithm, phraseKey, derivedKeyType, true, ['sign'])\r
-                       const seedBuffer = await crypto.subtle.exportKey('raw', seedKey)\r
-                       this.#bip39Seed = new Uint8Array(seedBuffer)\r
+                       const seed = await crypto.subtle.deriveBits(algorithm, phraseKey, 512)\r
+                       this.#bip39Seed = new Uint8Array(seed)\r
                }\r
                return format === 'hex'\r
                        ? bytes.toHex(this.#bip39Seed)\r