classicfm-discord-bot/node_modules/sodium/src/crypto_streams.cc
2024-05-09 14:45:10 -04:00

56 lines
1.5 KiB
C++
Executable file

/**
* Node Native Module for Lib Sodium
*
* @Author Pedro Paixao
* @email paixaop at gmail dot com
* @License MIT
*/
#include "node_sodium.h"
#include "crypto_streams.h"
// Generate the binding methods for each algorithm
CRYPTO_STREAM_DEF(salsa20)
CRYPTO_STREAM_DEF_IC(salsa20)
CRYPTO_STREAM_DEF(xsalsa20)
CRYPTO_STREAM_DEF_IC(xsalsa20)
CRYPTO_STREAM_DEF(salsa208)
CRYPTO_STREAM_DEF(salsa2012)
CRYPTO_STREAM_DEF(chacha20)
CRYPTO_STREAM_DEF_IC(chacha20)
// chacha_ietf uses the same key length as crypto_stream_chacha20_KEYBYTES
// Libsodium does not define it, lets define it here so we don't get compilation errors
// when expanding the macros
// #define crypto_stream_chacha20_ietf_KEYBYTES crypto_stream_chacha20_KEYBYTES
//#define crypto_stream_chacha20_ietf_NONCEBYTES crypto_stream_chacha20_IETF_NONCEBYTES
CRYPTO_STREAM_DEF(chacha20_ietf)
CRYPTO_STREAM_DEF_IC(chacha20_ietf)
/**
* Register function calls in node binding
*/
void register_crypto_streams(Napi::Env env, Napi::Object exports) {
METHODS(xsalsa20);
EXPORT(crypto_stream_xsalsa20_xor_ic);
PROPS(xsalsa20);
METHODS(salsa20);
EXPORT(crypto_stream_salsa20_xor_ic);
PROPS(salsa20);
METHODS(salsa208);
PROPS(salsa208);
METHODS(salsa2012);
PROPS(salsa2012);
METHODS(chacha20);
EXPORT(crypto_stream_chacha20_xor_ic);
PROPS(chacha20);
METHODS(chacha20_ietf);
EXPORT(crypto_stream_chacha20_ietf_xor_ic);
PROPS(chacha20_ietf);
}