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