1 #ifndef crypto_secretbox_xchacha20poly1305_H 2 #define crypto_secretbox_xchacha20poly1305_H 3 4 #include <stddef.h> 5 #include "crypto_stream_xchacha20.h" 6 #include "export.h" 7 8 #ifdef __cplusplus 9 # ifdef __GNUC__ 10 # pragma GCC diagnostic ignored "-Wlong-long" 11 # endif 12 extern "C" { 13 #endif 14 15 #define crypto_secretbox_xchacha20poly1305_KEYBYTES 32U 16 SODIUM_EXPORT 17 size_t crypto_secretbox_xchacha20poly1305_keybytes(void); 18 19 #define crypto_secretbox_xchacha20poly1305_NONCEBYTES 24U 20 SODIUM_EXPORT 21 size_t crypto_secretbox_xchacha20poly1305_noncebytes(void); 22 23 #define crypto_secretbox_xchacha20poly1305_MACBYTES 16U 24 SODIUM_EXPORT 25 size_t crypto_secretbox_xchacha20poly1305_macbytes(void); 26 27 #define crypto_secretbox_xchacha20poly1305_MESSAGEBYTES_MAX \ 28 (crypto_stream_xchacha20_MESSAGEBYTES_MAX - crypto_secretbox_xchacha20poly1305_MACBYTES) 29 SODIUM_EXPORT 30 size_t crypto_secretbox_xchacha20poly1305_messagebytes_max(void); 31 32 SODIUM_EXPORT 33 int crypto_secretbox_xchacha20poly1305_easy(unsigned char *c, 34 const unsigned char *m, 35 unsigned long long mlen, 36 const unsigned char *n, 37 const unsigned char *k); 38 39 SODIUM_EXPORT 40 int crypto_secretbox_xchacha20poly1305_open_easy(unsigned char *m, 41 const unsigned char *c, 42 unsigned long long clen, 43 const unsigned char *n, 44 const unsigned char *k) 45 __attribute__ ((warn_unused_result)); 46 47 SODIUM_EXPORT 48 int crypto_secretbox_xchacha20poly1305_detached(unsigned char *c, 49 unsigned char *mac, 50 const unsigned char *m, 51 unsigned long long mlen, 52 const unsigned char *n, 53 const unsigned char *k); 54 55 SODIUM_EXPORT 56 int crypto_secretbox_xchacha20poly1305_open_detached(unsigned char *m, 57 const unsigned char *c, 58 const unsigned char *mac, 59 unsigned long long clen, 60 const unsigned char *n, 61 const unsigned char *k) 62 __attribute__ ((warn_unused_result)); 63 64 #ifdef __cplusplus 65 } 66 #endif 67 68 #endif 69