comparison mycrypt_prng.h @ 0:d7da3b1e1540 libtomcrypt

put back the 0.95 makefile which was inadvertently merged over
author Matt Johnston <matt@ucc.asn.au>
date Mon, 31 May 2004 18:21:40 +0000
parents
children 5d99163f7e32
comparison
equal deleted inserted replaced
-1:000000000000 0:d7da3b1e1540
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