libsodium (1.0.19)

(root)/
include/
sodium/
crypto_generichash_blake2b.h
       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