chacha.h revision 261287
1100384Speter/* $OpenBSD: chacha.h,v 1.1 2013/11/21 00:45:44 djm Exp $ */ 2100384Speter 3114987Speter/* 4100384Speterchacha-merged.c version 20080118 5100384SpeterD. J. Bernstein 6100384SpeterPublic domain. 7100384Speter*/ 8100384Speter 9100384Speter#ifndef CHACHA_H 10100384Speter#define CHACHA_H 11100384Speter 12100384Speter#include <sys/types.h> 13100384Speter 14100384Speterstruct chacha_ctx { 15100384Speter u_int input[16]; 16100384Speter}; 17100384Speter 18100384Speter#define CHACHA_MINKEYLEN 16 19100384Speter#define CHACHA_NONCELEN 8 20100384Speter#define CHACHA_CTRLEN 8 21100384Speter#define CHACHA_STATELEN (CHACHA_NONCELEN+CHACHA_CTRLEN) 22100384Speter#define CHACHA_BLOCKLEN 64 23100384Speter 24100384Spetervoid chacha_keysetup(struct chacha_ctx *x, const u_char *k, u_int kbits) 25100384Speter __attribute__((__bounded__(__minbytes__, 2, CHACHA_MINKEYLEN))); 26100384Spetervoid chacha_ivsetup(struct chacha_ctx *x, const u_char *iv, const u_char *ctr) 27100384Speter __attribute__((__bounded__(__minbytes__, 2, CHACHA_NONCELEN))) 28118031Sobrien __attribute__((__bounded__(__minbytes__, 3, CHACHA_CTRLEN))); 29118031Sobrienvoid chacha_encrypt_bytes(struct chacha_ctx *x, const u_char *m, 30118031Sobrien u_char *c, u_int bytes) 31114987Speter __attribute__((__bounded__(__buffer__, 2, 4))) 32114987Speter __attribute__((__bounded__(__buffer__, 3, 4))); 33100384Speter 34100384Speter#endif /* CHACHA_H */ 35100384Speter 36100384Speter