/* * Based on * 1. OpenSSL lib * 2. PurpleI2P source code * 3. cppcodec lib * * PUBLIC DOMAIN C++ WRAPPER * acetone, 2022 */ #ifndef CHACHA20_H #define CHACHA20_H #include #include using uint8_t = unsigned char; namespace FriendlyCrypto { #if defined(__FreeBSD__) || defined(__NetBSD__) #include #elif defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__GLIBC__) #include #elif defined(__APPLE__) && defined(__MACH__) #include #define htole32(x) OSSwapHostToLittleInt32(x) #else #define htole32 #endif std::vector chaCha20 (const std::vector& msg, const std::array& key, const uint8_t * nonce = nullptr) noexcept; std::vector chaCha20 (const uint8_t* msg, size_t msgSize, const std::array& key, const uint8_t * nonce = nullptr) noexcept; } #endif // CHACHA20_H