gnunet-android

GNUnet for Android
Log | Files | Refs | README

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