7 #include <botan/sodium.h>
8 #include <botan/salsa20.h>
9 #include <botan/loadstor.h>
14 const uint8_t key[],
const uint8_t c[])
16 uint32_t in32[16] = { 0 };
18 static const uint32_t SIGMA[] =
19 { 0x61707865, 0x3320646e, 0x79622d32, 0x6b206574 };
51 uint32_t out32[8] = { 0 };
59 const uint8_t nonce[],
const uint8_t key[])
69 size_t in_len,
const uint8_t nonce[],
77 const uint8_t nonce[], uint64_t ic,
87 salsa.
cipher(in, out, in_len);
92 const uint8_t nonce[],
const uint8_t key[])
102 size_t in_len,
const uint8_t nonce[],
110 const uint8_t nonce[], uint64_t ic,
120 salsa.
cipher(in, out, in_len);
int crypto_core_hsalsa20(uint8_t out[], const uint8_t in[], const uint8_t key[], const uint8_t c[])
int crypto_stream_salsa20_xor_ic(uint8_t out[], const uint8_t ptext[], size_t ptext_len, const uint8_t nonce[], uint64_t ic, const uint8_t key[])
void copy_out_le(uint8_t out[], size_t out_bytes, const T in[])
int crypto_stream_xsalsa20_xor_ic(uint8_t out[], const uint8_t ptext[], size_t ptext_len, const uint8_t nonce[], uint64_t ic, const uint8_t key[])
uint32_t load_le< uint32_t >(const uint8_t in[], size_t off)
int crypto_stream_salsa20_xor(uint8_t out[], const uint8_t ptext[], size_t ptext_len, const uint8_t nonce[], const uint8_t key[])
void seek(uint64_t offset) override
int crypto_stream_xsalsa20_xor(uint8_t out[], const uint8_t ptext[], size_t ptext_len, const uint8_t nonce[], const uint8_t key[])
void set_key(const SymmetricKey &key)
virtual void write_keystream(uint8_t out[], size_t len)
static void hsalsa20(uint32_t output[8], const uint32_t input[16])
int crypto_stream_salsa20(uint8_t out[], size_t ctext_len, const uint8_t nonce[], const uint8_t key[])
void set_iv(const uint8_t iv[], size_t iv_len) override
void cipher(const uint8_t in[], uint8_t out[], size_t length) override
int crypto_stream_xsalsa20(uint8_t out[], size_t ctext_len, const uint8_t nonce[], const uint8_t key[])