1 #ifndef crypto_generichash_blake2b_H
2 #define crypto_generichash_blake2b_H
11 # define CRYPTO_ALIGN(x) __declspec(align(x))
13 # define CRYPTO_ALIGN(x) __attribute__((aligned(x)))
18 # pragma GCC diagnostic ignored "-Wlong-long"
24 CRYPTO_ALIGN(64) typedef struct crypto_generichash_blake2b_state {
31 } crypto_generichash_blake2b_state;
34 #define crypto_generichash_blake2b_BYTES_MIN 16U
36 size_t crypto_generichash_blake2b_bytes_min(void);
38 #define crypto_generichash_blake2b_BYTES_MAX 64U
40 size_t crypto_generichash_blake2b_bytes_max(void);
42 #define crypto_generichash_blake2b_BYTES 32U
44 size_t crypto_generichash_blake2b_bytes(void);
46 #define crypto_generichash_blake2b_KEYBYTES_MIN 16U
48 size_t crypto_generichash_blake2b_keybytes_min(void);
50 #define crypto_generichash_blake2b_KEYBYTES_MAX 64U
52 size_t crypto_generichash_blake2b_keybytes_max(void);
54 #define crypto_generichash_blake2b_KEYBYTES 32U
56 size_t crypto_generichash_blake2b_keybytes(void);
58 #define crypto_generichash_blake2b_SALTBYTES 16U
60 size_t crypto_generichash_blake2b_saltbytes(void);
62 #define crypto_generichash_blake2b_PERSONALBYTES 16U
64 size_t crypto_generichash_blake2b_personalbytes(void);
67 int crypto_generichash_blake2b(unsigned char *out, size_t outlen,
68 const unsigned char *in,
69 unsigned long long inlen,
70 const unsigned char *key, size_t keylen);
73 int crypto_generichash_blake2b_salt_personal(unsigned char *out, size_t outlen,
74 const unsigned char *in,
75 unsigned long long inlen,
76 const unsigned char *key,
78 const unsigned char *salt,
79 const unsigned char *personal);
82 int crypto_generichash_blake2b_init(crypto_generichash_blake2b_state *state,
83 const unsigned char *key,
84 const size_t keylen, const size_t outlen);
87 int crypto_generichash_blake2b_init_salt_personal(crypto_generichash_blake2b_state *state,
88 const unsigned char *key,
89 const size_t keylen, const size_t outlen,
90 const unsigned char *salt,
91 const unsigned char *personal);
94 int crypto_generichash_blake2b_update(crypto_generichash_blake2b_state *state,
95 const unsigned char *in,
96 unsigned long long inlen);
99 int crypto_generichash_blake2b_final(crypto_generichash_blake2b_state *state,
101 const size_t outlen);