865602fa044e13fadcc871c24076d855eeb47329
[trex.git] /
1 #ifndef crypto_box_curve25519xsalsa20poly1305_H
2 #define crypto_box_curve25519xsalsa20poly1305_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_box_curve25519xsalsa20poly1305_SEEDBYTES 32U
15 SODIUM_EXPORT
16 size_t crypto_box_curve25519xsalsa20poly1305_seedbytes(void);
17
18 #define crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES 32U
19 SODIUM_EXPORT
20 size_t crypto_box_curve25519xsalsa20poly1305_publickeybytes(void);
21
22 #define crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES 32U
23 SODIUM_EXPORT
24 size_t crypto_box_curve25519xsalsa20poly1305_secretkeybytes(void);
25
26 #define crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES 32U
27 SODIUM_EXPORT
28 size_t crypto_box_curve25519xsalsa20poly1305_beforenmbytes(void);
29
30 #define crypto_box_curve25519xsalsa20poly1305_NONCEBYTES 24U
31 SODIUM_EXPORT
32 size_t crypto_box_curve25519xsalsa20poly1305_noncebytes(void);
33
34 #define crypto_box_curve25519xsalsa20poly1305_ZEROBYTES 32U
35 SODIUM_EXPORT
36 size_t crypto_box_curve25519xsalsa20poly1305_zerobytes(void);
37
38 #define crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES 16U
39 SODIUM_EXPORT
40 size_t crypto_box_curve25519xsalsa20poly1305_boxzerobytes(void);
41
42 #define crypto_box_curve25519xsalsa20poly1305_MACBYTES \
43     (crypto_box_curve25519xsalsa20poly1305_ZEROBYTES - \
44      crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES)
45 SODIUM_EXPORT
46 size_t crypto_box_curve25519xsalsa20poly1305_macbytes(void);
47
48 SODIUM_EXPORT
49 int crypto_box_curve25519xsalsa20poly1305(unsigned char *c,
50                                           const unsigned char *m,
51                                           unsigned long long mlen,
52                                           const unsigned char *n,
53                                           const unsigned char *pk,
54                                           const unsigned char *sk);
55
56 SODIUM_EXPORT
57 int crypto_box_curve25519xsalsa20poly1305_open(unsigned char *m,
58                                                const unsigned char *c,
59                                                unsigned long long clen,
60                                                const unsigned char *n,
61                                                const unsigned char *pk,
62                                                const unsigned char *sk);
63
64 SODIUM_EXPORT
65 int crypto_box_curve25519xsalsa20poly1305_seed_keypair(unsigned char *pk,
66                                                        unsigned char *sk,
67                                                        const unsigned char *seed);
68
69 SODIUM_EXPORT
70 int crypto_box_curve25519xsalsa20poly1305_keypair(unsigned char *pk,
71                                                   unsigned char *sk);
72
73 SODIUM_EXPORT
74 int crypto_box_curve25519xsalsa20poly1305_beforenm(unsigned char *k,
75                                                    const unsigned char *pk,
76                                                    const unsigned char *sk);
77
78 SODIUM_EXPORT
79 int crypto_box_curve25519xsalsa20poly1305_afternm(unsigned char *c,
80                                                   const unsigned char *m,
81                                                   unsigned long long mlen,
82                                                   const unsigned char *n,
83                                                   const unsigned char *k);
84
85 SODIUM_EXPORT
86 int crypto_box_curve25519xsalsa20poly1305_open_afternm(unsigned char *m,
87                                                        const unsigned char *c,
88                                                        unsigned long long clen,
89                                                        const unsigned char *n,
90                                                        const unsigned char *k);
91
92 #ifdef __cplusplus
93 }
94 #endif
95
96 #endif