|  | /* $OpenBSD: chacha.h,v 1.2 2014/03/26 04:55:35 djm Exp $ */ | 
|  |  | 
|  | /* | 
|  | chacha-merged.c version 20080118 | 
|  | D. J. Bernstein | 
|  | Public domain. | 
|  | */ | 
|  |  | 
|  | #ifndef CHACHA_H | 
|  | #define CHACHA_H | 
|  |  | 
|  | #include <sys/types.h> | 
|  |  | 
|  | struct chacha_ctx { | 
|  | u_int input[16]; | 
|  | }; | 
|  |  | 
|  | #define CHACHA_MINKEYLEN 	16 | 
|  | #define CHACHA_NONCELEN		8 | 
|  | #define CHACHA_CTRLEN		8 | 
|  | #define CHACHA_STATELEN		(CHACHA_NONCELEN+CHACHA_CTRLEN) | 
|  | #define CHACHA_BLOCKLEN		64 | 
|  |  | 
|  | void chacha_keysetup(struct chacha_ctx *x, const u_char *k, u_int kbits) | 
|  | __bounded((__minbytes__, 2, CHACHA_MINKEYLEN)); | 
|  | void chacha_ivsetup(struct chacha_ctx *x, const u_char *iv, const u_char *ctr) | 
|  | __bounded((__minbytes__, 2, CHACHA_NONCELEN)) | 
|  | __bounded((__minbytes__, 3, CHACHA_CTRLEN)); | 
|  | void chacha_encrypt_bytes(struct chacha_ctx *x, const u_char *m, | 
|  | u_char *c, u_int bytes) | 
|  | __bounded((__buffer__, 2, 4)) | 
|  | __bounded((__buffer__, 3, 4)); | 
|  |  | 
|  | #endif	/* CHACHA_H */ | 
|  |  |