Mercurial > dropbear
comparison mycrypt_prng.h @ 3:7faae8f46238 libtomcrypt-orig
Branch renaming
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Mon, 31 May 2004 18:25:41 +0000 |
parents | |
children | 5d99163f7e32 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 3:7faae8f46238 |
---|---|
1 /* ---- PRNG Stuff ---- */ | |
2 struct yarrow_prng { | |
3 int cipher, hash; | |
4 unsigned char pool[MAXBLOCKSIZE]; | |
5 symmetric_CTR ctr; | |
6 }; | |
7 | |
8 struct rc4_prng { | |
9 int x, y; | |
10 unsigned char buf[256]; | |
11 }; | |
12 | |
13 typedef union Prng_state { | |
14 struct yarrow_prng yarrow; | |
15 struct rc4_prng rc4; | |
16 } prng_state; | |
17 | |
18 extern struct _prng_descriptor { | |
19 char *name; | |
20 int (*start)(prng_state *); | |
21 int (*add_entropy)(const unsigned char *, unsigned long, prng_state *); | |
22 int (*ready)(prng_state *); | |
23 unsigned long (*read)(unsigned char *, unsigned long len, prng_state *); | |
24 } prng_descriptor[]; | |
25 | |
26 #ifdef YARROW | |
27 extern int yarrow_start(prng_state *prng); | |
28 extern int yarrow_add_entropy(const unsigned char *buf, unsigned long len, prng_state *prng); | |
29 extern int yarrow_ready(prng_state *prng); | |
30 extern unsigned long yarrow_read(unsigned char *buf, unsigned long len, prng_state *prng); | |
31 extern const struct _prng_descriptor yarrow_desc; | |
32 #endif | |
33 | |
34 #ifdef RC4 | |
35 extern int rc4_start(prng_state *prng); | |
36 extern int rc4_add_entropy(const unsigned char *buf, unsigned long len, prng_state *prng); | |
37 extern int rc4_ready(prng_state *prng); | |
38 extern unsigned long rc4_read(unsigned char *buf, unsigned long len, prng_state *prng); | |
39 extern const struct _prng_descriptor rc4_desc; | |
40 #endif | |
41 | |
42 #ifdef SPRNG | |
43 extern int sprng_start(prng_state *prng); | |
44 extern int sprng_add_entropy(const unsigned char *buf, unsigned long len, prng_state *prng); | |
45 extern int sprng_ready(prng_state *prng); | |
46 extern unsigned long sprng_read(unsigned char *buf, unsigned long len, prng_state *prng); | |
47 extern const struct _prng_descriptor sprng_desc; | |
48 #endif | |
49 | |
50 extern int find_prng(const char *name); | |
51 extern int register_prng(const struct _prng_descriptor *prng); | |
52 extern int unregister_prng(const struct _prng_descriptor *prng); | |
53 extern int prng_is_valid(int idx); | |
54 | |
55 | |
56 /* Slow RNG you **might** be able to use to seed a PRNG with. Be careful as this | |
57 * might not work on all platforms as planned | |
58 */ | |
59 /* ch2-02-1 */ | |
60 extern unsigned long rng_get_bytes(unsigned char *buf, | |
61 unsigned long len, | |
62 void (*callback)(void)); | |
63 /* ch2-02-1 */ | |
64 | |
65 extern int rng_make_prng(int bits, int wprng, prng_state *prng, void (*callback)(void)); | |
66 |