1 /******************************************************************************* 2 3 D language bindings for libsodium's crypto_secretbox_xchacha20poly1305.h 4 5 License: ISC (see LICENSE.txt) 6 7 *******************************************************************************/ 8 9 module libsodium.crypto_secretbox_xchacha20poly1305; 10 11 @nogc nothrow: 12 13 import libsodium.export_; 14 import libsodium.crypto_stream_xchacha20; 15 16 extern (C): 17 18 enum crypto_secretbox_xchacha20poly1305_KEYBYTES = 32U; 19 size_t crypto_secretbox_xchacha20poly1305_keybytes (); 20 21 enum crypto_secretbox_xchacha20poly1305_NONCEBYTES = 24U; 22 size_t crypto_secretbox_xchacha20poly1305_noncebytes (); 23 24 enum crypto_secretbox_xchacha20poly1305_MACBYTES = 16U; 25 size_t crypto_secretbox_xchacha20poly1305_macbytes (); 26 27 enum crypto_secretbox_xchacha20poly1305_MESSAGEBYTES_MAX = crypto_stream_xchacha20_MESSAGEBYTES_MAX - crypto_secretbox_xchacha20poly1305_MACBYTES; 28 size_t crypto_secretbox_xchacha20poly1305_messagebytes_max (); 29 30 int crypto_secretbox_xchacha20poly1305_easy ( 31 ubyte* c, 32 const(ubyte)* m, 33 ulong mlen, 34 const(ubyte)* n, 35 const(ubyte)* k); 36 37 int crypto_secretbox_xchacha20poly1305_open_easy ( 38 ubyte* m, 39 const(ubyte)* c, 40 ulong clen, 41 const(ubyte)* n, 42 const(ubyte)* k); 43 44 int crypto_secretbox_xchacha20poly1305_detached ( 45 ubyte* c, 46 ubyte* mac, 47 const(ubyte)* m, 48 ulong mlen, 49 const(ubyte)* n, 50 const(ubyte)* k); 51 52 int crypto_secretbox_xchacha20poly1305_open_detached ( 53 ubyte* m, 54 const(ubyte)* c, 55 const(ubyte)* mac, 56 ulong clen, 57 const(ubyte)* n, 58 const(ubyte)* k);