2018-08-26 05:00:00 +02:00
|
|
|
#ifndef CHACHA_H
|
|
|
|
#define CHACHA_H
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
2018-09-11 16:22:28 +02:00
|
|
|
#define CHACHA_KEY_SIZE 32
|
|
|
|
#define CHACHA_IV_SIZE 8
|
|
|
|
|
2018-08-26 05:00:00 +02:00
|
|
|
typedef uint8_t u8;
|
|
|
|
typedef uint32_t u32;
|
|
|
|
|
2018-10-04 10:13:28 +02:00
|
|
|
typedef struct {
|
|
|
|
u32 input[16];
|
2018-08-26 05:00:00 +02:00
|
|
|
} chacha_ctx;
|
|
|
|
|
2018-10-04 10:13:28 +02:00
|
|
|
void chacha_keysetup(chacha_ctx *x, const u8 *k);
|
|
|
|
void chacha_ivsetup(chacha_ctx *x, const u8 *iv);
|
|
|
|
void chacha_keystream_bytes(chacha_ctx *x, u8 *c, u32 bytes);
|
2018-08-26 05:00:00 +02:00
|
|
|
|
|
|
|
#endif
|