]> git.codecow.com Git - libnemo.git/commitdiff
Be more specific when validating mnemonic string input.
authorChris Duncan <chris@zoso.dev>
Sat, 2 Aug 2025 20:15:10 +0000 (13:15 -0700)
committerChris Duncan <chris@zoso.dev>
Sat, 2 Aug 2025 20:15:10 +0000 (13:15 -0700)
src/lib/wallet.ts
test/test.create-wallet.mjs

index ec757595b48b037ec2bd35896be1c8275470beaf..e50daccd2e11696c6d6a0980a7c4242fef89f434 100644 (file)
@@ -111,7 +111,7 @@ export class Wallet {
                        }\r
                        if (/^(?:[A-F0-9]{64}){1,2}$/i.test(secret)) {\r
                                data.seed = hex.toBuffer(secret)\r
-                       } else if (/^([a-z]{3,8} ?){12,24}$/i.test(secret)) {\r
+                       } else if (/^([a-z]{3,8} ){11,23}[a-z]{3,8}$/i.test(secret)) {\r
                                data.mnemonicPhrase = secret.toLowerCase()\r
                                if (mnemonicSalt != null) data.mnemonicSalt = mnemonicSalt\r
                        } else {\r
@@ -461,7 +461,7 @@ export class Wallet {
                        }\r
                        if (/^(?:[A-F0-9]{64}){1,2}$/i.test(secret)) {\r
                                data.seed = hex.toBuffer(secret)\r
-                       } else if (/^([a-z]{3,8} ?){12,24}$/i.test(secret)) {\r
+                       } else if (/^([a-z]{3,8} ){11,23}[a-z]{3,8}$/i.test(secret)) {\r
                                data.mnemonicPhrase = secret.toLowerCase()\r
                        } else {\r
                                throw new TypeError('Invalid format')\r
index af4bfcfbb6568ebc1451c2a1115898c80eb65bd1..cb3c6febc002c8d814a7589c9372e73e1483c086 100644 (file)
@@ -33,7 +33,7 @@ await Promise.all([
                        assert.ok('id' in wallet)\r
                        assert.ok(/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i.test(wallet.id))\r
                        assert.ok('mnemonic' in wallet)\r
-                       assert.ok(/^(?:[a-z]{3,} ){11,23}[a-z]{3,}$/.test(wallet.mnemonic ?? ''))\r
+                       assert.ok(/^(?:[a-z]{3,8} ){11,23}[a-z]{3,8}$/.test(wallet.mnemonic ?? ''))\r
                        assert.ok('seed' in wallet)\r
                        assert.ok(/^[A-Fa-f0-9]{128}$/.test(wallet.seed ?? ''))\r
 \r
@@ -54,7 +54,7 @@ await Promise.all([
                        assert.ok('id' in wallet)\r
                        assert.ok(/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i.test(wallet.id))\r
                        assert.ok('mnemonic' in wallet)\r
-                       assert.ok(/^(?:[a-z]{3,} ){11,23}[a-z]{3,}$/.test(wallet.mnemonic ?? ''))\r
+                       assert.ok(/^(?:[a-z]{3,8} ){11,23}[a-z]{3,8}$/.test(wallet.mnemonic ?? ''))\r
                        assert.ok('seed' in wallet)\r
                        assert.ok(/^[A-Fa-f0-9]{64}$/.test(wallet.seed ?? ''))\r
 \r