@@ -48,31 +48,10 @@ struct sober128_prng {
48
48
};
49
49
#endif
50
50
51
- typedef struct {
52
- union {
53
- char dummy [1 ];
54
- #ifdef LTC_YARROW
55
- struct yarrow_prng yarrow ;
56
- #endif
57
- #ifdef LTC_RC4
58
- struct rc4_prng rc4 ;
59
- #endif
60
- #ifdef LTC_CHACHA20_PRNG
61
- struct chacha20_prng chacha ;
62
- #endif
63
- #ifdef LTC_FORTUNA
64
- struct fortuna_prng fortuna ;
65
- #endif
66
- #ifdef LTC_SOBER128
67
- struct sober128_prng sober128 ;
68
- #endif
69
- } u ;
70
- short ready ; /* ready flag 0-1 */
71
- LTC_MUTEX_TYPE (lock ) /* lock */
72
- } prng_state ;
51
+ typedef struct ltc_prng_state prng_state ;
73
52
74
53
/** PRNG descriptor */
75
- extern struct ltc_prng_descriptor {
54
+ struct ltc_prng_descriptor {
76
55
/** Name of the PRNG */
77
56
const char * name ;
78
57
/** size in bytes of exported state */
@@ -124,7 +103,31 @@ extern struct ltc_prng_descriptor {
124
103
@return CRYPT_OK if successful, CRYPT_NOP if self-testing has been disabled
125
104
*/
126
105
int (* test )(void );
127
- } prng_descriptor [];
106
+ };
107
+
108
+ struct ltc_prng_state {
109
+ union {
110
+ char dummy [1 ];
111
+ #ifdef LTC_YARROW
112
+ struct yarrow_prng yarrow ;
113
+ #endif
114
+ #ifdef LTC_RC4
115
+ struct rc4_prng rc4 ;
116
+ #endif
117
+ #ifdef LTC_CHACHA20_PRNG
118
+ struct chacha20_prng chacha ;
119
+ #endif
120
+ #ifdef LTC_FORTUNA
121
+ struct fortuna_prng fortuna ;
122
+ #endif
123
+ #ifdef LTC_SOBER128
124
+ struct sober128_prng sober128 ;
125
+ #endif
126
+ } u ;
127
+ short ready ; /* ready flag 0-1 */
128
+ struct ltc_prng_descriptor desc ;
129
+ LTC_MUTEX_TYPE (lock ) /* lock */
130
+ };
128
131
129
132
#ifdef LTC_YARROW
130
133
int yarrow_start (prng_state * prng );
@@ -135,7 +138,6 @@ int yarrow_done(prng_state *prng);
135
138
int yarrow_export (unsigned char * out , unsigned long * outlen , prng_state * prng );
136
139
int yarrow_import (const unsigned char * in , unsigned long inlen , prng_state * prng );
137
140
int yarrow_test (void );
138
- extern const struct ltc_prng_descriptor yarrow_desc ;
139
141
#endif
140
142
141
143
#ifdef LTC_FORTUNA
@@ -149,7 +151,6 @@ int fortuna_export(unsigned char *out, unsigned long *outlen, prng_state *prng);
149
151
int fortuna_import (const unsigned char * in , unsigned long inlen , prng_state * prng );
150
152
int fortuna_update_seed (const unsigned char * in , unsigned long inlen , prng_state * prng );
151
153
int fortuna_test (void );
152
- extern const struct ltc_prng_descriptor fortuna_desc ;
153
154
#endif
154
155
155
156
#ifdef LTC_RC4
@@ -161,7 +162,6 @@ int rc4_done(prng_state *prng);
161
162
int rc4_export (unsigned char * out , unsigned long * outlen , prng_state * prng );
162
163
int rc4_import (const unsigned char * in , unsigned long inlen , prng_state * prng );
163
164
int rc4_test (void );
164
- extern const struct ltc_prng_descriptor rc4_desc ;
165
165
#endif
166
166
167
167
#ifdef LTC_CHACHA20_PRNG
@@ -173,7 +173,6 @@ int chacha20_prng_done(prng_state *prng);
173
173
int chacha20_prng_export (unsigned char * out , unsigned long * outlen , prng_state * prng );
174
174
int chacha20_prng_import (const unsigned char * in , unsigned long inlen , prng_state * prng );
175
175
int chacha20_prng_test (void );
176
- extern const struct ltc_prng_descriptor chacha20_prng_desc ;
177
176
#endif
178
177
179
178
#ifdef LTC_SPRNG
@@ -185,7 +184,6 @@ int sprng_done(prng_state *prng);
185
184
int sprng_export (unsigned char * out , unsigned long * outlen , prng_state * prng );
186
185
int sprng_import (const unsigned char * in , unsigned long inlen , prng_state * prng );
187
186
int sprng_test (void );
188
- extern const struct ltc_prng_descriptor sprng_desc ;
189
187
#endif
190
188
191
189
#ifdef LTC_SOBER128
@@ -197,24 +195,16 @@ int sober128_done(prng_state *prng);
197
195
int sober128_export (unsigned char * out , unsigned long * outlen , prng_state * prng );
198
196
int sober128_import (const unsigned char * in , unsigned long inlen , prng_state * prng );
199
197
int sober128_test (void );
200
- extern const struct ltc_prng_descriptor sober128_desc ;
201
198
#endif
202
199
203
- int find_prng (const char * name );
204
- int register_prng (const struct ltc_prng_descriptor * prng );
205
- int unregister_prng (const struct ltc_prng_descriptor * prng );
206
- int register_all_prngs (void );
207
- int prng_is_valid (int idx );
208
- LTC_MUTEX_PROTO (ltc_prng_mutex )
209
-
210
200
/* Slow RNG you **might** be able to use to seed a PRNG with. Be careful as this
211
201
* might not work on all platforms as planned
212
202
*/
213
203
unsigned long rng_get_bytes (unsigned char * out ,
214
204
unsigned long outlen ,
215
205
void (* callback )(void ));
216
206
217
- int rng_make_prng (int bits , int wprng , prng_state * prng , void (* callback )(void ));
207
+ int rng_make_prng (int bits , prng_state * prng , void (* callback )(void ));
218
208
219
209
#ifdef LTC_PRNG_ENABLE_LTC_RNG
220
210
extern unsigned long (* ltc_rng )(unsigned char * out , unsigned long outlen ,
0 commit comments