4afc2cdf995de83e17d7c12c8bf4c71d1bf8be20
[trex.git] /
1 #ifndef crypto_secretbox_xsalsa20poly1305_H
2 #define crypto_secretbox_xsalsa20poly1305_H
3
4 #include <stddef.h>
5 #include "export.h"
6
7 #ifdef __cplusplus
8 # if __GNUC__
9 #  pragma GCC diagnostic ignored "-Wlong-long"
10 # endif
11 extern "C" {
12 #endif
13
14 #define crypto_secretbox_xsalsa20poly1305_KEYBYTES 32U
15 SODIUM_EXPORT
16 size_t crypto_secretbox_xsalsa20poly1305_keybytes(void);
17
18 #define crypto_secretbox_xsalsa20poly1305_NONCEBYTES 24U
19 SODIUM_EXPORT
20 size_t crypto_secretbox_xsalsa20poly1305_noncebytes(void);
21
22 #define crypto_secretbox_xsalsa20poly1305_ZEROBYTES 32U
23 SODIUM_EXPORT
24 size_t crypto_secretbox_xsalsa20poly1305_zerobytes(void);
25
26 #define crypto_secretbox_xsalsa20poly1305_BOXZEROBYTES 16U
27 SODIUM_EXPORT
28 size_t crypto_secretbox_xsalsa20poly1305_boxzerobytes(void);
29
30 #define crypto_secretbox_xsalsa20poly1305_MACBYTES \
31     (crypto_secretbox_xsalsa20poly1305_ZEROBYTES - \
32      crypto_secretbox_xsalsa20poly1305_BOXZEROBYTES)
33 SODIUM_EXPORT
34 size_t crypto_secretbox_xsalsa20poly1305_macbytes(void);
35
36 SODIUM_EXPORT
37 int crypto_secretbox_xsalsa20poly1305(unsigned char *c,
38                                       const unsigned char *m,
39                                       unsigned long long mlen,
40                                       const unsigned char *n,
41                                       const unsigned char *k);
42
43 SODIUM_EXPORT
44 int crypto_secretbox_xsalsa20poly1305_open(unsigned char *m,
45                                            const unsigned char *c,
46                                            unsigned long long clen,
47                                            const unsigned char *n,
48                                            const unsigned char *k);
49
50 #ifdef __cplusplus
51 }
52 #endif
53
54 #endif