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)))