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

Function TransformD64Wrapper

src/crypto/sha256.cpp:441–477  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

439
440template<TransformType tr>
441void TransformD64Wrapper(unsigned char* out, const unsigned char* in)
442{
443 uint32_t s[8];
444 static const unsigned char padding1[64] = {
445 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0
449 };
450 unsigned char buffer2[64] = {
451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
453 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0
455 };
456 sha256::Initialize(s);
457 tr(s, in, 1);
458 tr(s, padding1, 1);
459 WriteBE32(buffer2 + 0, s[0]);
460 WriteBE32(buffer2 + 4, s[1]);
461 WriteBE32(buffer2 + 8, s[2]);
462 WriteBE32(buffer2 + 12, s[3]);
463 WriteBE32(buffer2 + 16, s[4]);
464 WriteBE32(buffer2 + 20, s[5]);
465 WriteBE32(buffer2 + 24, s[6]);
466 WriteBE32(buffer2 + 28, s[7]);
467 sha256::Initialize(s);
468 tr(s, buffer2, 1);
469 WriteBE32(out + 0, s[0]);
470 WriteBE32(out + 4, s[1]);
471 WriteBE32(out + 8, s[2]);
472 WriteBE32(out + 12, s[3]);
473 WriteBE32(out + 16, s[4]);
474 WriteBE32(out + 20, s[5]);
475 WriteBE32(out + 24, s[6]);
476 WriteBE32(out + 28, s[7]);
477}
478
479TransformType Transform = sha256::Transform;
480TransformD64Type TransformD64 = sha256::TransformD64;

Callers

nothing calls this directly

Calls 2

InitializeFunction · 0.70
WriteBE32Function · 0.70

Tested by

no test coverage detected