1
2#ifndef stream_chacha20_H
3#define stream_chacha20_H
4
5#include <stdint.h>
6
7typedef struct crypto_stream_chacha20_implementation {
8    int (*stream)(unsigned char *c, unsigned long long clen,
9                  const unsigned char *n, const unsigned char *k);
10    int (*stream_ietf)(unsigned char *c, unsigned long long clen,
11                      const unsigned char *n, const unsigned char *k);
12    int (*stream_xor_ic)(unsigned char *c, const unsigned char *m,
13                         unsigned long long mlen,
14                         const unsigned char *n, uint64_t ic,
15                         const unsigned char *k);
16    int (*stream_ietf_xor_ic)(unsigned char *c, const unsigned char *m,
17                              unsigned long long mlen,
18                              const unsigned char *n, uint32_t ic,
19                              const unsigned char *k);
20} crypto_stream_chacha20_implementation;
21
22#endif
23