All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
isaac.c File Reference
#include <freeradius-devel/libradius.h>
+ Include dependency graph for isaac.c:

Go to the source code of this file.

Macros

#define ind(mm, x)   ((mm)[(x>>2)&(RANDSIZ-1)])
 
#define mix(a, b, c, d, e, f, g, h)
 
#define RANDSIZ   (1<<RANDSIZL)
 
#define RANDSIZL   (8) /* I recommend 8 for crypto, 4 for simulations */
 
#define rngstep(mix, a, b, mm, m, m2, r, x)
 

Functions

void fr_isaac (fr_randctx *ctx)
 
void fr_randinit (fr_randctx *ctx, int flag)
 

Macro Definition Documentation

#define ind (   mm,
 
)    ((mm)[(x>>2)&(RANDSIZ-1)])

Definition at line 20 of file isaac.c.

#define mix (   a,
  b,
  c,
  d,
  e,
  f,
  g,
 
)
Value:
{ \
a^=b<<11; d+=a; b+=c; \
b^=c>>2; e+=b; c+=d; \
c^=d<<8; f+=c; d+=e; \
d^=e>>16; g+=d; e+=f; \
e^=f<<10; h+=e; f+=g; \
f^=g>>4; a+=f; g+=h; \
g^=h<<8; b+=g; h+=a; \
h^=a>>9; c+=h; a+=b; \
}

Definition at line 52 of file isaac.c.

#define RANDSIZ   (1<<RANDSIZL)

Definition at line 18 of file isaac.c.

#define RANDSIZL   (8) /* I recommend 8 for crypto, 4 for simulations */

Definition at line 17 of file isaac.c.

#define rngstep (   mix,
  a,
  b,
  mm,
  m,
  m2,
  r,
 
)
Value:
{ \
x = *m; \
a = ((a^(mix)) + *(m2++)) & 0xffffffff; \
*(m++) = y = (ind(mm,x) + a + b) & 0xffffffff; \
*(r++) = b = (ind(mm,y>>RANDSIZL) + x) & 0xffffffff; \
}
#define RANDSIZL
Definition: isaac.c:17
#define ind(mm, x)
Definition: isaac.c:20
#define mix(a, b, c, d, e, f, g, h)
Definition: isaac.c:52
static int r
Definition: rbmonkey.c:66

Definition at line 21 of file isaac.c.

Function Documentation

void fr_isaac ( fr_randctx ctx)

Definition at line 29 of file isaac.c.

+ Here is the caller graph for this function:

void fr_randinit ( fr_randctx ctx,
int  flag 
)

Definition at line 65 of file isaac.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function: