16 #define CHACHA_MINKEYLEN 16 17 #define CHACHA_NONCELEN 8 18 #define CHACHA_CTRLEN 8 19 #define CHACHA_STATELEN (CHACHA_NONCELEN+CHACHA_CTRLEN) 20 #define CHACHA_BLOCKLEN 64 22 void chacha_keysetup(
struct chacha_ctx *x,
const uint8_t *k, uint32_t kbits)
23 #ifdef HAVE_GCC_BOUNDED_ATTRIBUTE 24 __attribute__((__bounded__(__minbytes__, 2, CHACHA_MINKEYLEN)))
27 void chacha_ivsetup(
struct chacha_ctx *x,
const uint8_t *iv,
const uint8_t *ctr)
28 #ifdef HAVE_GCC_BOUNDED_ATTRIBUTE 29 __attribute__((__bounded__(__minbytes__, 2, CHACHA_NONCELEN)))
30 __attribute__((__bounded__(__minbytes__, 3, CHACHA_CTRLEN)))
33 void chacha_encrypt_bytes(
struct chacha_ctx *x,
const uint8_t *m,
34 uint8_t *c, uint32_t bytes)
35 #ifdef HAVE_GCC_BOUNDED_ATTRIBUTE 36 __attribute__((__bounded__(__buffer__, 2, 4)))
37 __attribute__((__bounded__(__buffer__, 3, 4)))