crypto_generichash_blake2b.h (3993B)
1 #ifndef crypto_generichash_blake2b_H 2 #define crypto_generichash_blake2b_H 3 4 #include <stddef.h> 5 #include <stdint.h> 6 #include <stdlib.h> 7 8 #include "export.h" 9 10 #ifdef __cplusplus 11 # ifdef __GNUC__ 12 # pragma GCC diagnostic ignored "-Wlong-long" 13 # endif 14 extern "C" { 15 #endif 16 17 #ifdef __IBMC__ 18 # pragma pack(1) 19 #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) 20 # pragma pack(1) 21 #else 22 # pragma pack(push, 1) 23 #endif 24 25 typedef struct CRYPTO_ALIGN(64) crypto_generichash_blake2b_state { 26 unsigned char opaque[384]; 27 } crypto_generichash_blake2b_state; 28 29 #ifdef __IBMC__ 30 # pragma pack(pop) 31 #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) 32 # pragma pack() 33 #else 34 # pragma pack(pop) 35 #endif 36 37 #define crypto_generichash_blake2b_BYTES_MIN 16U 38 SODIUM_EXPORT 39 size_t crypto_generichash_blake2b_bytes_min(void); 40 41 #define crypto_generichash_blake2b_BYTES_MAX 64U 42 SODIUM_EXPORT 43 size_t crypto_generichash_blake2b_bytes_max(void); 44 45 #define crypto_generichash_blake2b_BYTES 32U 46 SODIUM_EXPORT 47 size_t crypto_generichash_blake2b_bytes(void); 48 49 #define crypto_generichash_blake2b_KEYBYTES_MIN 16U 50 SODIUM_EXPORT 51 size_t crypto_generichash_blake2b_keybytes_min(void); 52 53 #define crypto_generichash_blake2b_KEYBYTES_MAX 64U 54 SODIUM_EXPORT 55 size_t crypto_generichash_blake2b_keybytes_max(void); 56 57 #define crypto_generichash_blake2b_KEYBYTES 32U 58 SODIUM_EXPORT 59 size_t crypto_generichash_blake2b_keybytes(void); 60 61 #define crypto_generichash_blake2b_SALTBYTES 16U 62 SODIUM_EXPORT 63 size_t crypto_generichash_blake2b_saltbytes(void); 64 65 #define crypto_generichash_blake2b_PERSONALBYTES 16U 66 SODIUM_EXPORT 67 size_t crypto_generichash_blake2b_personalbytes(void); 68 69 SODIUM_EXPORT 70 size_t crypto_generichash_blake2b_statebytes(void); 71 72 SODIUM_EXPORT 73 int crypto_generichash_blake2b(unsigned char *out, size_t outlen, 74 const unsigned char *in, 75 unsigned long long inlen, 76 const unsigned char *key, size_t keylen) 77 __attribute__ ((nonnull(1))); 78 79 SODIUM_EXPORT 80 int crypto_generichash_blake2b_salt_personal(unsigned char *out, size_t outlen, 81 const unsigned char *in, 82 unsigned long long inlen, 83 const unsigned char *key, 84 size_t keylen, 85 const unsigned char *salt, 86 const unsigned char *personal) 87 __attribute__ ((nonnull(1))); 88 89 SODIUM_EXPORT 90 int crypto_generichash_blake2b_init(crypto_generichash_blake2b_state *state, 91 const unsigned char *key, 92 const size_t keylen, const size_t outlen) 93 __attribute__ ((nonnull(1))); 94 95 SODIUM_EXPORT 96 int crypto_generichash_blake2b_init_salt_personal(crypto_generichash_blake2b_state *state, 97 const unsigned char *key, 98 const size_t keylen, const size_t outlen, 99 const unsigned char *salt, 100 const unsigned char *personal) 101 __attribute__ ((nonnull(1))); 102 103 SODIUM_EXPORT 104 int crypto_generichash_blake2b_update(crypto_generichash_blake2b_state *state, 105 const unsigned char *in, 106 unsigned long long inlen) 107 __attribute__ ((nonnull(1))); 108 109 SODIUM_EXPORT 110 int crypto_generichash_blake2b_final(crypto_generichash_blake2b_state *state, 111 unsigned char *out, 112 const size_t outlen) __attribute__ ((nonnull)); 113 114 SODIUM_EXPORT 115 void crypto_generichash_blake2b_keygen(unsigned char k[crypto_generichash_blake2b_KEYBYTES]) 116 __attribute__ ((nonnull)); 117 118 #ifdef __cplusplus 119 } 120 #endif 121 122 #endif