MCPcopy Create free account
hub / github.com/ElementsProject/elements / CreateChecksum

Function CreateChecksum

src/bech32.cpp:338–349  ·  view source on GitHub ↗

Create a checksum. */

Source from the content-addressed store, hash-verified

336
337/** Create a checksum. */
338data CreateChecksum(Encoding encoding, const std::string& hrp, const data& values)
339{
340 data enc = Cat(ExpandHRP(hrp), values);
341 enc.resize(enc.size() + 6); // Append 6 zeroes
342 uint32_t mod = PolyMod(enc) ^ EncodingConstant(encoding); // Determine what to XOR into those 6 zeroes.
343 data ret(6);
344 for (size_t i = 0; i < 6; ++i) {
345 // Convert the 5-bit groups in mod to checksum values.
346 ret[i] = (mod >> (5 * (5 - i))) & 31;
347 }
348 return ret;
349}
350
351/** Encode a Bech32 or Bech32m string. */
352std::string Encode(Encoding encoding, const std::string& hrp, const data& values) {

Callers 2

EncodeFunction · 0.70
BOOST_AUTO_TEST_CASEFunction · 0.50

Calls 6

CatFunction · 0.70
ExpandHRPFunction · 0.70
PolyModFunction · 0.70
EncodingConstantFunction · 0.70
resizeMethod · 0.45
sizeMethod · 0.45

Tested by 1

BOOST_AUTO_TEST_CASEFunction · 0.40