diff options
author | Niels Möller <nisse@lysator.liu.se> | 2010-03-22 22:13:04 +0100 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2010-03-22 22:13:04 +0100 |
commit | d8eb745be4282fc9792b63556cec8f725be12de0 (patch) | |
tree | e7d69e0d82ed7ef3960afbd0b5943da2b23e8279 /sha.h | |
parent | 03bdd346f59d460137c26f2f17dcecb37bd500d4 (diff) | |
download | nettle-d8eb745be4282fc9792b63556cec8f725be12de0.tar.gz |
* Makefile.in (nettle_SOURCES): Added sha512.c and sha512-meta.c.
* sha.h: Added SHA-512-related declarations.
* nettle-meta.h: Likewise.
* sha512-meta.c: New file.
* sha512.c: New file.
Rev: nettle/Makefile.in:1.14
Rev: nettle/nettle-meta.h:1.3
Rev: nettle/sha.h:1.2
Rev: nettle/sha512-meta.c:1.1
Rev: nettle/sha512.c:1.1
Diffstat (limited to 'sha.h')
-rw-r--r-- | sha.h | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -39,6 +39,9 @@ extern "C" { #define sha256_init nettle_sha256_init #define sha256_update nettle_sha256_update #define sha256_digest nettle_sha256_digest +#define sha512_init nettle_sha512_init +#define sha512_update nettle_sha512_update +#define sha512_digest nettle_sha512_digest /* SHA1 */ @@ -103,6 +106,35 @@ sha256_digest(struct sha256_ctx *ctx, unsigned length, uint8_t *digest); +/* SHA512 */ + +#define SHA512_DIGEST_SIZE 64 +#define SHA512_DATA_SIZE 128 + +/* Digest is kept internally as 8 64-bit words. */ +#define _SHA512_DIGEST_LENGTH 8 + +struct sha512_ctx +{ + uint64_t state[_SHA512_DIGEST_LENGTH]; /* State variables */ + uint64_t count_low, count_high; /* 128-bit block count */ + uint8_t block[SHA512_DATA_SIZE]; /* SHA512 data buffer */ + unsigned int index; /* index into buffer */ +}; + +void +sha512_init(struct sha512_ctx *ctx); + +void +sha512_update(struct sha512_ctx *ctx, + unsigned length, + const uint8_t *data); + +void +sha512_digest(struct sha512_ctx *ctx, + unsigned length, + uint8_t *digest); + #ifdef __cplusplus } #endif |