Inside Bitcoin
Opening the selected file…
Inside Bitcoin
Opening the selected file…
The code behind the network, with room to understand it.
Release published 2026-10-28 · Snapshot fetched 2026-11-01. Latest stable release at fetch time; development branches and Git history are excluded. Only the selected code window and visible folders load here.
1// Copyright (c) 2020-present The Bitcoin Core developers2// Distributed under the MIT software license, see the accompanying3// file COPYING or http://www.opensource.org/licenses/mit-license.php.5#include <chainparams.h>6#include <key_io.h>7#include <test/fuzz/fuzz.h>8#include <util/chaintype.h>10#include <cassert>11#include <cstdint>12#include <string>13#include <vector>15void initialize_key_io()16{17static ECC_Context ecc_context{};18SelectParams(ChainType::MAIN);19}21FUZZ_TARGET(key_io, .init = initialize_key_io)22{23const std::string random_string(buffer.begin(), buffer.end());25const CKey key = DecodeSecret(random_string);26if (key.IsValid()) {27assert(key == DecodeSecret(EncodeSecret(key)));28}30const CExtKey ext_key = DecodeExtKey(random_string);31if (ext_key.key.size() == 32) {32assert(ext_key == DecodeExtKey(EncodeExtKey(ext_key)));33}35const CExtPubKey ext_pub_key = DecodeExtPubKey(random_string);36if (ext_pub_key.pubkey.size() == CPubKey::COMPRESSED_SIZE) {37assert(ext_pub_key == DecodeExtPubKey(EncodeExtPubKey(ext_pub_key)));38}39}
Independent explanations by MyBitcoinExplorer. Not affiliated with or endorsed by Bitcoin Core. Guides are educational and do not replace the source or its tests.
Bitcoin Core source © its contributors, distributed under the MIT license. Original notices and bundled third-party licenses are retained in the source tree.