| 12345678910111213141516171819202122 |
- #ifndef CHACHA20POLY1305_H
- #define CHACHA20POLY1305_H
- #include <stdint.h>
- #include "ecrypt_sync.h"
- #include "poly1305_donna.h"
- typedef struct {
- ECRYPT_ctx chacha20;
- poly1305_context poly1305;
- } chacha20poly1305_ctx;
- void xchacha20poly1305_init(
- chacha20poly1305_ctx* ctx,
- const uint8_t key[32],
- const uint8_t nonce[24]);
- void chacha20poly1305_encrypt(chacha20poly1305_ctx* ctx, const uint8_t* in, uint8_t* out, size_t n);
- void chacha20poly1305_decrypt(chacha20poly1305_ctx* ctx, const uint8_t* in, uint8_t* out, size_t n);
- void chacha20poly1305_auth(chacha20poly1305_ctx* ctx, const uint8_t* in, size_t n);
- void chacha20poly1305_finish(chacha20poly1305_ctx* ctx, uint8_t mac[16]);
- #endif // CHACHA20POLY1305_H
|