# File: `sha512.h`

## Classes

- `SHA512`

## Functions

- `void init();`
- `void update(const unsigned char *message, unsigned int len);`
- `void final(unsigned char *digest);`
- `void transform(const unsigned char *message, unsigned int block_nb);`
- `std::string sha512(std::string input);`

## Notable Comments

- *((str) + 3) = (uint8) ((x)      );       \
- *((str) + 2) = (uint8) ((x) >>  8);       \
- *((str) + 1) = (uint8) ((x) >> 16);       \
- *((str) + 0) = (uint8) ((x) >> 24);       \
- *((str) + 7) = (uint8) ((x)      );       \
- *((str) + 6) = (uint8) ((x) >>  8);       \
- *((str) + 5) = (uint8) ((x) >> 16);       \
- *((str) + 4) = (uint8) ((x) >> 24);       \
- *((str) + 3) = (uint8) ((x) >> 32);       \
- *((str) + 2) = (uint8) ((x) >> 40);       \
