gnunet-android

GNUnet for Android
Log | Files | Refs | README

crypto_aead_xchacha20poly1305.h (4848B)


      1 #ifndef crypto_aead_xchacha20poly1305_H
      2 #define crypto_aead_xchacha20poly1305_H
      3 
      4 #include <stddef.h>
      5 #include "export.h"
      6 
      7 #ifdef __cplusplus
      8 # ifdef __GNUC__
      9 #  pragma GCC diagnostic ignored "-Wlong-long"
     10 # endif
     11 extern "C" {
     12 #endif
     13 
     14 #define crypto_aead_xchacha20poly1305_ietf_KEYBYTES 32U
     15 SODIUM_EXPORT
     16 size_t crypto_aead_xchacha20poly1305_ietf_keybytes(void);
     17 
     18 #define crypto_aead_xchacha20poly1305_ietf_NSECBYTES 0U
     19 SODIUM_EXPORT
     20 size_t crypto_aead_xchacha20poly1305_ietf_nsecbytes(void);
     21 
     22 #define crypto_aead_xchacha20poly1305_ietf_NPUBBYTES 24U
     23 SODIUM_EXPORT
     24 size_t crypto_aead_xchacha20poly1305_ietf_npubbytes(void);
     25 
     26 #define crypto_aead_xchacha20poly1305_ietf_ABYTES 16U
     27 SODIUM_EXPORT
     28 size_t crypto_aead_xchacha20poly1305_ietf_abytes(void);
     29 
     30 #define crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX \
     31     (SODIUM_SIZE_MAX - crypto_aead_xchacha20poly1305_ietf_ABYTES)
     32 SODIUM_EXPORT
     33 size_t crypto_aead_xchacha20poly1305_ietf_messagebytes_max(void);
     34 
     35 SODIUM_EXPORT
     36 int crypto_aead_xchacha20poly1305_ietf_encrypt(unsigned char *c,
     37                                                unsigned long long *clen_p,
     38                                                const unsigned char *m,
     39                                                unsigned long long mlen,
     40                                                const unsigned char *ad,
     41                                                unsigned long long adlen,
     42                                                const unsigned char *nsec,
     43                                                const unsigned char *npub,
     44                                                const unsigned char *k)
     45             __attribute__ ((nonnull(1, 8, 9)));
     46 
     47 SODIUM_EXPORT
     48 int crypto_aead_xchacha20poly1305_ietf_decrypt(unsigned char *m,
     49                                                unsigned long long *mlen_p,
     50                                                unsigned char *nsec,
     51                                                const unsigned char *c,
     52                                                unsigned long long clen,
     53                                                const unsigned char *ad,
     54                                                unsigned long long adlen,
     55                                                const unsigned char *npub,
     56                                                const unsigned char *k)
     57             __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(4, 8, 9)));
     58 
     59 SODIUM_EXPORT
     60 int crypto_aead_xchacha20poly1305_ietf_encrypt_detached(unsigned char *c,
     61                                                         unsigned char *mac,
     62                                                         unsigned long long *maclen_p,
     63                                                         const unsigned char *m,
     64                                                         unsigned long long mlen,
     65                                                         const unsigned char *ad,
     66                                                         unsigned long long adlen,
     67                                                         const unsigned char *nsec,
     68                                                         const unsigned char *npub,
     69                                                         const unsigned char *k)
     70             __attribute__ ((nonnull(1, 2, 9, 10)));
     71 
     72 SODIUM_EXPORT
     73 int crypto_aead_xchacha20poly1305_ietf_decrypt_detached(unsigned char *m,
     74                                                         unsigned char *nsec,
     75                                                         const unsigned char *c,
     76                                                         unsigned long long clen,
     77                                                         const unsigned char *mac,
     78                                                         const unsigned char *ad,
     79                                                         unsigned long long adlen,
     80                                                         const unsigned char *npub,
     81                                                         const unsigned char *k)
     82             __attribute__ ((warn_unused_result)) __attribute__ ((nonnull(3, 5, 8, 9)));
     83 
     84 SODIUM_EXPORT
     85 void crypto_aead_xchacha20poly1305_ietf_keygen(unsigned char k[crypto_aead_xchacha20poly1305_ietf_KEYBYTES])
     86             __attribute__ ((nonnull));
     87 
     88 /* Aliases */
     89 
     90 #define crypto_aead_xchacha20poly1305_IETF_KEYBYTES         crypto_aead_xchacha20poly1305_ietf_KEYBYTES
     91 #define crypto_aead_xchacha20poly1305_IETF_NSECBYTES        crypto_aead_xchacha20poly1305_ietf_NSECBYTES
     92 #define crypto_aead_xchacha20poly1305_IETF_NPUBBYTES        crypto_aead_xchacha20poly1305_ietf_NPUBBYTES
     93 #define crypto_aead_xchacha20poly1305_IETF_ABYTES           crypto_aead_xchacha20poly1305_ietf_ABYTES
     94 #define crypto_aead_xchacha20poly1305_IETF_MESSAGEBYTES_MAX crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX
     95 
     96 #ifdef __cplusplus
     97 }
     98 #endif
     99 
    100 #endif