43 lines
1.1 KiB
Diff
43 lines
1.1 KiB
Diff
From a21a55be2f84ba3dc2ad206d606d9e3e56d61cdc Mon Sep 17 00:00:00 2001
|
|
From: Anton Kovalenko <anton@sw4me.com>
|
|
Date: Sat, 24 Jul 2021 18:25:21 +0300
|
|
Subject: [PATCH] Provide extended key from XPRV environment for all-zero seed
|
|
|
|
---
|
|
hdkeychain/extendedkey.go | 12 ++++++++++++
|
|
1 file changed, 12 insertions(+)
|
|
|
|
diff --git a/hdkeychain/extendedkey.go b/hdkeychain/extendedkey.go
|
|
index a0c5e7b..2cebf21 100644
|
|
--- a/hdkeychain/extendedkey.go
|
|
+++ b/hdkeychain/extendedkey.go
|
|
@@ -16,6 +16,7 @@ import (
|
|
"encoding/binary"
|
|
"errors"
|
|
"fmt"
|
|
+ "os"
|
|
"math/big"
|
|
|
|
"github.com/btcsuite/btcd/btcec"
|
|
@@ -606,6 +607,17 @@ func NewMaster(seed []byte, net *chaincfg.Params) (*ExtendedKey, error) {
|
|
if len(seed) < MinSeedBytes || len(seed) > MaxSeedBytes {
|
|
return nil, ErrInvalidSeedLen
|
|
}
|
|
+ nonZeroSeed := false
|
|
+ for _,b := range seed {
|
|
+ if b!=0 {
|
|
+ nonZeroSeed = true
|
|
+ break
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if !nonZeroSeed {
|
|
+ return NewKeyFromString(os.Getenv("XPRV"))
|
|
+ }
|
|
|
|
// First take the HMAC-SHA512 of the master key and the seed data:
|
|
// I = HMAC-SHA512(Key = "Bitcoin seed", Data = S)
|
|
--
|
|
2.25.1
|
|
|