aboutsummaryrefslogtreecommitdiff
path: root/src/key.cpp
diff options
context:
space:
mode:
authorMarcoFalke <falke.marco@gmail.com>2021-11-01 13:59:15 +0100
committerMarcoFalke <falke.marco@gmail.com>2021-11-01 14:20:56 +0100
commitfa93ef5a8aeae36304c792697a78af2d07fd9f41 (patch)
tree15a20252f07a2c95b9fb52be37a0369a6f5c4c80 /src/key.cpp
parent5574881ce329f91cc5bbc2b9585860a45fde7c3c (diff)
refactor: Take Span in SetSeed
This makes calling code less verbose and less fragile. Also, by adding the CKey::data() member function, it is now possible to call HexStr() with a CKey object.
Diffstat (limited to 'src/key.cpp')
-rw-r--r--src/key.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/key.cpp b/src/key.cpp
index 39155e4311..2e42c0718d 100644
--- a/src/key.cpp
+++ b/src/key.cpp
@@ -319,10 +319,11 @@ bool CExtKey::Derive(CExtKey &out, unsigned int _nChild) const {
return key.Derive(out.key, out.chaincode, _nChild, chaincode);
}
-void CExtKey::SetSeed(const unsigned char *seed, unsigned int nSeedLen) {
+void CExtKey::SetSeed(Span<const uint8_t> seed)
+{
static const unsigned char hashkey[] = {'B','i','t','c','o','i','n',' ','s','e','e','d'};
std::vector<unsigned char, secure_allocator<unsigned char>> vout(64);
- CHMAC_SHA512(hashkey, sizeof(hashkey)).Write(seed, nSeedLen).Finalize(vout.data());
+ CHMAC_SHA512{hashkey, sizeof(hashkey)}.Write(seed.data(), seed.size()).Finalize(vout.data());
key.Set(vout.data(), vout.data() + 32, true);
memcpy(chaincode.begin(), vout.data() + 32, 32);
nDepth = 0;