37 #define CHACHA8_KEY_SIZE 32 38 #define CHACHA8_IV_SIZE 8 40 #if defined(__cplusplus) 48 void chacha8(
const void* data,
size_t length,
const uint8_t* key,
const uint8_t*
iv,
char* cipher);
49 #if defined(__cplusplus) 58 memset(data, 0,
sizeof(data));
70 inline void chacha8(
const void* data, std::size_t length,
const chacha8_key& key,
const chacha8_iv&
iv,
char* cipher) {
71 chacha8(data, length, reinterpret_cast<const uint8_t*>(&key), reinterpret_cast<const uint8_t*>(&
iv), cipher);
74 inline void generate_chacha8_key(
const void *data,
size_t size, chacha8_key& key,
int cn_variant = 0) {
75 static_assert(
sizeof(chacha8_key) <=
sizeof(
hash),
"Size of hash must be at least that of chacha8_key");
78 memcpy(&key, pwd_hash,
sizeof(key));
79 memset(pwd_hash, 0,
sizeof(pwd_hash));
82 inline void generate_chacha8_key(std::string password, chacha8_key& key) {
83 return generate_chacha8_key(password.data(), password.size(), key);
static const unsigned char iv[64]
Definition: sha512-hash.c:13
#define CHACHA8_IV_SIZE
Definition: chacha8.h:38
void cn_slow_hash(const void *data, size_t length, char *hash, int variant)
Definition: slow-hash.c:1289
crypto namespace.
Definition: crypto.cpp:47
#define CHACHA8_KEY_SIZE
Definition: chacha8.h:37
POD_CLASS hash
Definition: hash.h:46
void chacha8(const void *data, size_t length, const uint8_t *key, const uint8_t *iv, char *cipher)
Definition: chacha8.c:43