Changeset View
Changeset View
Standalone View
Standalone View
cipher-chachapoly.h
/* $OpenBSD: cipher-chachapoly.h,v 1.4 2014/06/24 01:13:21 djm Exp $ */ | /* $OpenBSD: cipher-chachapoly.h,v 1.5 2020/04/03 04:27:03 djm Exp $ */ | ||||
/* | /* | ||||
* Copyright (c) Damien Miller 2013 <djm@mindrot.org> | * Copyright (c) Damien Miller 2013 <djm@mindrot.org> | ||||
* | * | ||||
* Permission to use, copy, modify, and distribute this software for any | * Permission to use, copy, modify, and distribute this software for any | ||||
* purpose with or without fee is hereby granted, provided that the above | * purpose with or without fee is hereby granted, provided that the above | ||||
* copyright notice and this permission notice appear in all copies. | * copyright notice and this permission notice appear in all copies. | ||||
* | * | ||||
Show All 9 Lines | |||||
#define CHACHA_POLY_AEAD_H | #define CHACHA_POLY_AEAD_H | ||||
#include <sys/types.h> | #include <sys/types.h> | ||||
#include "chacha.h" | #include "chacha.h" | ||||
#include "poly1305.h" | #include "poly1305.h" | ||||
#define CHACHA_KEYLEN 32 /* Only 256 bit keys used here */ | #define CHACHA_KEYLEN 32 /* Only 256 bit keys used here */ | ||||
struct chachapoly_ctx { | struct chachapoly_ctx; | ||||
struct chacha_ctx main_ctx, header_ctx; | |||||
}; | |||||
int chachapoly_init(struct chachapoly_ctx *cpctx, | struct chachapoly_ctx *chachapoly_new(const u_char *key, u_int keylen) | ||||
const u_char *key, u_int keylen) | __attribute__((__bounded__(__buffer__, 1, 2))); | ||||
__attribute__((__bounded__(__buffer__, 2, 3))); | void chachapoly_free(struct chachapoly_ctx *cpctx); | ||||
int chachapoly_crypt(struct chachapoly_ctx *cpctx, u_int seqnr, | int chachapoly_crypt(struct chachapoly_ctx *cpctx, u_int seqnr, | ||||
u_char *dest, const u_char *src, u_int len, u_int aadlen, u_int authlen, | u_char *dest, const u_char *src, u_int len, u_int aadlen, u_int authlen, | ||||
int do_encrypt); | int do_encrypt); | ||||
int chachapoly_get_length(struct chachapoly_ctx *cpctx, | int chachapoly_get_length(struct chachapoly_ctx *cpctx, | ||||
u_int *plenp, u_int seqnr, const u_char *cp, u_int len) | u_int *plenp, u_int seqnr, const u_char *cp, u_int len) | ||||
__attribute__((__bounded__(__buffer__, 4, 5))); | __attribute__((__bounded__(__buffer__, 4, 5))); | ||||
#endif /* CHACHA_POLY_AEAD_H */ | #endif /* CHACHA_POLY_AEAD_H */ |