4.17.2 Macros
#define SHA2_ROTL(x, n) (uint32_t)((((uint32_t)(x)) << ((uint32_t)(n))) | (((uint32_t)(x)) >> (32U - ((uint32_t)(n)))))
#define SHA2_ROTR(x, n) (uint32_t)((((uint32_t)(x)) >> ((uint32_t)(n))) | (((uint32_t)(x)) << (32U - ((uint32_t)(n)))))
#define SHA2_SHR(x, n) (uint32_t)(((uint32_t)(x)) >> ((uint32_t)(n)))
#define SHA2_SIG_U0(x) (uint32_t)(SHA2_ROTR((uint32_t)(x), 2U) ^ SHA2_ROTR((uint32_t)(x), 13U) ^ SHA2_ROTR((uint32_t)(x), 22U))
#define SHA2_SIG_U1(x) (uint32_t)(SHA2_ROTR((uint32_t)(x), 6U) ^ SHA2_ROTR((uint32_t)(x), 11U) ^ SHA2_ROTR((uint32_t)(x), 25U))
#define SHA2_SIG_L0(x) (uint32_t)(SHA2_ROTR((uint32_t)(x), 7U) ^ SHA2_ROTR((uint32_t)(x), 18U) ^ SHA2_SHR((uint32_t)(x), 3U))
#define SHA2_SIG_L1(x) (uint32_t)(SHA2_ROTR((uint32_t)(x), 17U) ^ SHA2_ROTR((uint32_t)(x), 19U) ^ SHA2_SHR((uint32_t)(x), 10U))
#define SHA2_CH(x, y, z) (uint32_t)(((uint32_t)((x) & (y))) ^ (uint32_t)(((~(x)) & (z))))
#define SHA2_MAJ(x, y, z) (uint32_t)(((uint32_t)((x) & (y))) ^ (uint32_t)((x) & (z)) ^ (uint32_t)((y) & (z)))
#define MAX_BYTES_IN_SHA256_BLOCK (64U)
#define LAST_BYTE_LOCATION_IN_SHA256_ARRAY (0x3FU)
