/*
* Taken from OpenBSD CVS src/lib/libc/crypt/chacha_private.h on
* May 12, 2014.
*/
/*
chacha-merged.c version 20080118
D. J. Bernstein
Public domain.
*/
typedef unsigned char u8;
typedef unsigned int u32;
typedef struct
{
} chacha_ctx;
#define U8C(v) (v##U)
#define U32C(v) (v##U)
#define ROTL32(v, n) \
(U32V((v) << (n)) | ((v) >> (32 - (n))))
#define U8TO32_LITTLE(p) \
(((u32)((p)[0]) ) | \
#define U32TO8_LITTLE(p, v) \
do { \
(p)[0] = U8V((v) ); \
} while (0)
#define XOR(v,w) ((v) ^ (w))
#define QUARTERROUND(a,b,c,d) \
'2', '-', 'b', 'y', 't', 'e', ' ', 'k' };
'6', '-', 'b', 'y', 't', 'e', ' ', 'k' };
static void
{
const char *constants;
k += 16;
} else { /* kbits == 128 */
}
}
static void
{
x->input[12] = 0;
x->input[13] = 0;
}
static void
{
u_int i;
if (!bytes) return;
for (;;) {
if (bytes < 64) {
m = tmp;
ctarget = c;
c = tmp;
}
for (i = 20;i > 0;i -= 2) {
}
#ifndef KEYSTREAM_ONLY
#endif
if (!j12) {
/* stopping at 2^70 bytes per nonce is user's responsibility */
}
U32TO8_LITTLE(c + 0,x0);
if (bytes <= 64) {
if (bytes < 64) {
}
return;
}
bytes -= 64;
c += 64;
#ifndef KEYSTREAM_ONLY
m += 64;
#endif
}
}