118334Speter#ifndef crypto_auth_hmacsha512_H 218334Speter#define crypto_auth_hmacsha512_H 318334Speter 418334Speter#include <stddef.h> 518334Speter#include "crypto_hash_sha512.h" 618334Speter#include "export.h" 718334Speter 818334Speter#ifdef __cplusplus 918334Speter# ifdef __GNUC__ 1018334Speter# pragma GCC diagnostic ignored "-Wlong-long" 1118334Speter# endif 1218334Speterextern "C" { 1318334Speter#endif 1418334Speter 1518334Speter#define crypto_auth_hmacsha512_BYTES 64U 1618334SpeterSODIUM_EXPORT 1718334Spetersize_t crypto_auth_hmacsha512_bytes(void); 1818334Speter 1918334Speter#define crypto_auth_hmacsha512_KEYBYTES 32U 2018334SpeterSODIUM_EXPORT 2118334Spetersize_t crypto_auth_hmacsha512_keybytes(void); 2218334Speter 2318334SpeterSODIUM_EXPORT 2418334Speterint crypto_auth_hmacsha512(unsigned char *out, 2518334Speter const unsigned char *in, 2618334Speter unsigned long long inlen, 2718334Speter const unsigned char *k); 2818334Speter 2918334SpeterSODIUM_EXPORT 3018334Speterint crypto_auth_hmacsha512_verify(const unsigned char *h, 3118334Speter const unsigned char *in, 3218334Speter unsigned long long inlen, 3318334Speter const unsigned char *k) 3418334Speter __attribute__ ((warn_unused_result)); 3518334Speter 3618334Speter/* ------------------------------------------------------------------------- */ 3718334Speter 3818334Spetertypedef struct crypto_auth_hmacsha512_state { 3918334Speter crypto_hash_sha512_state ictx; 4018334Speter crypto_hash_sha512_state octx; 4118334Speter} crypto_auth_hmacsha512_state; 4218334Speter 4318334SpeterSODIUM_EXPORT 4418334Spetersize_t crypto_auth_hmacsha512_statebytes(void); 4518334Speter 4618334SpeterSODIUM_EXPORT 4718334Speterint crypto_auth_hmacsha512_init(crypto_auth_hmacsha512_state *state, 4818334Speter const unsigned char *key, 4918334Speter size_t keylen); 5018334Speter 5118334SpeterSODIUM_EXPORT 5218334Speterint crypto_auth_hmacsha512_update(crypto_auth_hmacsha512_state *state, 5318334Speter const unsigned char *in, 5418334Speter unsigned long long inlen); 5518334Speter 5618334SpeterSODIUM_EXPORT 5718334Speterint crypto_auth_hmacsha512_final(crypto_auth_hmacsha512_state *state, 5818334Speter unsigned char *out); 5918334Speter 6018334SpeterSODIUM_EXPORT 6118334Spetervoid crypto_auth_hmacsha512_keygen(unsigned char k[crypto_auth_hmacsha512_KEYBYTES]); 6218334Speter 6318334Speter#ifdef __cplusplus 6418334Speter} 6518334Speter#endif 6618334Speter 6718334Speter#endif 6818334Speter