1 #ifndef crypto_generichash_H 2 #define crypto_generichash_H 3 4 #include <stddef.h> 5 6 #include "crypto_generichash_blake2b.h" 7 #include "export.h" 8 9 #ifdef __cplusplus 10 # ifdef __GNUC__ 11 # pragma GCC diagnostic ignored "-Wlong-long" 12 # endif 13 extern "C" { 14 #endif 15 16 #define crypto_generichash_BYTES_MIN crypto_generichash_blake2b_BYTES_MIN 17 SODIUM_EXPORT 18 size_t crypto_generichash_bytes_min(void); 19 20 #define crypto_generichash_BYTES_MAX crypto_generichash_blake2b_BYTES_MAX 21 SODIUM_EXPORT 22 size_t crypto_generichash_bytes_max(void); 23 24 #define crypto_generichash_BYTES crypto_generichash_blake2b_BYTES 25 SODIUM_EXPORT 26 size_t crypto_generichash_bytes(void); 27 28 #define crypto_generichash_KEYBYTES_MIN crypto_generichash_blake2b_KEYBYTES_MIN 29 SODIUM_EXPORT 30 size_t crypto_generichash_keybytes_min(void); 31 32 #define crypto_generichash_KEYBYTES_MAX crypto_generichash_blake2b_KEYBYTES_MAX 33 SODIUM_EXPORT 34 size_t crypto_generichash_keybytes_max(void); 35 36 #define crypto_generichash_KEYBYTES crypto_generichash_blake2b_KEYBYTES 37 SODIUM_EXPORT 38 size_t crypto_generichash_keybytes(void); 39 40 #define crypto_generichash_PRIMITIVE "blake2b" 41 SODIUM_EXPORT 42 const char *crypto_generichash_primitive(void); 43 44 typedef crypto_generichash_blake2b_state crypto_generichash_state; 45 46 SODIUM_EXPORT 47 size_t crypto_generichash_statebytes(void); 48 49 SODIUM_EXPORT 50 int crypto_generichash(unsigned char *out, size_t outlen, 51 const unsigned char *in, unsigned long long inlen, 52 const unsigned char *key, size_t keylen); 53 54 SODIUM_EXPORT 55 int crypto_generichash_init(crypto_generichash_state *state, 56 const unsigned char *key, 57 const size_t keylen, const size_t outlen); 58 59 SODIUM_EXPORT 60 int crypto_generichash_update(crypto_generichash_state *state, 61 const unsigned char *in, 62 unsigned long long inlen); 63 64 SODIUM_EXPORT 65 int crypto_generichash_final(crypto_generichash_state *state, 66 unsigned char *out, const size_t outlen); 67 68 SODIUM_EXPORT 69 void crypto_generichash_keygen(unsigned char k[crypto_generichash_KEYBYTES]); 70 71 #ifdef __cplusplus 72 } 73 #endif 74 75 #endif 76