| 419 | |
| 420 | template<TransformType tr> |
| 421 | void TransformD64Wrapper(unsigned char* out, const unsigned char* in) |
| 422 | { |
| 423 | uint32_t s[8]; |
| 424 | static const unsigned char padding1[64] = { |
| 425 | 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 426 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 427 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 428 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0 |
| 429 | }; |
| 430 | unsigned char buffer2[64] = { |
| 431 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 432 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 433 | 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 434 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 |
| 435 | }; |
| 436 | sha256::Initialize(s); |
| 437 | tr(s, in, 1); |
| 438 | tr(s, padding1, 1); |
| 439 | WriteBE32(buffer2 + 0, s[0]); |
| 440 | WriteBE32(buffer2 + 4, s[1]); |
| 441 | WriteBE32(buffer2 + 8, s[2]); |
| 442 | WriteBE32(buffer2 + 12, s[3]); |
| 443 | WriteBE32(buffer2 + 16, s[4]); |
| 444 | WriteBE32(buffer2 + 20, s[5]); |
| 445 | WriteBE32(buffer2 + 24, s[6]); |
| 446 | WriteBE32(buffer2 + 28, s[7]); |
| 447 | sha256::Initialize(s); |
| 448 | tr(s, buffer2, 1); |
| 449 | WriteBE32(out + 0, s[0]); |
| 450 | WriteBE32(out + 4, s[1]); |
| 451 | WriteBE32(out + 8, s[2]); |
| 452 | WriteBE32(out + 12, s[3]); |
| 453 | WriteBE32(out + 16, s[4]); |
| 454 | WriteBE32(out + 20, s[5]); |
| 455 | WriteBE32(out + 24, s[6]); |
| 456 | WriteBE32(out + 28, s[7]); |
| 457 | } |
| 458 | |
| 459 | TransformType Transform = sha256::Transform; |
| 460 | TransformD64Type TransformD64 = sha256::TransformD64; |
nothing calls this directly
no test coverage detected