blob: 20d20f681a72c5178f9254edbe3127b664bf157a [file] [log] [blame]
Martin Willi31d72472015-07-16 19:14:00 +02001/*
2 * Common values for the ChaCha20 algorithm
3 */
4
5#ifndef _CRYPTO_CHACHA20_H
6#define _CRYPTO_CHACHA20_H
7
8#include <linux/types.h>
9#include <linux/crypto.h>
10
11#define CHACHA20_IV_SIZE 16
12#define CHACHA20_KEY_SIZE 32
13#define CHACHA20_BLOCK_SIZE 64
14
15struct chacha20_ctx {
16 u32 key[8];
17};
18
Theodore Ts'oe192be92016-06-12 18:13:36 -040019void chacha20_block(u32 *state, void *stream);
Martin Willi31d72472015-07-16 19:14:00 +020020void crypto_chacha20_init(u32 *state, struct chacha20_ctx *ctx, u8 *iv);
21int crypto_chacha20_setkey(struct crypto_tfm *tfm, const u8 *key,
22 unsigned int keysize);
23int crypto_chacha20_crypt(struct blkcipher_desc *desc, struct scatterlist *dst,
24 struct scatterlist *src, unsigned int nbytes);
25
26#endif