libfortuna  1
FortunalibraryfunctionsextractedfromPostgreSQLsource
 All Data Structures Files Functions Variables Typedefs Macros
fortuna.c File Reference
#include <sys/time.h>
#include <time.h>
#include "c.h"
#include "rijndael.h"
#include "sha2.h"
#include "fortuna.h"

Data Structures

struct  fortuna_state
 

Macros

#define NUM_POOLS   23
 
#define RESEED_INTERVAL   100000 /* 0.1 sec */
 
#define RESEED_BYTES   (1024*1024)
 
#define POOL0_FILL   (256/8)
 
#define BLOCK   32
 
#define CIPH_BLOCK   16
 
#define MD_CTX   SHA256_CTX
 
#define CIPH_CTX   rijndael_ctx
 

Typedefs

typedef struct fortuna_state FState
 

Functions

void ciph_init (CIPH_CTX *ctx, const uint8 *key, int klen)
 
void ciph_encrypt (CIPH_CTX *ctx, const uint8 *in, uint8 *out)
 
void md_init (MD_CTX *ctx)
 
void md_update (MD_CTX *ctx, const uint8 *data, int len)
 
void md_result (MD_CTX *ctx, uint8 *dst)
 
void init_state (FState *st)
 
void inc_counter (FState *st)
 
void encrypt_counter (FState *st, uint8 *dst)
 
int enough_time_passed (FState *st)
 
void reseed (FState *st)
 
unsigned get_rand_pool (FState *st)
 
void add_entropy (FState *st, const uint8 *data, unsigned len)
 
void rekey (FState *st)
 
void startup_tricks (FState *st)
 
void extract_data (FState *st, unsigned count, uint8 *dst)
 
void fortuna_add_entropy (const uint8 *data, unsigned len)
 
void fortuna_get_bytes (unsigned len, uint8 *dst)
 

Variables

FState main_state
 
int init_done = 0
 

Macro Definition Documentation

#define BLOCK   32
#define CIPH_BLOCK   16
#define CIPH_CTX   rijndael_ctx
#define MD_CTX   SHA256_CTX
#define NUM_POOLS   23
#define POOL0_FILL   (256/8)
#define RESEED_BYTES   (1024*1024)
#define RESEED_INTERVAL   100000 /* 0.1 sec */

Typedef Documentation

typedef struct fortuna_state FState

Function Documentation

void add_entropy ( FState st,
const uint8 data,
unsigned  len 
)
void ciph_encrypt ( CIPH_CTX ctx,
const uint8 in,
uint8 out 
)
void ciph_init ( CIPH_CTX ctx,
const uint8 key,
int  klen 
)
void encrypt_counter ( FState st,
uint8 dst 
)
int enough_time_passed ( FState st)
void extract_data ( FState st,
unsigned  count,
uint8 dst 
)
void fortuna_add_entropy ( const uint8 data,
unsigned  len 
)
void fortuna_get_bytes ( unsigned  len,
uint8 dst 
)
unsigned get_rand_pool ( FState st)
void inc_counter ( FState st)
void init_state ( FState st)
void md_init ( MD_CTX ctx)
void md_result ( MD_CTX ctx,
uint8 dst 
)
void md_update ( MD_CTX ctx,
const uint8 data,
int  len 
)
void rekey ( FState st)
void reseed ( FState st)
void startup_tricks ( FState st)

Variable Documentation

int init_done = 0
FState main_state