aboutsummaryrefslogtreecommitdiff
path: root/src/wallet
diff options
context:
space:
mode:
authorJonas Schnelli <dev@jonasschnelli.ch>2016-06-01 20:29:39 +0200
committerJonas Schnelli <dev@jonasschnelli.ch>2016-06-01 20:29:39 +0200
commitc022e5b15dd0b26bb6ef77a382279987c2efa93f (patch)
treea4820df4e21e399c36865d47c043f42bb069efe7 /src/wallet
parentf19025106de47a92396f9fb98e6d3bbc568c40b5 (diff)
[Wallet] use constant for bip32 hardened key limit
Diffstat (limited to 'src/wallet')
-rw-r--r--src/wallet/wallet.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp
index fdb46472a8..1c212d0147 100644
--- a/src/wallet/wallet.cpp
+++ b/src/wallet/wallet.cpp
@@ -42,6 +42,7 @@ bool bSpendZeroConfChange = DEFAULT_SPEND_ZEROCONF_CHANGE;
bool fSendFreeTransactions = DEFAULT_SEND_FREE_TRANSACTIONS;
const char * DEFAULT_WALLET_DAT = "wallet.dat";
+const uint32_t BIP32_HARDENED_KEY_LIMIT = 0x80000000;
/**
* Fees smaller than this (in satoshi) are considered zero fee (for transaction creation)
@@ -112,16 +113,19 @@ CPubKey CWallet::GenerateNewKey()
masterKey.SetMaster(key.begin(), key.size());
// derive m/0'
- // use hardened derivation (child keys > 0x80000000 are hardened after bip32)
- masterKey.Derive(accountKey, 0 | 0x80000000);
+ // use hardened derivation (child keys >= 0x80000000 are hardened after bip32)
+ masterKey.Derive(accountKey, BIP32_HARDENED_KEY_LIMIT);
// derive m/0'/0'
- accountKey.Derive(externalChainChildKey, 0 | 0x80000000);
+ accountKey.Derive(externalChainChildKey, BIP32_HARDENED_KEY_LIMIT);
// derive child key at next index, skip keys already known to the wallet
do
{
- externalChainChildKey.Derive(childKey, hdChain.nExternalChainCounter | 0x80000000);
+ // always derive hardened keys
+ // childIndex | BIP32_HARDENED_KEY_LIMIT = derive childIndex in hardened child-index-range
+ // example: 1 | BIP32_HARDENED_KEY_LIMIT == 0x80000001 == 2147483649
+ externalChainChildKey.Derive(childKey, hdChain.nExternalChainCounter | BIP32_HARDENED_KEY_LIMIT);
// increment childkey index
hdChain.nExternalChainCounter++;
} while(HaveKey(childKey.key.GetPubKey().GetID()));