From beda9fe86a69fb666373cab24545b9f2a6967ef6 Mon Sep 17 00:00:00 2001 From: Roman Zaycev Date: Sun, 24 Mar 2024 12:51:23 +0700 Subject: [PATCH] Mnemonic validation --- src/Olifanton/Mnemonic/TonMnemonic.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Olifanton/Mnemonic/TonMnemonic.php b/src/Olifanton/Mnemonic/TonMnemonic.php index 4f7e6ae..c46f3b4 100644 --- a/src/Olifanton/Mnemonic/TonMnemonic.php +++ b/src/Olifanton/Mnemonic/TonMnemonic.php @@ -61,7 +61,7 @@ public static function validate(array $mnemonicArray, ?string $password = null, } } - if ($password && $password !== '' && !self::isPasswordNeeded($mnemonicArray)) { + if ($password && $password !== "" && !self::isPasswordNeeded($mnemonicArray)) { return false; } @@ -74,7 +74,7 @@ public static function validate(array $mnemonicArray, ?string $password = null, */ public static function isPasswordNeeded(array $mnemonicArray): bool { - $entropy = self::mnemonicToEntropy($mnemonicArray, ''); + $entropy = self::mnemonicToEntropy($mnemonicArray, ""); return self::isPasswordSeed($entropy) && !self::isBasicSeed($entropy); } @@ -83,8 +83,12 @@ public static function isPasswordNeeded(array $mnemonicArray): bool * @param string[] $mnemonicArray * @throws TonMnemonicException */ - public static function mnemonicToSeed(array $mnemonicArray, ?string $password = ''): Uint8Array + public static function mnemonicToSeed(array $mnemonicArray, ?string $password = ""): Uint8Array { + if (!self::validate($mnemonicArray, empty($password) ? null : $password)) { + throw new TonMnemonicException("Invalid mnemonic phrase"); + } + $entropy = self::mnemonicToEntropy($mnemonicArray, $password); $seed = Pbkdf2::pbkdf2Sha512($entropy, 'TON default seed', self::PBKDF_ITERATIONS);