libsodium (1.0.19)

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