Defines |
| #define | SHA256_SHORT_BLOCK_LENGTH (SHA256_BLOCK_LENGTH - 8) |
| #define | SHA384_SHORT_BLOCK_LENGTH (SHA384_BLOCK_LENGTH - 16) |
| #define | SHA512_SHORT_BLOCK_LENGTH (SHA512_BLOCK_LENGTH - 16) |
| #define | SHA2_WORD64_CONST(dw1, dw2) (((sha2_word64)(dw1) << 32) | (dw2)) |
| #define | REVERSE32(w, x) |
| #define | REVERSE64(w, x) |
| #define | ADDINC128(w, n) |
| #define | SHA2_USE_MEMSET_MEMCPY 1 |
| #define | MEMSET_BZERO(p, l) memset((p), 0, (l)) |
| #define | MEMCPY_BCOPY(d, s, l) memcpy((d), (s), (l)) |
| #define | R(b, x) ((x) >> (b)) |
| #define | S32(b, x) (((x) >> (b)) | ((x) << (32 - (b)))) |
| #define | S64(b, x) (((x) >> (b)) | ((x) << (64 - (b)))) |
| #define | Ch(x, y, z) (((x) & (y)) ^ ((~(x)) & (z))) |
| #define | Maj(x, y, z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z))) |
| #define | Sigma0_256(x) (S32(2, (x)) ^ S32(13, (x)) ^ S32(22, (x))) |
| #define | Sigma1_256(x) (S32(6, (x)) ^ S32(11, (x)) ^ S32(25, (x))) |
| #define | sigma0_256(x) (S32(7, (x)) ^ S32(18, (x)) ^ R(3 , (x))) |
| #define | sigma1_256(x) (S32(17, (x)) ^ S32(19, (x)) ^ R(10, (x))) |
| #define | Sigma0_512(x) (S64(28, (x)) ^ S64(34, (x)) ^ S64(39, (x))) |
| #define | Sigma1_512(x) (S64(14, (x)) ^ S64(18, (x)) ^ S64(41, (x))) |
| #define | sigma0_512(x) (S64( 1, (x)) ^ S64( 8, (x)) ^ R( 7, (x))) |
| #define | sigma1_512(x) (S64(19, (x)) ^ S64(61, (x)) ^ R( 6, (x))) |
Functions |
| void | SHA512_Last (SHA512_CTX *) |
| void | SHA256_Transform (SHA256_CTX *, const sha2_word32 *) |
| void | SHA512_Transform (SHA512_CTX *, const sha2_word64 *) |
| void | SHA256_Init (SHA256_CTX *context) |
| void | SHA256_Update (SHA256_CTX *context, const sha2_byte *data, size_t len) |
| void | SHA256_Final (sha2_byte digest[], SHA256_CTX *context) |
| char * | SHA256_End (SHA256_CTX *context, char buffer[]) |
| char * | SHA256_Data (const sha2_byte *data, size_t len, char digest[SHA256_DIGEST_STRING_LENGTH]) |
| void | SHA512_Init (SHA512_CTX *context) |
| void | SHA512_Update (SHA512_CTX *context, const sha2_byte *data, size_t len) |
| void | SHA512_Final (sha2_byte digest[], SHA512_CTX *context) |
| char * | SHA512_End (SHA512_CTX *context, char buffer[]) |
| char * | SHA512_Data (const sha2_byte *data, size_t len, char digest[SHA512_DIGEST_STRING_LENGTH]) |
| void | SHA384_Init (SHA384_CTX *context) |
| void | SHA384_Update (SHA384_CTX *context, const sha2_byte *data, size_t len) |
| void | SHA384_Final (sha2_byte digest[], SHA384_CTX *context) |
| char * | SHA384_End (SHA384_CTX *context, char buffer[]) |
| char * | SHA384_Data (const sha2_byte *data, size_t len, char digest[SHA384_DIGEST_STRING_LENGTH]) |
Variables |
| static const sha2_word32 | K256 [64] |
| static const sha2_word32 | sha256_initial_hash_value [8] |
| static const sha2_word64 | K512 [80] |
| static const sha2_word64 | sha384_initial_hash_value [8] |
| static const sha2_word64 | sha512_initial_hash_value [8] |
| static const char | sha2_hex_digits [] = "0123456789abcdef" |