/******************************************************************************* D language bindings for libsodium's crypto_stream.h License: ISC (see LICENSE.txt) *******************************************************************************/ module libsodium.crypto_stream; @nogc nothrow: import libsodium.export_; import libsodium.crypto_stream_xsalsa20; extern (C): /* * WARNING: This is just a stream cipher. It is NOT authenticated encryption. * While it provides some protection against eavesdropping, it does NOT * provide any security against active attacks. * Unless you know what you're doing, what you are looking for is probably * the crypto_box functions. */ enum crypto_stream_KEYBYTES = crypto_stream_xsalsa20_KEYBYTES; size_t crypto_stream_keybytes (); enum crypto_stream_NONCEBYTES = crypto_stream_xsalsa20_NONCEBYTES; size_t crypto_stream_noncebytes (); enum crypto_stream_MESSAGEBYTES_MAX = crypto_stream_xsalsa20_MESSAGEBYTES_MAX; size_t crypto_stream_messagebytes_max (); enum crypto_stream_PRIMITIVE = "xsalsa20"; const(char)* crypto_stream_primitive (); int crypto_stream (ubyte* c, ulong clen, const(ubyte)* n, const(ubyte)* k); int crypto_stream_xor ( ubyte* c, const(ubyte)* m, ulong mlen, const(ubyte)* n, const(ubyte)* k); void crypto_stream_keygen (ref ubyte[crypto_stream_KEYBYTES] k);