Electroneum
Loading...
Searching...
No Matches
chacha_private.h File Reference

Go to the source code of this file.

Classes

struct  chacha_ctx

Macros

#define U8C(v)
#define U32C(v)
#define U8V(v)
#define U32V(v)
#define ROTL32(v, n)
#define U8TO32_LITTLE(p)
#define U32TO8_LITTLE(p, v)
#define ROTATE(v, c)
#define XOR(v, w)
#define PLUS(v, w)
#define PLUSONE(v)
#define QUARTERROUND(a, b, c, d)

Typedefs

typedef unsigned char u8
typedef unsigned int u32

Macro Definition Documentation

◆ PLUS

#define PLUS ( v,
w )
Value:
(U32V((v) + (w)))
#define U32V(v)

Definition at line 42 of file chacha_private.h.

◆ PLUSONE

#define PLUSONE ( v)
Value:
(PLUS((v),1))
#define PLUS(v, w)

Definition at line 43 of file chacha_private.h.

◆ QUARTERROUND

#define QUARTERROUND ( a,
b,
c,
d )
Value:
a = PLUS(a,b); d = ROTATE(XOR(d,a),16); \
c = PLUS(c,d); b = ROTATE(XOR(b,c),12); \
a = PLUS(a,b); d = ROTATE(XOR(d,a), 8); \
c = PLUS(c,d); b = ROTATE(XOR(b,c), 7);
#define ROTATE(v, c)
#define XOR(v, w)
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition pointer.h:1124

Definition at line 45 of file chacha_private.h.

45#define QUARTERROUND(a,b,c,d) \
46 a = PLUS(a,b); d = ROTATE(XOR(d,a),16); \
47 c = PLUS(c,d); b = ROTATE(XOR(b,c),12); \
48 a = PLUS(a,b); d = ROTATE(XOR(d,a), 8); \
49 c = PLUS(c,d); b = ROTATE(XOR(b,c), 7);

◆ ROTATE

#define ROTATE ( v,
c )
Value:
(ROTL32(v,c))
#define ROTL32(a, b)

Definition at line 40 of file chacha_private.h.

◆ ROTL32

#define ROTL32 ( v,
n )
Value:
(U32V((v) << (n)) | ((v) >> (32 - (n))))

Definition at line 23 of file chacha_private.h.

23#define ROTL32(v, n) \
24 (U32V((v) << (n)) | ((v) >> (32 - (n))))

◆ U32C

#define U32C ( v)
Value:
(v##U)

Definition at line 18 of file chacha_private.h.

◆ U32TO8_LITTLE

#define U32TO8_LITTLE ( p,
v )
Value:
do { \
(p)[0] = U8V((v) ); \
(p)[1] = U8V((v) >> 8); \
(p)[2] = U8V((v) >> 16); \
(p)[3] = U8V((v) >> 24); \
} while (0)
#define U8V(v)

Definition at line 32 of file chacha_private.h.

32#define U32TO8_LITTLE(p, v) \
33 do { \
34 (p)[0] = U8V((v) ); \
35 (p)[1] = U8V((v) >> 8); \
36 (p)[2] = U8V((v) >> 16); \
37 (p)[3] = U8V((v) >> 24); \
38 } while (0)

◆ U32V

#define U32V ( v)
Value:
((u32)(v) & U32C(0xFFFFFFFF))
unsigned int u32
#define U32C(v)

Definition at line 21 of file chacha_private.h.

◆ U8C

#define U8C ( v)
Value:
(v##U)

Definition at line 17 of file chacha_private.h.

◆ U8TO32_LITTLE

#define U8TO32_LITTLE ( p)
Value:
(((u32)((p)[0]) ) | \
((u32)((p)[1]) << 8) | \
((u32)((p)[2]) << 16) | \
((u32)((p)[3]) << 24))

Definition at line 26 of file chacha_private.h.

26#define U8TO32_LITTLE(p) \
27 (((u32)((p)[0]) ) | \
28 ((u32)((p)[1]) << 8) | \
29 ((u32)((p)[2]) << 16) | \
30 ((u32)((p)[3]) << 24))

◆ U8V

#define U8V ( v)
Value:
((u8)(v) & U8C(0xFF))
#define U8C(v)
unsigned char u8

Definition at line 20 of file chacha_private.h.

◆ XOR

#define XOR ( v,
w )
Value:
((v) ^ (w))

Definition at line 41 of file chacha_private.h.

Typedef Documentation

◆ u32

typedef unsigned int u32

Definition at line 10 of file chacha_private.h.

◆ u8

typedef unsigned char u8

Definition at line 9 of file chacha_private.h.