/root/bitcoin/src/crypto/hkdf_sha256_32.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | // Copyright (c) 2018-2019 The Bitcoin Core developers |
2 | | // Distributed under the MIT software license, see the accompanying |
3 | | // file COPYING or http://www.opensource.org/licenses/mit-license.php. |
4 | | |
5 | | #include <crypto/hkdf_sha256_32.h> |
6 | | |
7 | | #include <assert.h> |
8 | | #include <string.h> |
9 | | |
10 | | CHKDF_HMAC_SHA256_L32::CHKDF_HMAC_SHA256_L32(const unsigned char* ikm, size_t ikmlen, const std::string& salt) |
11 | 0 | { |
12 | 0 | CHMAC_SHA256((const unsigned char*)salt.data(), salt.size()).Write(ikm, ikmlen).Finalize(m_prk); |
13 | 0 | } |
14 | | |
15 | | void CHKDF_HMAC_SHA256_L32::Expand32(const std::string& info, unsigned char hash[OUTPUT_SIZE]) |
16 | 0 | { |
17 | | // expand a 32byte key (single round) |
18 | 0 | assert(info.size() <= 128); |
19 | 0 | static const unsigned char one[1] = {1}; |
20 | 0 | CHMAC_SHA256(m_prk, 32).Write((const unsigned char*)info.data(), info.size()).Write(one, 1).Finalize(hash); |
21 | 0 | } |