5c528698a8c2cf22f87e447eda256c34d8c745d3
[libgcrypt.git] / cipher / ChangeLog
1 2003-07-14  Moritz Schulte  <moritz@g10code.com>
2
3         * cipher.c (gcry_cipher_lookup_func_name): Also check the cipher
4         name aliases, not just the primary name.
5         (gcry_cipher_map_name): Remove kludge for aliasing Rijndael to
6         AES.
7
8         * arcfour.c, blowfish.c, cast5.c, des.c, twofish.c: Adjust cipher
9         specification structures.
10
11         * rijndael.c (rijndael_names, rijndael192_names,
12         rijndael256_names): New variables, use them in the cipher
13         specifications.
14
15         * rmd160test.c: Removed file.
16
17         * ac.c, arcfour.c, blowfish.c, cast5.c, cipher.c, des.c, dsa.c,
18         elgamal.c, md.c, pubkey.c, random.c, rijndael.c, rsa.c, twofish.c:
19         Used gcry_err* wrappers for libgpg symbols.
20
21         * primegen.c (gen_prime): Correct the order arguments to
22         extra_check.
23
24 2003-07-12  Moritz Schulte  <moritz@g10code.com>
25
26         * ac.c: Replaced all public occurences of gpg_error_t with
27         gcry_error_t.
28         * cipher.c: Likewise.
29         * md.c: Likewise.
30         * pubkey.c: Likewise.
31         * random.c: Likewise.
32
33         * cipher.c: Added support for TWOFISH128.
34
35 2003-07-08  Moritz Schulte  <moritz@g10code.com>
36
37         * ac.c (gcry_ac_data_copy_internal): New function, based on
38         gcry_ac_data_copy.
39         (gcry_ac_data_copy): Made public, use gcry_ac_data_copy_internal.
40         (gcry_ac_key_init): Use gcry_ac_data_copy_internal.
41
42 2003-07-07  Moritz Schulte  <moritz@g10code.com>
43
44         * ac.c (gcry_ac_data_set): Only release old MPI value if it is
45         different from the new value.  Bug reported by Simon Josefsson
46         <jas@extundo.com>.
47
48         * pubkey.c (gcry_pk_list): New function.
49         * md.c (gcry_md_list): New function.
50
51         * ac.c (gcry_ac_key_pair_generate): Fix calculation of format
52         string size.
53
54 2003-07-05  Moritz Schulte  <moritz@g10code.com>
55
56         * md.c: Named struct of digest_table `digest_table_entry'.
57         (digest_table_entry): New member: algorithm; filled in.
58         (digest_table_entry): Removed unused member: flags.
59         (gcry_md_register): New argument: algorithm_id, filled in.
60         (gcry_md_register_default): Used algorithm ID from module
61         structure.
62         (gcry_md_map_name): Likewise.
63         (md_enable): Likewise.
64         (md_read): Likewise.
65         (gcry_md_info): Likewise.
66
67         * pubkey.c: Named truct for pubkey_table `pubkey_table_entry'.
68         (pubkey_table_entry): New member: algorithm; filled in.
69         (gcry_pk_register_default): Used algorithm ID from pubkey_table.
70         (gcry_pk_register): New argument: algorithm_id, filled in.
71         (gcry_pk_map_name): Used algorithm ID from module structure.
72         (gcry_pk_decrypt): Likewise.
73         (gcry_pk_encrypt): Likewise.
74         (gcry_pk_verify): Likewise.
75         (gcry_pk_sign): Likewise.
76         (gcry_pk_testkey): Likewise.
77         (gcry_pk_genkey): Likewise.
78         (gcry_pk_get_nbits): Likewise.
79         (sexp_to_key): Removed unused variable: algo.
80         (sexp_to_sig): Likewise.
81
82         * cipher.c: Named struct for cipher_table `cipher_table_entry'.
83         (cipher_table_entry): New member: algorithm; filled in.
84         (gcry_cipher_register_default): Used algorithm ID from
85         cipher_table.
86         (gcry_cipher_register): New argument: algorithm_id, filled in.
87         (gcry_cipher_map_name): Used algorithm ID from module structure.
88
89         * arcfour.c (cipher_spec_arcfour): Removed algorithm ID.
90         * blowfish.c (cipher_spec_blowfish): Likewise.
91         * cast5.c (cipher_spec_cast5): Likewise.
92         * crc.c (digest_spec_crc32): Likewise.
93         * crc.c (digest_spec_crc32_rfc1510): Likewise.
94         * crc.c (digest_spec_crc32_rfc2440): Likewise.
95         * des.c (cipher_spec_des): Likewise.
96         * des.c (cipher_spec_tripledes): Likewise.
97         * dsa.c (pubkey_spec_dsa): Likewise.
98         * elgamal.c (pubkey_spec_elg): Likewise.
99         * md4.c (digest_spec_md4): Likewise.
100         * md5.c (digest_spec_md5): Likewise.
101         * aes.c (cipher_spec_aes): Likewise.
102         * aes.c (cipher_spec_aes192): Likewise.
103         * aes.c (cipher_spec_aes256): Likewise.
104         * rsa.c (pubkey_spec_rsa): Likewise.
105         * sha1.c (digest_spec_sha1): Likewise.
106         * sha256.c (digest_spec_sha256): Likewise.
107         * sha512.c (digest_spec_sha512): Likewise.
108         * tiger.c (digest_spec_tiger): Likewise.
109         * twofish.c (cipher_spec_twofish): Likewise.
110         * twofish.c (cipher_spec_twofish128): Likewise.
111
112         * Makefile.am (EXTRA_libcipher_la_SOURCES): Fix list of source
113         files; reported by Simon Josefsson <jas@extundo.com>.
114
115         * pubkey.c: Replaced all occurences of `id' with `algorithm',
116         since `id' is a keyword in obj-c.
117         * md.c: Likewise.
118         * cipher.c: Likewise.
119
120         * crc.c, md4.c, md5.c, rmd160.c, sha1.c, sha256.c, tiger.c:
121         Replaced all occurences of gcry_digest_spec_t with gcry_md_spec_t.
122
123         * dsa.c, rsa.c, elgamal.c: Replaced all occurencens of
124         gcry_pubkey_spec_t with gcry_pk_spec_t.
125
126         * md.c: Replaced all occurences of gcry_digest_spec_t with
127         gcry_md_spec_t.
128         (gcry_digest_register_default): Renamed to ...
129         (gcry_md_register_default): ... this; adjusted callers.
130         (gcry_digest_lookup_func_name): Renamed to ...
131         (gcry_md_lookup_func_name): ... this; adjusted callers.
132         (gcry_digest_lookup_name): Renamed to ...
133         (gcry_md_lookup_name): ... this; adjusted callers.
134         (gcry_digest_register): Renamed to ...
135         (gcry_md_register): ... this.
136         (gcry_digest_unregister): Renamed to ...
137         (gcry_md_unregister): ... this.
138
139         * pubkey.c (gcry_pubkey_register): Renamed to ...
140         (gcry_pk_register): ... this.
141         (gcry_pubkey_unregister): Renamed to ...
142         (gcry_pk_unregister): ... this.
143         Replaced all occurences of gcry_pubkey_spec_t with gcry_pk_spec_t.
144         (gcry_pubkey_register_default): Renamed to ...
145         (gcry_pk_register_default): ... this; adjusted callers.
146         (gcry_pubkey_lookup_func_name): Renamed to ...
147         (gcry_pk_lookup_func_name): ... this; adjusted callers.
148         (gcry_pubkey_lookup_name): Renamed to ...
149         (gcry_pk_lookup_name): ... this; adjusted callers.
150
151         * md.c (gcry_md_hash_buffer): Fix error checking.  Thanks to Simon
152         Josefsson <jas@extunde.com>.
153
154 2003-07-04  Moritz Schulte  <moritz@g10code.com>
155
156         * cipher.c (gcry_cipher_list): New function.
157
158 2003-07-01  Moritz Schulte  <moritz@g10code.com>
159
160         * pubkey.c (sexp_to_sig): Accept a `flags' S-expression to be more
161         consistent with sexp_to_enc.
162
163 2003-06-30  Moritz Schulte  <moritz@g10code.com>
164
165         * Makefile.am (libcipher_la_SOURCES): Added: ac.c.
166
167         * pubkey.c (_gcry_pk_module_lookup): New function.
168         (_gcry_pk_module_release): New function.
169
170 2003-06-29  Moritz Schulte  <moritz@g10code.com>
171
172         * ac.c: New file.
173
174 2003-06-18  Werner Koch  <wk@gnupg.org>
175
176         * cipher.c (gcry_cipher_get_algo_keylen): New.
177         (gcry_cipher_get_algo_blklen): New.
178
179 2003-06-18  Moritz Schulte  <moritz@g10code.com>
180
181         * arcfour.c, cipher.c, blowfish.c, md.c, cast5.c, pubkey.c, crc.c,
182         des.c, dsa.c, elgamal.c, md4.c, md5.c, random.c, rijndael.c,
183         rmd160.c, rsa.c, sha1.c, sha256.c, sha512.c, tiger.c, twofish.c:
184         Replaced older types GcryDigestSpec, GcryCipherSpec and
185         GcryPubkeySpec with newer types: gcry_digest_spec_t,
186         gcry_cipher_spec_t and gcry_pubkey_spec_t.
187
188         * md.c (gcry_digest_id_new): Removed function.
189         (gcry_digest_register): Removed code for generating a new module
190         ID.
191
192         * pubkey.c (gcry_pubkey_id_new): Removed function.
193         (gcry_pubkey_register): Removed code for generating a new module
194         ID.
195
196         * cipher.c, md.c, pubkey.c: Replace old type GcryModule with newer
197         one: gcry_module_t.
198         (gcry_cipher_id_new): Removed function.
199         (gcry_cipher_register): Removed code for generating a new module
200         ID.
201
202         * cipher.c (gcry_cipher_register): Adjust call to
203         _gcry_module_add.
204         (gcry_cipher_register_default): Likewise.
205         * pubkey.c (gcry_pubkey_register_default): Likewise.
206         (gcry_pubkey_register): Likewise.
207         * md.c (gcry_digest_register_default): Likewise.
208         (gcry_digest_register): Likewise.
209
210         * md.c (gcry_digest_lookup_func_id): Removed function.
211         (gcry_digest_lookup_id): Likewise.
212         (gcry_digest_id_new): Use _gcry_module_lookup_id instead of
213         gcry_digest_lookup_id.
214         (digest_algo_to_string): Likewise.
215         (check_digest_algo): Likewise.
216         (md_enable): Likewise.
217         (md_digest_length): Likewise.
218         (md_asn_oid): Likewise.
219
220         * pubkey.c (gcry_pubkey_lookup_id): Removed function.
221         (gcry_pubkey_lookup_func_id): Likewise.
222         (gcry_pubkey_id_new): Use _gcry_module_lookup_id instead of
223         gcry_pubkey_id_new.
224         (gcry_pk_algo_name): Likewise.
225         (disable_pubkey_algo): Likewise.
226         (check_pubkey_algo): Likewise.
227         (pubkey_get_npkey): Likewise.
228         (pubkey_get_nskey): Likewise.
229         (pubkey_get_nsig): Likewise.
230         (pubkey_get_nenc): Likewise.
231         (pubkey_generate): Likewise.
232         (pubkey_check_secret_key): Likewise.
233         (pubkey_encrypt): Likewise.
234         (pubkey_decrypt): Likewise.
235         (pubkey_sign): Likewise.
236         (pubkey_verify): Likewise.
237         (gcry_pk_algo_info): Likewise.
238
239         * cipher.c (gcry_cipher_lookup_func_id): Removed function.
240         (gcry_cipher_lookup_id): Likewise.
241         (cipher_algo_to_string): use _gcry_module_lookup_id instead of
242         gcry_cipher_lookup_id.
243         (disable_cipher_algo): Likewise.
244         (check_cipher_algo): Likewise.
245         (cipher_get_blocksize): Likewise.
246         (gcry_cipher_open): Likewise.
247         (gcry_cipher_id_new): Likewise.
248
249 2003-06-17  Moritz Schulte  <moritz@g10code.com>
250
251         * Makefile.am (GCRYPT_MODULES): Set to @GCRYPT_CIPHERS@,
252         @GCRYPT_PUBKEY_CIPHERS@, @GCRYPT_DIGESTS@ and @GCRYPT_RANDOM@.
253         (libcipher_la_DEPENDENCIES): Set to $(GCRYPT_MODULES).
254         (libcipher_la_LIBADD): Likewise.
255         (AM_CFLAGS): Added: @GPG_ERROR_CFLAGS@.
256         (EXTRA_libcipher_la_SOURCES): Added all conditional sources.
257
258         * md.c (md_open): Use _gcry_fast_random_poll instead of
259         fast_random_poll.
260         * cipher.c (gcry_cipher_open): Likewise.
261
262         * random.h (fast_random_poll): Removed macro.
263
264         * blowfish.c, md4.c, md5.c, rmd160.c, sha1.c, sha256.c, sha512.c,
265         tiger.c: Use Autoconf's WORDS_BIGENDIAN instead of our own
266         BIG_ENDIAN_HOST.
267
268 2003-06-16  Moritz Schulte  <moritz@g10code.com>
269
270         * random.c (getfnc_gather_random): Do not special-case
271         USE_ALL_RANDOM_MODULES, make it the default.
272
273         * dsa.c: Replace last occurences of old type names with newer
274         names (i.e. replace MPI with gcry_mpi_t).
275         * elgamal.c: Likewise.
276         * primegen.c: Likewise.
277         * pubkey.c: Likewise.
278         * rsa.c: Likewise.
279
280 2003-06-14  Moritz Schulte  <moritz@g10code.com>
281
282         * des.c (des_setkey): Add selftest check.
283         (tripledes_set3keys): Likewise.
284         (do_tripledes_setkey): Remove selftest check.
285         (do_des_setkey): Likewise.
286
287 2003-06-11  Moritz Schulte  <moritz@g10code.com>
288
289         * md.c (_gcry_md_init): New function.
290         * cipher.c (_gcry_cipher_init): New function.
291         * pubkey.c (_gcry_pk_init): New function.
292
293 2003-06-13  Werner Koch  <wk@gnupg.org>
294
295         * md.c (gcry_md_get_algo): Reverted to old API.  This is a
296         convenience function anyway and error checking is not approriate.
297         (gcry_md_is_secure): New.
298         (gcry_md_is_enabled): New.
299
300 2003-06-12  Werner Koch  <wk@gnupg.org>
301
302         * cipher.c (gcry_cipher_open): Make sure HANDLE is set to NULL on
303         error.
304
305 2003-06-11  Werner Koch  <wk@gnupg.org>
306
307         * md.c (gcry_md_open): Make sure H receives either NULL or an
308         valid handle.
309         (gcry_md_copy): Swapped arguments so that it is more in lione with
310         md_open and most other API fucntions like memcpy (destination
311         comes first).  Make sure HANDLE is set to NULL on error.
312         
313         * rijndael.c (do_encrypt): Hack to force correct alignment.  It
314         seems not to be not sufficient, though.  We should rework this
315         fucntions and remove all these ugly casts.  Let the compiler
316         optimize or have an assembler implementation.
317
318 2003-06-09  Moritz Schulte  <moritz@g10code.com>
319
320         * Makefile.am: Removed rules serpent, since that is not commited
321         yet.
322
323 2003-06-08  Moritz Schulte  <moritz@g10code.com>
324
325         * pubkey.c (gcry_pk_encrypt): Improve calculation for size of the
326         format string.
327
328 2003-06-07  Moritz Schulte  <moritz@g10code.com>
329
330         * arcfour.c, bithelp.h, blowfish.c, cast5.c, cipher.c, crc.c,
331         des.c, dsa.c, elgamal.c, md4.c, md5.c, md.c, primegen.c, pubkey.c,
332         rand-internal.h, random.c, random.h, rijndael.c, rmd160.c,
333         rmd160test.c, rmd.h, rndeged.c, rndlinux.c, rndunix.c, rndw32.c,
334         rsa.c, sha1.c, sha256.c, sha512.c, tiger.c, twofish.c: Edited all
335         preprocessor instructions to remove whitespace before the '#'.
336         This is not required by C89, but there are some compilers out
337         there that don't like it.  Replaced any occurence of the now
338         deprecated type names with the new ones.
339         
340 2003-06-04  Moritz Schulte  <moritz@g10code.com>
341
342         * pubkey.c (gcry_pk_encrypt): Construct an arg_list and use
343         gcry_sexp_build_array instead of gcry_sexp_build.
344         (gcry_pk_sign): Likewise.
345         (gcry_pk_genkey): Likewise.
346
347 2003-06-01  Moritz Schulte  <moritz@g10code.com>
348
349         * dsa.c (_gcry_dsa_generate): Do not check wether the algorithm ID
350         does indeed belong to DSA.
351         (_gcry_dsa_sign): Likewise.
352         (_gcry_dsa_verify): Likewise.
353         (_gcry_dsa_get_nbits): Likewise.
354
355         * elgamal.c (_gcry_elg_check_secret_key): Do not check wether the
356         algorithm ID does indeed belong to ElGamal.
357         (_gcry_elg_encrypt): Likewise.
358         (_gcry_elg_decrypt): Likewise.
359         (_gcry_elg_sign): Likewise.
360         (_gcry_elg_verify): Likewise.
361         (_gcry_elg_get_nbits): Likewise.
362         (_gcry_elg_generate): Likewise.
363
364         * rsa.c (_gcry_rsa_generate): Do not check wether the algorithm ID
365         does indeed belong to RSA.
366         (_gcry_rsa_encrypt): Likewise.
367         (_gcry_rsa_decrypt): Likewise.
368         (_gcry_rsa_sign): Likewise.
369         (_gcry_rsa_verify): Likewise.
370         (_gcry_rsa_get_nbits): Likewise.
371
372 2003-05-30  Moritz Schulte  <moritz@g10code.com>
373
374         * md.c (md_get_algo): Return zero in case to algorithm is enabled.
375
376         * md.c (gcry_md_info): Adjusted for new no-errno-API.
377         (md_final): Likewise.
378         (gcry_md_get_algo): Likewise.
379         * pubkey.c (gcry_pk_get_keygrip): Likewise.
380         (gcry_pk_ctl): Likewise.
381         (gcry_pk_algo_info): Likewise.
382         * des.c (selftest): Likewise.
383
384 2003-05-29  Moritz Schulte  <moritz@g10code.com>
385
386         * md.c (md_enable): Do not forget to release module on error.
387         (gcry_md_open): Adjusted for new no-errno-API.
388         (md_open): Likewise.
389         (md_copy): Likewise.
390         (gcry_md_copy): Likewise.
391         (gcry_md_setkey): Likewise.
392         (gcry_md_algo_info): Likewise.
393
394         * cipher.c (gcry_cipher_open): Adjusted for new no-errno-API and
395         also fixed a locking bug.
396         (gcry_cipher_encrypt): Adjusted for new no-errno-API.
397         (gcry_cipher_decrypt): Likewise.
398         (gcry_cipher_ctl): Likewise.
399         (gcry_cipher_info): Likewise.
400         (gcry_cipher_algo_info): Likewise.
401
402 2003-05-28  Moritz Schulte  <moritz@g10code.com>
403
404         * md.c (md_enable): Adjusted for libgpg-error.
405         (gcry_md_enable): Likewise.
406         (gcry_digest_register_default): Likewise.
407         (gcry_digest_register): Likewise.
408         (check_digest_algo): Likewise.
409         (prepare_macpads): Likewise.
410         (gcry_md_setkey): Likewise.
411         (gcry_md_ctl): Likewise.
412         (gcry_md_get): Likewise.
413         (gcry_md_algo_info): Likewise.
414         (gcry_md_info): Likewise.
415         * dsa.c (_gcry_dsa_generate): Likewise.
416         (_gcry_dsa_check_secret_key): Likewise.
417         (_gcry_dsa_sign): Likewie.
418         (_gcry_dsa_verify): Likewise.
419         * twofish.c (do_twofish_setkey): Likewise.
420         (twofish_setkey): Likewise.
421         * cipher.c (gcry_cipher_register): Likewise.
422
423 2003-05-25  Moritz Schulte  <moritz@g10code.com>
424
425         * rijndael.c (do_setkey): Adjusted for libgpg-error.
426         (rijndael_setkey): Likewise.
427         * random.c (gcry_random_add_bytes): Likewise.
428         * elgamal.c (_gcry_elg_generate): Likewise.
429         (_gcry_elg_check_secret_key): Likewise.
430         (_gcry_elg_encrypt): Likewise.
431         (_gcry_elg_decrypt): Likewise.
432         (_gcry_elg_sign): Likewise.
433         (_gcry_elg_verify): Likewise.
434         * rsa.c (_gcry_rsa_generate): Likewise.
435         (_gcry_rsa_check_secret_key): Likewise.
436         (_gcry_rsa_encrypt): Likewise.
437         (_gcry_rsa_decrypt): Likewise.
438         (_gcry_rsa_sign): Likewise.
439         (_gcry_rsa_verify): Likewise.
440         * pubkey.c (dummy_generate, dummy_check_secret_key, dummy_encrypt,
441         dummy_decrypt, dummy_sign, dummy_verify): Likewise.
442         (gcry_pubkey_register): Likewise.
443         (check_pubkey_algo): Likewise.
444         (pubkey_generate): Likewise.
445         (pubkey_check_secret_key): Likewise.
446         (pubkey_encrypt): Likewise.
447         (pubkey_decrypt): Likewise.
448         (pubkey_sign): Likewise.
449         (pubkey_verify): Likewise.
450         (sexp_elements_extract): Likewise.
451         (sexp_to_key): Likewise.
452         (sexp_to_sig): Likewise.
453         (sexp_to_enc): Likewise.
454         (sexp_data_to_mpi): Likewise.
455         (gcry_pk_encrypt): Likewise.
456         (gcry_pk_decrypt): Likewise.
457         (gcry_pk_sign): Likewise.
458         (gcry_pk_verify): Likewise.
459         (gcry_pk_testkey): Likewise.
460         (gcry_pk_genkey): Likewise.
461         (gcry_pk_ctl): Likewise.
462         * cipher.c (dummy_setkey): Likewise.
463         (check_cipher_algo): Likewise.
464         (gcry_cipher_open): Likewise.
465         (cipher_setkey): Likewise.
466         (gcry_cipher_ctl): Likewise.
467         (cipher_encrypt): Likewise.
468         (gcry_cipher_encrypt): Likewise.
469         (cipher_decrypt): Likewise.
470         (gcry_cipher_decrypt): Likewise.
471         (gcry_cipher_info): Likewise.
472         (gcry_cipher_algo_info): Likewise.
473         * cast5.c (cast_setkey): Likewise.
474         (do_cast_setkey): Likewise.
475         * arcfour.c (arcfour_setkey): Likewise.
476         (do_arcfour_setkey): Likewise.
477         * blowfish.c (do_bf_setkey): Likewise.
478         (bf_setkey): Likewise.
479         * des.c (do_des_setkey): Likewise.
480         (do_tripledes_setkey): Likewise.
481
482 2003-05-22  Moritz Schulte  <moritz@g10code.com>
483
484         * tiger.c: Merged code ussing the U64_C macro from GnuPG.
485
486         * sha512.c: Likewise.
487
488 2003-05-17  Moritz Schulte  <moritz@g10code.com>
489
490         * pubkey.c (gcry_pk_genkey): Fix type: acquire a lock, instead of
491         releasing it.
492
493 2003-05-11  Moritz Schulte  <moritz@g10code.com>
494
495         * pubkey.c (gcry_pk_testkey): Call REGISTER_DEFAULT_CIPHERS.
496         (gcry_pk_ctl): Likewise.
497
498 2003-04-27  Moritz Schulte  <moritz@g10code.com>
499
500         * pubkey.c (gcry_pk_genkey): Release sexp after extracted data has
501         been used.
502
503         * md.c (gcry_md_get_algo_dlen): Simplified, simply call
504         md_digest_length to do the job.
505
506         * des.c (do_des_setkey): Check for selftest failure not only
507         during initialization.
508         (do_tripledes_setkey): Include check for selftest failure.
509
510         * pubkey.c (gcry_pubkey_register_default): New macro
511         `pubkey_use_dummy', use it.
512
513         * elgamal.c (elg_names): New variable.
514         (pubkey_spec_elg): Include elg_names.
515
516         * dsa.c (dsa_names): New variable.
517         (pubkey_spec_dsa): Include dsa_names.
518
519         * rsa.c (rsa_names): New variable.
520         (pubkey_spec_rsa): Include rsa_names.
521
522         * pubkey.c (gcry_pubkey_lookup_func_name): Compare name also with
523         the names listed in `sexp_names'.
524
525 2003-04-24  Moritz Schulte  <moritz@g10code.com>
526
527         * pubkey.c (sexp_to_key): New variables: module, pubkey.  Adjusted
528         to new module interface.
529         (sexp_to_key): Changend type of argument `retalgo' from `int *' to
530         `GcryModule **'.  Adjusted all callers.  Removed argument:
531         r_algotblidx.
532         (sexp_to_sig): Changend type of argument `retalgo' from `int *' to
533         `GcryModule **'.  Adjusted all callers.
534         (sexp_to_enc): Likewise.
535
536         (pubkey_get_npkey, pubkey_get_nskey, pubkey_get_nsig,
537         pubkey_get_nenc): Use strlen to find out the number.
538
539         * rsa.c: Adjust pubkey_spec_rsa to new internal interface.
540         * dsa.c: Likewise.
541         * elgamal.c: Likewise.
542
543 2003-04-17  Moritz Schulte  <moritz@g10code.com>
544
545         * pubkey.c (sexp_elements_extract): New function.
546         * pubkey.c (sexp_to_key): Removed variable `idx', added `err', use
547         sexp_elements_extract.
548         (sexp_to_sig): Likewise.
549         (sexp_to_enc): Likewise.
550
551         * pubkey.c: Terminate list correctly.
552         * md.c: Include sha512/sha384 in digest_table.
553
554 2003-04-16  Moritz Schulte  <moritz@g10code.com>
555
556         * Makefile.am: Include support for sha512.c.
557
558         * sha512.c: New file, merged from GnuPG, with few modifications
559         for libgcrypt.
560
561         * rand-internal.h: Removed declarations for constructor functions.
562
563         * md.c (md_copy): Call _gcry_module_use for incrementing the usage
564         counter of the digest modules.
565
566         * rsa.c: Do not include "rsa.h".
567         * dsa.c: Do not include "dsa.h".
568         * elgamal.c: Do not include "elgamal.h".
569         * des.c: Do not include "des.h".
570         * cast5.c: Do not include "cast5.h".
571         * blowfish.c: Do not include "blowfish.h".
572         * arcfour.c: Do not include "arcfour.h".
573
574         * Makefile.am (libcipher_la_DEPENDENCIES): Removed.
575         (libcipher_la_LIBADD): Removed.
576         Use Automake conditionals for conditional compilation.
577
578 2003-04-13  Moritz Schulte  <moritz@g10code.com>
579
580         * cipher.c (gcry_cipher_open): Call REGISTER_DEFAULT_CIPHERS.
581
582         * md.c (gcry_md_list): New member: module.
583         (md_enable): New variable: module, changed use of module and
584         digest.
585         (md_enable): Initialize member: module.
586         (md_close): Call _gcry_module_release.
587
588         * cipher.c (gcry_cipher_open): New variable: module, changed use of
589         module and cipher.
590         (struct gcry_cipher_handle): New member: module.
591         (gcry_cipher_open): Initialize member: module.
592         (gcry_cipher_close): Call _gcry_module_release.
593
594 2003-04-09  Moritz Schulte  <moritz@g10code.com>
595         
596         * cipher.c: Include "ath.h".
597         * md.c: Likewise.
598         * pubkey.c: Likewise.
599
600         * cipher.c (ciphers_registered_lock): New variable.
601         * md.c (digests_registered_lock): New variable.
602         * pubkey.c (pubkeys_registered_lock): New variable.
603
604         * rndlinux.c (gnupgext_version, func_table): Removed definitions.
605         (gnupgext_enum_func): Removed function.
606         (_gcry_rndlinux_constructor): Removed function.
607
608         * rndegd.c (gnupgext_version, func_table): Removed definitions.
609         (gnupgext_enum_func): Removed function.
610         (_gcry_rndegd_constructor): Removed function.
611
612         * rndunix.c (gnupgext_version, func_table): Removed definitions.
613         (gnupgext_enum_func): Removed function.
614         (_gcry_rndunix_constructor): Removed function.
615
616         * rndw32.c (gnupgext_version, func_table): Removed definitions.
617         (gnupgext_enum_func): Removed function.
618         (_gcry_rndw32_constructor): Removed function.
619
620         * rndegd.c (rndegd_connect_socket): Simplify code for creating the
621         egd socket address.
622         (rndegd_connect_socket): Call log_fatal use instead of
623         g10_log_fatal.
624         (egd_gather_random): Renamed to ...
625         (rndegd_gather_random): ... here.
626
627 2003-04-08  Moritz Schulte  <moritz@g10code.com>
628
629         * rndlinux.c: Do not include "dynload.h".
630         * rndunix.c: Likewise.
631         * rndw32.c: Likewise.
632
633         * rndegd.c (rndegd_connect_socket): Factored out from ...
634         (egd_gather_random): here; call it.
635         (egd_socket): New variable.
636         (egd_gather_random): Initialize fd with egd_socket, do not declare
637         fd static.
638         (do_read): Merged few changes from GnuPG. FIXME - not finished?
639         Do not include "dynload.h".
640
641         * rndw32.c (gather_random): Renamed to rndw32_gather_random, do
642         not declare static.
643         (gather_random_fast): Renamed to rndw32_gather_random_fast, do not
644         declare static.
645
646         * rndunix.c (gather_random): Renamed to rndunix_gather_random, do
647         not declare static.
648         * rndegd.c (gather_random): Renamed to rndegd_gather_random, do
649         not declare static.
650         * rndlinux.c (gather_random): Renamed to rndlinux_gather_random,
651         do not declare static.
652
653 2003-04-07  Moritz Schulte  <moritz@g10code.com>
654
655         * Makefile.am (libcipher_la_SOURCES): Removed construct.c.
656         (libcipher_la_SOURCES): Added sha1.c, sha256.c, rmd160.c, md4.c,
657         md5.c, tiger.c and crc.c
658         (EXTRA_PROGRAMS): Removed sha1, sha256, rmd160, md4, md5, tiger
659         and crc.  Removed definitions: EXTRA_md4_SOURCES,
660         EXTRA_md5_SOURCES, EXTRA_rmd160_SOURCES, EXTRA_sha1_SOURCES,
661         EXTRA_sha256_SOURCES, EXTRA_tiger_SOURCES and EXTRA_crc_SOURCES,
662         BUILT_SOURCES, DISTCLEANFILES.
663
664         * pubkey.c: Do not include "elgamal.h", "dsa.h" and "rsa.h".
665
666         * Makefile.am (libcipher_la_SOURCES): Removed rsa.h, elgamal.h,
667         dsa.h, des.h, cast5.h, arcfour.h and blowfish.h.
668
669         * rsa.h: Removed file.
670         * elgamal.h: Removed file.
671         * dsa.h: Removed file.
672         * des.h: Removed file.
673         * cast5.h: Removed file.
674         * arcfour.h: Removed file.
675         * blowfish.h: Removed file.
676
677         * Makefile.am (libcipher_la_SOURCES): Removed dynload.c and
678         dynload.h.
679
680         * rsa.c (pubkey_spec_rsa): New variable.
681         * dsa.c (pubkey_spec_rsa): New variable.
682         * elgamal.c (pubkey_spec_elg): New variable.
683         
684         * rsa.c (_gcry_rsa_get_info): Removed function.
685         * elgamal.c (_gcry_elg_get_info): Removed function.
686         * dsa.c (_gcry_dsa_get_info): Removed function.
687
688         * tiger.c (tiger_get_info): Removed function.
689         (gnupgext_version, func_table): Removed definitions.
690         (gnupgext_enum_func): Removed function.
691         (_gcry_tiger_constructor): Removed function.
692         
693         * sha1.c (sha1_get_info): Removed function.
694         (gnupgext_version, func_table): Removed definitions.
695         (gnupgext_enum_func): Removed function.
696         (_gcry_sha1_constructor): Removed function.
697
698         * sha256.c (sha256_get_info): Removed function.
699         (gnupgext_version, func_table): Removed definitions.
700         (gnupgext_enum_func): Removed function.
701         (_gcry_sha256_constructor): Removed function.
702
703         * rmd160.c (rmd160_get_info): Removed function.
704         (gnupgext_version, func_table): Removed definitions.
705         (gnupgext_enum_func): Removed function.
706         (_gcry_rmd160_constructor): Removed function.
707
708         * md5.c (md5_get_info): Removed function.
709         (gnupgext_version, func_table): Removed definitions.
710         (gnupgext_enum_func): Removed function.
711         (_gcry_md5_constructor): Removed function.
712
713         * md4.c (md4_get_info): Removed function.
714         (gnupgext_version, func_table): Removed definitions.
715         (gnupgext_enum_func): Removed function.
716         (_gcry_md4_constructor): Removed function.
717
718         * crc.c (crc_get_info): Removed function.
719
720         * arcfour.c (do_arcfour_setkey): Changed type of context argument
721         to `void *', added local variable for cast, adjusted callers.
722         (arcfour_setkey): Likewise.
723         (encrypt_stream): Likewise.
724         * cast5.c (cast_setkey): Likewise.
725         (encrypt_block): Likewise.
726         * rijndael.c (rijndael_setkey): Likewise.
727         (rijndael_encrypt): Likewise.
728         (rijndael_decrypt): Likewise.
729         * twofish.c (twofish_setkey): Likewise.
730         (twofish_encrypt): Likewise.
731         (twofish_decrypt): Likewise.
732         * des.c (do_des_setkey): Likewise.
733         (do_des_encrypt): Likewise.
734         (do_des_encrypt): Likewise.
735         (do_tripledes_encrypt): Likewise.
736         (do_tripledes_encrypt): Likewise.
737         * blowfish.c (bf_setkey: Likewise.
738         (encrypt_block): Likewise.
739         (decrypt_block): Likewise.
740         
741         * arcfour.c (encrypt_stream): Likewise.
742
743         * rijndael.c (gnupgext_version, func_table): Removed definitions.
744         (gnupgext_enum_func) Removed function.  
745         
746         * twofish.c (gnupgext_version, func_table): Removed definitions.
747         (gnupgext_enum_func) Removed function.  
748
749         * cast5.c (CIPHER_ALGO_CAST5): Removed.
750
751         * blowfish.c (FNCCAST_SETKEY, FNCCAST_CRYPT): Removed macros.
752         (CIPHER_ALGO_BLOWFISH): Removed symbol.
753         * cast5.c (FNCCAST_SETKEY, FNCCAST_CRYPT): Likewise.
754         * des.c (selftest_failed): Removed.
755         (initialized): New variable.
756         (do_des_setkey): Run selftest, if not yet done.
757         (FNCCAST_SETKEY, FNCCAST_CRYPT): Removed macros.
758
759         * arcfour.c (_gcry_arcfour_get_info): Removed function.
760         * blowfish.c (_gcry_blowfish_get_info): Removed function.
761         * cast5.c (_gcry_cast5_get_info): Removed function.
762         * des.c (_gcry_des_get_info): Removed function.
763         * rijndael.c (_gcry_rijndael_get_info): Removed function.
764         * twofish.c (_gcry_twofish_get_info): Removed function.
765
766         * arcfour.c (cipher_spec_arcfour): New variable.
767         * twofish.c (cipher_spec_twofish, cipher_spec_twofish128): New
768         variables.
769         * rijndael.c (cipher_spec_aes, cipher_spec_aes192,
770         cipher_spec256): New variables.
771         * des.c (cipher_spec_des, cipher_spec_tripledes): New variables.
772         * cast5.c (cipher_spec_cast5): New variable.
773         * blowfish.c (cipher_spec_blowfish): Likewise.
774         
775         * twofish.c: Do not include "dynload.h".
776         * rijndael.c: Likewise.
777         * des.c: Likewise.
778         * cast5.c: Likewise.
779         * blowfish.c: Likewise.
780         * cipher.c: Likewise.
781         * crc.c: Likewise.
782         * md4.c: Likewise.
783         * md5.c: Likewise.
784         * md.c: Likewise.
785         * pubkey.c: Likewise.
786         * rijndael.c: Likewise.
787         * sha1.c: Likewise.
788         * sha256.c: Likewise.
789
790         * arcfour.c: Include "cipher.h".
791         * twofish.c: Likewise.
792         * rijndael.c: Likewise.
793         * des.c: Likewise.
794         * cast5.c: Likewise.
795         * blowfish.c: Likewise.
796
797         * twofish.c (twofish_setkey): Declared argument `key' const.
798         (twofish_encrypt): Declared argument `inbuf' const.
799         (twofish_decrypt): Likewise.
800
801         * rijndael.c (rijndael_setkey): Declared argument `key' const.
802         (rijndael_encrypt): Declared argument `inbuf' const.
803         (rijndael_decrypt): Likewise.
804
805         * des.c (do_des_setkey): Declared argument `key' const.
806         (do_tripledes_setkey): Likewise.
807         (do_des_encrypt): Declared argument `inbuf' const.
808         (do_des_decrypt): Likewise.
809         (do_tripledes_encrypt): Likewise.
810         (do_tripledes_decrypt): Likewise.
811
812         * cast5.c (encrypt_block): Declared argument `inbuf' const.
813         (decrypt_block): Likewise.
814         (cast_setkey): Declared argument `key' const.
815
816         * blowfish.c (do_bf_setkey): Declared argument `key' const.
817         (encrypt_block): Declared argument `inbuf' const.
818         (encrypt_block): Likewise.
819
820         
821
822         * cipher.c: Remove CIPHER_ALGO_DUMMY related code.
823         Removed struct cipher_table_s.
824         Changed definition of cipher_table.
825         Removed definition of disabled_algos.
826         (ciphers_registered, default_ciphers_registered): New variables.
827         (REGISTER_DEFAULT_CIPHERS): New macro.
828         (dummy_setkey): Declared argument `key' const.
829         (dummy_encrypt_block): Declared argument `inbuf' const.
830         (dummy_encrypt_block): Likewise.
831         (dummy_encrypt_stream): Likewise.
832         (dummy_encrypt_stream): Likewise.
833         (dummy_setkey): Use `unsigned char' instead of `byte'.
834         (dummy_encrypt_block): Likewise.
835         (dummy_decrypt_block): Likewise.
836         (dummy_encrypt_stream): Likewise.
837         (dummy_decrypt_stream): Likewise.
838         (gcry_cipher_register_default): New function.
839         (gcry_cipher_lookup_func_id): New function.
840         (gcry_cipher_lookup_func_name): New function.
841         (gcry_cipher_lookup_id): New function.
842         (gcry_cipher_lookup_name): New function.
843         (gcry_cipher_id_new): New function.
844         (gcry_cipher_register): New function.
845         (gcry_cipher_unregister): New function.
846         (setup_cipher_table): Removed function.
847         (load_cipher_modules): Removed function.
848         (gcry_cipher_map_name): Adjusted to use new module management.
849         (cipher_algo_to_string): Likewise.
850         (disable_cipher_algo): Likewise.
851         (check_cipher_algo): Likewise.
852         (cipher_get_keylen): Likewise.
853         (cipher_get_blocksize): Likewise.
854         (gcry_cipher_open): Likewise.
855         (struct gcry_cipher_handle): Replaced members algo, algo_index,
856         blocksize, setkey, encrypt, decrypt, stencrypt, stdecrypt with one
857         member: cipher.
858         (gcry_cipher_open): Adjusted code for new handle structure.
859         (cipher_setkey): Likewise.
860         (cipher_setiv): Likewise.
861         (cipher_reset): Likewise.
862         (do_ecb_encrypt): Likewise.
863         (do_ecb_decrypt): Likewise.
864         (do_cbc_encrypt): Likewise.
865         (do_cbc_decrypt): Likewise.
866         (do_cfb_encrypt): Likewise.
867         (do_cfb_decrypt): Likewise.
868         (do_ctr_encrypt): Likewise.
869         (cipher_encrypt): Likewise.
870         (gcry_cipher_encrypt): Likewise.
871         (cipher_decrypt): Likewise.
872         (gcry_cipher_decrypt): Likewise.
873         (cipher_sync): Likewise.
874         (gcry_cipher_ctl): Likewise.
875
876         * pubkey.c: Removed struct pubkey_table_s.
877         Changed definition of pubkey_table.
878         Removed definition of disabled_algos.
879         (pubkeys_registered, default_pubkeys_registered): New variables.
880         (REGISTER_DEFAULT_PUBKEYS): New macro.
881         (setup_pubkey_table): Removed function.
882         (load_pubkey_modules): Removed function.
883         (gcry_pubkey_register_default): New function.
884         (gcry_pubkey_lookup_func_id): New function.
885         (gcry_pubkey_lookup_func_name): New function.
886         (gcry_pubkey_lookup_id): New function.
887         (gcry_pubkey_lookup_name): New function.
888         (gcry_pubkey_id_new): New function.
889         (gcry_pubkey_register): New function.
890         (gcry_pubkey_unregister): New function.
891         (gcry_pk_map_name): Adjusted to use new module management.
892         (gcry_pk_algo_name): Likewise.
893         (disable_pubkey_algo): Likewise.
894         (check_pubkey_algo): Likewise.
895         (pubkey_get_npkey): Likewise.
896         (pubkey_get_nskey): Likewise.
897         (pubkey_get_nsig): Likewise.
898         (pubkey_get_nenc): Likewise.
899         (pubkey_generate): Likewise.
900         (pubkey_check_secret_key): Likewise.
901         (pubkey_encrypt): Likewise.
902         (pubkey_decrypt): Likewise.
903         (pubkey_sign): Likewise.
904         (pubkey_verify): Likewise.
905         (gcry_pk_get_nbits): Likewise.
906         (gcry_pk_algo_info): Likewise.
907
908         * md.c: Removed struct md_digest_list_s.
909         (digest_list): Changed definition.
910         (digests_registered, default_digests_registered): New variables.
911         (REGISTER_DEFAULT_DIGESTS): New macro.
912         (new_list_item): Removed function.
913         (setup_md_table): Removed function.
914         (load_digest_module): Removed function.
915         (gcry_digest_register_default): New function.
916         (gcry_digest_lookup_func_id): New function.
917         (gcry_digest_lookup_func_name): New function.
918         (gcry_digest_lookup_id): New function.
919         (gcry_digest_lookup_name): New function.
920         (gcry_digest_id_new): New function.
921         (gcry_digest_register): New function.
922         (gcry_digest_unregister): New function.
923         (GcryDigestEntry): New type.
924         (struct gcry_md_context): Adjusted type of `list'.
925         (gcry_md_map_name): Adjusted to use new module management.
926         (digest_algo_to_string): Likewise.
927         (check_digest_algo): Likewise.
928         (md_enable): Likewise.
929         (md_digest_length): Likewise.
930         (md_asn_oid): Likewise.
931
932 2003-04-07  Moritz Schulte  <moritz@g10code.com>
933
934         * pubkey.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA,
935         PUBKEY_ALGO_RSA with GCRY_PK_RSA and PUBKEY_ALGO_ELGAMAL with
936         GCRY_PK_ELG.
937
938         * dsa.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA.
939
940 2003-04-01  Moritz Schulte  <moritz@g10code.com>
941
942         * des.c: Removed checks for GCRY_CIPHER_3DES and GCRY_CIPHER_DES.
943
944 2003-03-31  Moritz Schulte  <moritz@g10code.com>
945
946         * tiger.c (tiger_get_info): Do not declare static.
947         * sha256.c (sha256_get_info): Likewise.
948         * sha1.c (sha1_get_info): Likewise.
949         * rmd160.c (rmd160_get_info): Likewise.
950         * md5.c (md5_get_info): Likewise.
951         * md4.c (md4_get_info): Likewise.
952         * crc.c (crc_get_info): Likewise.
953
954         * md.c (load_digest_module): Call setup_md_table during
955         initialization.
956         (new_list_item): Link new element into digest_list.
957
958         * cipher.c (do_ctr_decrypt): Made do_ctr_encrypt act as a wrapper
959         for do_ctr_encrypt, since these functions are identical.
960
961 2003-03-30  Simon Josefsson  <jas@extundo.com>
962
963         * cipher.c (struct gcry_cipher_handle): Add counter field.
964         (gcry_cipher_open): Add CTR.
965         (cipher_reset): Clear counter field.
966         (do_ctr_encrypt, do_ctr_decrypt): New functions.
967         (cipher_encrypt, cipher_decrypt): Call CTR functions.
968         (gcry_cipher_ctl): Add SET_CTR to set counter.
969
970 2003-03-30  Moritz Schulte  <moritz@g10code.com>
971
972         * rsa.c (_gcry_rsa_blind): New function.
973         (_gcry_rsa_unblind): New function.
974         (_gcry_rsa_decrypt): Use _gcry_rsa_blind and _gcry_rsa_decrypt.
975
976 2003-03-26  Moritz Schulte  <moritz@g10code.com>
977
978         * dynload.c (_gcry_enum_gnupgext_pubkeys): Adjust `encrypt' and
979         `decrypt' function arguments.
980         (_gcry_enum_gnupgext_pubkeys): Likewise.
981         * dynload.h: Likewise.
982         
983         * pubkey.c (dummy_decrypt): Add argument: int flags.
984         (dummy_encrypt): Likewise.
985
986         * elgamal.c (_gcry_elg_encrypt): Add argument: int flags.
987         (_gcry_elg_decrypt): Likewise.
988
989         * rsa.c (_gcry_rsa_encrypt): Add argument: int flags.
990         (_gcry_rsa_decrypt): Likewise.
991
992         * pubkey.c: Add `flags' argument to members `encrypt' and
993         `decrypt' of struct `pubkey_table_s'.
994
995         * rsa.h: Add `flags' argument to function declarations.
996         * elgamal.h: Likewise.
997
998         * pubkey.c (sexp_data_to_mpi): New variable: int parsed_flags.
999         (sexp_data_to_mpi): Set `parsed_flags'.
1000         (sexp_data_to_mpi): New argument: int *flags.
1001         (gcry_pk_encrypt): New variable: int flags.
1002         (gcry_pk_encrypt): Pass `flags' to pubkey_encrypt.
1003         (pubkey_encrypt): New variable: int flags.
1004         (pubkey_encrypt): Pass `flags' to pubkey encrypt function.
1005         (pubkey_decrypt): Likewise.
1006         (pubkey_decrypt): Pass `flags' to pubkey encrypt function.
1007         (gcry_pk_encrypt): Include `flags' s-exp in return list.
1008         (sexp_to_enc): New argument: int *flags.
1009         (gcry_pk_decrypt): New variable: int flags.
1010         (gcry_pk_decrypt): Pass `flags' to pubkey_decrypt.
1011         (sexp_to_enc): New variable: int parsed_flags.
1012         (sexp_to_enc): Set `parsed_flags'.
1013
1014 2003-03-22  Simon Josefsson  <jas@extundo.com>
1015
1016         * cipher.c (gcry_cipher_open, do_cbc_encrypt)
1017         (gcry_cipher_encrypt): Support GCRY_CIPHER_CBC_MAC.
1018         (gcry_cipher_ctl): Support GCRYCTL_SET_CBC_MAC.
1019
1020 2003-03-19  Werner Koch  <wk@gnupg.org>
1021
1022         * primegen.c (gen_prime): New args EXTRA_CHECK and EXTRA_CHECK_ARG
1023         to allow for a user callback.  Changed all callers.
1024         (_gcry_generate_secret_prime)
1025         (_gcry_generate_public_prime): Ditto, pass them to gen_prime.
1026         * rsa.c (check_exponent): New.
1027         (generate): Use a callback to ensure that a given exponent is
1028         actually generated.
1029
1030 2003-03-12  Moritz Schulte  <moritz@g10code.com>
1031
1032         * primegen.c: Initialize `no_of_small_prime_numbers' statically.
1033         (gen_prime): Remove calculation of `no_of_small_prime_numbers'.
1034
1035 2003-03-03  Moritz Schulte  <moritz@g10code.com>
1036
1037         * md.c (gcry_md_ctl): Rewritten to use same style like the other
1038         functions dispatchers.
1039
1040 2003-03-02  Moritz Schulte  <moritz@g10code.com>
1041
1042         * cipher.c (struct gcry_cipher_handle): New member: algo_index.
1043         (gcry_cipher_open): Allocate memory for two cipher contexts.
1044         Initialize algo_index.
1045         (cipher_setkey): Duplicate context into reserved memory.
1046         (cipher_reset): New function, which resets the context and clear
1047         the IV.
1048         (gcry_cipher_ctl): Call cipher_reset.
1049
1050 2003-02-23  Moritz Schulte  <moritz@g10code.com>
1051
1052         * cipher.c: Remove (bogus) `digitp' macro definition.
1053         * md.c: Likewise.
1054
1055         * blowfish.c (burn_stack): Removed.
1056         * arcfour.c (burn_stack): Likewise.
1057         * cast5.c (burn_stack): Likewise.
1058         * des.c (burn_stack): Likewise.
1059         * md4.c (burn_stack): Likewise.
1060         * md5.c (burn_stack): Likewise.
1061         * random.c (burn_stack): Likewise.
1062         * rijndael.c (burn_stack): Likewise.
1063         * rmd160.c (burn_stack): Likewise.
1064         * sha1.c (burn_stack): Likewise.
1065         * sha256.c (burn_stack): Likewise.
1066         * tiger.c (burn_stack): Likewise.
1067         * twofish.c (burn_stack): Likewise.
1068
1069         * blowfish.c: Changed all occurences of burn_stack to
1070         _gcry_burn_stack.
1071         * arcfour.c: Likewise.
1072         * cast5.c: Likewise.
1073         * des.c: Likewise.
1074         * md4.c: Likewise.
1075         * md5.c: Likewise.
1076         * random.c: Likewise.
1077         * rijndael.c: Likewise.
1078         * rmd160.c: Likewise.
1079         * sha1.c: Likewise.
1080         * sha256.c: Likewise.
1081         * tiger.c: Likewise.
1082         * twofish.c: Likewise.
1083
1084         * arcfour.c (_gcry_arcfour_get_info): Use GCRY_CIPHER_ARCFOUR
1085         instead of hard-coded value `301'.
1086
1087 2003-01-24  Werner Koch  <wk@gnupg.org>
1088
1089         * random.c (_gcry_register_random_progress): New.
1090         (_gcry_random_progress): New.
1091
1092         * rndlinux.c (gather_random): Call the random progress function. 
1093
1094 2003-01-23  Werner Koch  <wk@gnupg.org>
1095
1096         * rsa.c (generate): New arg USE_E to request a specific public
1097         exponent.
1098         (_gcry_rsa_generate): Ditto.
1099         * elgamal.c (_gcry_elg_generate): Must add an dummy argument
1100         instead of USE_E.
1101         * dsa.c (_gcry_dsa_generate): Ditto.
1102         * pubkey.c (dummy_generate): Ditto.
1103         (pubkey_generate): Add USE_E arg and pass it down.
1104         (gcry_pk_genkey): Detect "rsa-use-e" parameter and pass it to generate.
1105
1106         * pubkey.c (sexp_to_enc): New arg RET_MODERN.
1107         (gcry_pk_decrypt): Make use of it to return a real S-expression.
1108         Return better error codes.
1109         (gcry_pk_verify): Return better error codes.
1110
1111 2003-01-21  Werner Koch  <wk@gnupg.org>
1112
1113         * random.c (gcry_random_add_bytes): Add QUALITY argument, let
1114         function return an error code and disable its core for now.
1115
1116 2003-01-21  Timo Schulz  <twoaday@freakmail.de>
1117
1118         * random.c (gcry_random_add_bytes): New. Function to add external
1119         random to the pool.
1120         
1121 2003-01-20  Simon Josefsson  <jas@extundo.com>
1122
1123         * crc.c: New.
1124         * Makefile.am (EXTRA_PROGRAMS, EXTRA_crc_SOURCES): Add crc.c.
1125         * md.c (gcry_md_get_algo_dlen): Add values for CRC.
1126
1127 2003-01-20  Werner Koch  <wk@gnupg.org>
1128
1129         * sha256.c: New.
1130         * bithelp.h (ror): New.
1131         * Makfile.am: Add sha256.c.
1132         * md.c (oid_table): Add values for SHA256 et al.
1133         (gcry_md_get_algo_dlen): Likewise
1134
1135 2003-01-20  Werner Koch  <wk@gnupg.org>
1136
1137         * pubkey.c (gcry_pk_get_keygrip): Implemented keygrips for DSA
1138         and ElGamal.
1139
1140 2003-01-17  Werner Koch  <wk@gnupg.org>
1141
1142         * cipher.c (gcry_cipher_encrypt): Reworked so that the output will
1143         never contain the plaintext even if the caller did not checked the
1144         return value.
1145
1146         * md.c (gcry_md_get_algo): Changed error code to GCRYERR_GENERAL
1147         because we don't have an invalid md algo but no algorithm enabled.
1148
1149         * pubkey.c (gcry_pk_genkey): Changed error code for bounds check
1150         of table parameters to GCRYERR_INTERNAL.
1151
1152         * md.c (gcry_md_open): Partly reverted Timo's change from
1153         2002-10-10 by removing the check for the algorithm.  An algorithm
1154         of 0 is allowed and anyway we should not double check it or check
1155         it using a different function.  Also fixed the flags check.
1156
1157         * pubkey.c (gcry_pk_encrypt): Make sure that R_CIPH points to NULL
1158         on error.
1159         (gcry_pk_decrypt): Ditto for R_PLAIN.
1160         (gcry_pk_sign): Ditto for R_SIG.
1161         (gcry_pk_genkey): Ditto for R_KEY.
1162
1163 2003-01-16  Werner Koch  <wk@gnupg.org>
1164
1165         * md.c (gcry_md_write): Changed 2nd argument type to void*.
1166         (gcry_md_hash_buffer): Changed type of boths buffers to void*.
1167         (gcry_md_setkey): Changed 2nd argument type to void*.
1168
1169 2003-01-15  Werner Koch  <wk@gnupg.org>
1170
1171         * pubkey.c (sexp_data_to_mpi): New.  This handles pkcs1 padding.
1172         (gcry_pk_sign, gcry_pk_verify): Use it here.
1173         (gcry_pk_encrypt): And here.
1174         (pubkey_verify): Add debug code.
1175         (sexp_to_enc): Handle flags in the input and return the pkcs1 flag
1176         in a new parameter.
1177         (gcry_pk_decrypt): Prepare for future pkcs1 handling.
1178
1179 2002-12-19  Werner Koch  <wk@gnupg.org>
1180
1181         * random.c (_gcry_random_initialize): New.
1182
1183 2002-12-16  Werner Koch  <wk@gnupg.org>
1184
1185         * cipher.c: Added a Tetetrust specific OID for 3DES.
1186
1187 2002-12-12  Werner Koch  <wk@gnupg.org>
1188
1189         * md.c: Added another oddball OIW OID (sha-1WithRSAEncryption).
1190
1191 2002-11-23  Werner Koch  <wk@gnupg.org>
1192
1193         * md.c (load_digest_module): Enlarged checked_algos bitmap.
1194         * md4.c (func_table):  Fixed entry for md4. 
1195         Both by Simon Josephson.
1196         (transform): Copy data to get the alignment straight. Tested only
1197         on i386.
1198
1199 2002-11-10  Simon Josefsson  <jas@extundo.com>
1200
1201         * cipher.c (gcry_cipher_open): Don't reject CTS flag.
1202         (do_cbc_encrypt, do_cbc_decrypt, cipher_encrypt) 
1203         (gcry_cipher_encrypt, cipher_decrypt)
1204         (gcry_cipher_decrypt): Support CTS flag.
1205         (gcry_cipher_ctl): Toggle CTS flag.
1206
1207 2002-11-10  Werner Koch  <wk@gnupg.org>
1208
1209         * md4.c: New. By Simon Josefsson.
1210         * Makefile.am (EXTRA_PROGRAMS): Add md4.c. 
1211         * md.c (oid_table,gcry_md_get_algo_dlen): MD4 support. 
1212
1213 2002-10-14  Werner Koch  <wk@gnupg.org>
1214
1215         * arcfour.c (do_encrypt_stream): Don't use increment op when
1216         assigning to the same variable.
1217
1218 2002-10-10  Timo Schulz  <ts@winpt.org>
1219
1220         * pubkey.c (gcry_pk_genkey): Check boundaries.
1221         
1222         * md.c (gcry_md_open): Check that algo is available and only
1223         valid flag values are used.
1224         (gcry_md_get_algo): Add error handling.
1225         
1226 2002-09-26  Werner Koch  <wk@gnupg.org>
1227
1228         * md.c: Include an OID for TIGER.
1229         * tiger.c (tiger_get_info): Use a regular OID.
1230
1231 2002-09-17  Werner Koch  <wk@gnupg.org>
1232
1233         * random.c: Replaced mutex.h by the new ath.h.  Changed all calls.
1234
1235 2002-09-16  Werner Koch  <wk@gnupg.org>
1236
1237         * arcfour.c (do_encrypt_stream): Use register modifier and modulo.
1238         According to Nikos Mavroyanopoulos this increases perfromace on
1239         i386 system noticable.  And I always tought gcc is clever enough.
1240         * md5.c (transform): Use register modifier.
1241         * rmd160.c (transform): Ditto.
1242         * sha1.c (transform): Ditto.  We hope that there are 6 free registers.
1243         * random.c (gcry_randomize): Rewrote to avoid malloc calls.
1244
1245         * rndlinux.c (gather_random): Replaced remaining fprintfs by log_*.
1246         * arcfour.c (do_arcfour_setkey): Ditto.
1247         * twofish.c (do_twofish_setkey): Ditto.
1248         * rndegd.c (gather_random): Ditto.
1249         * rijndael.c (do_setkey): Ditto.
1250         * random.c (_gcry_random_dump_stats): Ditto. 
1251         * primegen.c (_gcry_generate_elg_prime): Ditto.
1252         * des.c (_gcry_des_get_info): Ditto.
1253         * cast5.c (do_cast_setkey): Ditto.
1254         * blowfish.c (do_bf_setkey): Ditto.
1255
1256 2002-08-26  Werner Koch  <wk@gnupg.org>
1257
1258         * des.c (weak_keys): Fixed one entry in the table and compared
1259         all entries against the literature.
1260         (selftest): Checksum the weak key table.
1261
1262 2002-08-21  Werner Koch  <wk@gnupg.org>
1263
1264         * pubkey.c: Enable keygrip calculation for "openpgp-rsa".
1265
1266 2002-08-17  Werner Koch  <wk@gnupg.org>
1267
1268         * cipher.c (setup_cipher_table): Don't overwrite the DES entry
1269         with the entry for DUMMY.
1270
1271 2002-08-14  Werner Koch  <wk@gnupg.org>
1272
1273         * des.c (do_des_setkey,do_des_encrypt, do_des_decrypt): New.
1274         (_gcry_des_get_info): Support plain old DES.
1275         * cipher.c (setup_cipher_table): Put DES into the table.
1276
1277 2002-07-25  Werner Koch  <wk@gnupg.org>
1278
1279         * rndunix.c (_gcry_rndunix_constructor): Prefixed with _gcry_.
1280         Noted by Stephan Austermuehle.
1281
1282 2002-07-08  Timo Schulz  <ts@winpt.org>
1283
1284         * rndw32.c: Replaced the m_ memory functions with the real 
1285         gcry_ functions. Renamed all g10_ prefixed functions to log_.
1286         
1287 2002-06-12  Werner Koch  <wk@gnupg.org>
1288
1289         * rsa.c (generate): Use e = 65537 for now.
1290
1291 2002-06-11  Werner Koch  <wk@gnupg.org>
1292
1293         * pubkey.c (gcry_pk_get_keygrip): Allow a "protected-private-key".
1294
1295 2002-06-05  Timo Schulz  <ts@winpt.org>
1296
1297         * cipher.c (gcry_cipher_encrypt, gcry_cipher_decrypt):
1298         Check that the input size is a multiple of the blocksize.
1299         
1300 2002-05-23  Werner Koch  <wk@gnupg.org>
1301
1302         * md.c (oid_table): Add an rsadsi OID for MD5.
1303
1304 2002-05-21  Werner Koch  <wk@gnupg.org>
1305
1306         * primegen.c, elgamal.c, dsa.c (progress): Do not print anything
1307         by default.  Pass an extra identifying string to the callback and
1308         reserved 2 argumenst for current and total counters.  Changed the
1309         register function prototype.
1310
1311 2002-05-17  Werner Koch  <wk@gnupg.org>
1312
1313         * rndegd.c (rndegd_constructor): Fixed name of register function
1314         and prefixed the function name with _gcry_.
1315         * rndw32.c (rndw32_constructor): Ditto.
1316         * tiger.c (tiger_constructor): Ditto.
1317
1318         * Makefile.am: Removed all dynamic loading stuff.
1319         * dynload.c: Ditto. Now only used for the constructor system.
1320
1321 2002-05-15  Werner Koch  <wk@gnupg.org>
1322
1323         * random.c (gcry_random_bytes,gcry_random_bytes_secure)
1324         (gcry_randomize): Make sure we are initialized.
1325
1326 2002-05-14  Werner Koch  <wk@gnupg.org>
1327
1328         Changed license of most files to the LGPL.
1329
1330 2002-05-02  Werner Koch  <wk@gnupg.org>
1331
1332         * random.c (_gcry_fast_random_poll): Initialize the module so the
1333         mutex can be used.
1334
1335         * primegen.c (small_prime_numbers): Moved table from smallprime.c
1336         * smallprime.c: Fiel removed.
1337
1338         * des.c (leftkey_swap, rightkey_swap, working_memcmp): Made static.
1339
1340         * cipher.c (gcry_cipher_map_name): Map "RIJNDAEL" to "AES".
1341         * rijndael.c (rijndael_get_info): We do only support a 128 bit
1342         blocksize so it makes sense to change the algorithm strings to
1343         AES.
1344
1345         * tiger.c (tiger_final): Removed superfluous token pasting operators.
1346         * md5.c (md5_final): Ditto.
1347
1348 2002-04-30  Werner Koch  <wk@gnupg.org>
1349
1350         * cipher.c: Fixed list of copyright years.
1351
1352 2002-03-18  Werner Koch  <wk@gnupg.org>
1353
1354         * random.c (initialize): Initialize the new pool lock mutex.
1355         (_gcry_fast_random_poll): Add locking and moved main
1356         code out to...
1357         (do_fast_random_poll): new function.
1358         (read_pool): Use the new function here.
1359         (get_random_bytes): Add locking.
1360         (_gcry_update_random_seed_file): Ditto.
1361
1362 2002-03-11  Werner Koch  <wk@gnupg.org>
1363
1364         * md.c: Add rsaSignatureWithripemd160 to OID table.
1365
1366 2002-02-20  Werner Koch  <wk@gnupg.org>
1367
1368         * sha1.c: Removed a left over comment note.  The code has been
1369         rewritten from scratch in 1998.  Thanks to Niels Möller for
1370         reporting this misleading comment.
1371
1372 2002-02-18  Werner Koch  <wk@gnupg.org>
1373
1374         * rndunix.c (rndunix_constructor): Use the the new prefixed
1375         function name.  Reported by Jordi Mallach.
1376
1377 2002-02-10  Werner Koch  <wk@gnupg.org>
1378
1379         * random.c (mix_pool): Carry an extra failsafe_digest buffer
1380         around to make the function more robust.
1381
1382 2002-02-08  Werner Koch  <wk@gnupg.org>
1383
1384         * random.c (add_randomness): Xor new data into the pool and not
1385         just copy it.  This avoids any choosen input attacks which are not
1386         serious in our setting because an outsider won't be able to mix
1387         data in and even then we keep going with a PRNG.  Thanks to Stefan
1388         Keller for pointing this out.
1389
1390 2002-01-04  Werner Koch  <wk@gnupg.org>
1391
1392         * pubkey.c (gcry_pk_genkey): Do not release skey - it is static.
1393
1394         * primegen.c (gen_prime): Of course we should use set_bit
1395         and not set_highbit to set the second high bit.
1396
1397 2001-12-18  Werner Koch  <wk@gnupg.org>
1398
1399         * rsa.c (generate): Loop until we find the exact modulus size.
1400         Changed the exponent to 41.
1401         (rsa_get_info): s/usage/r_usage/ to avoid shadow warnings.
1402         * primegen.c (gen_prime): Set 2 high order bits for secret primes.
1403
1404         * Makefile.am (DISTCLEANFILES): Include construct.c.
1405
1406 2001-12-17  Werner Koch  <wk@gnupg.org>
1407
1408         * pubkey.c (gcry_pk_get_keygrip): New - experimental.
1409
1410 2001-12-11  Werner Koch  <wk@gnupg.org>
1411
1412         * cipher.c: Added OIDs for AES.
1413         (gcry_cipher_mode_from_oid): New.
1414         (gcry_cipher_map_name): Moved OID search code to ..
1415         (search_oid): .. new function.
1416
1417 2001-12-10  Werner Koch  <wk@gnupg.org>
1418
1419         * pubkey.c (gcry_pk_encrypt): Find the signature algorithm by name
1420         and not by number.
1421         
1422         * pubkey.c (gcry_pk_encrypt,gcry_pk_decrypt,gcry_pk_sign)
1423         (gcry_pk_verify,gcry_pk_testkey, gcry_pk_genkey)
1424         (gcry_pk_get_nbits): Release the arrays.  Noted by Nikos
1425         Mavroyanopoulos.
1426
1427 2001-12-06  Werner Koch  <wk@gnupg.org>
1428
1429         * cipher.c (gcry_cipher_map_name): Look also for OIDs prefixed
1430         with "oid."  or "OID.".
1431
1432 2001-12-05  Werner Koch  <wk@gnupg.org>
1433
1434         * pubkey.c (algo_info_table): Fixed entry for openpgp-rsa. 
1435
1436 2001-11-24  Werner Koch  <wk@gnupg.org>
1437
1438         * pubkey.c: Added the rsaEncryption OID to the tables.
1439         (sexp_to_key): Add an arg to return the index of the algorithm,
1440         changed all callers.
1441         (gcry_pk_sign): Find the signature algorithm by name and not by
1442         number.
1443         (gcry_pk_get_nbits): Fixed so that we can now really pass a secret
1444         key to get the result.
1445         
1446         * md.c (gcry_md_map_name): Look also for OIDs prefixed with "oid."
1447         or "OID." so that an OID string can be used as an S-Exp token.
1448
1449 2001-11-20  Werner Koch  <wk@gnupg.org>
1450
1451         * md.c (gcry_md_map_name): Lookup by OID if the the name begins
1452         with a digit.
1453         (oid_table): New.
1454         
1455 2001-11-16  Werner Koch  <wk@gnupg.org>
1456
1457         * md.c (gcry_md_info): New operator GCRYCTL_IS_ALGO_ENABLED.
1458
1459 2001-11-07  Werner Koch  <wk@gnupg.org>
1460
1461         * md.c (gcry_md_hash_buffer): Close the handle which was left open
1462         for algorithms other than rmd160.
1463
1464 2001-08-08  Werner Koch  <wk@gnupg.org>
1465
1466         * rndw32.c (gather_random): Use toolhelp in addition to the NT
1467         gatherer for Windows2000.  Suggested by Sami Tolvanen.
1468
1469         * random.c (read_pool): Fixed length check, this used to be one
1470         byte to strict.  Made an assert out of it because the caller has
1471         already made sure that only poolsize bytes are requested.
1472         Reported by Marcus Brinkmann.
1473
1474 2001-08-03  Werner Koch  <wk@gnupg.org>
1475
1476         * cipher.c (cipher_encrypt, cipher_decrypt): Prepare to return
1477         errors. We have to change the interface to all ciphers to make
1478         this really work but we should do so to prepare for hardware
1479         encryption modules.
1480         (gcry_cipher_encrypt, gcry_cipher_decrypt): Return the error and
1481         set lasterr. 
1482         (gcry_cipher_ctl): Make sure that errors from setkey are returned.
1483
1484 2001-08-02  Werner Koch  <wk@gnupg.org>
1485
1486         * rndlinux.c (gather_random): casted a size_t arg to int so that
1487         the format string is correct.  Casting is okay here and avoids
1488         translation changes. 
1489
1490         * random.c (fast_random_poll): Do not check the return code of
1491         getrusage.
1492
1493         * rndunix.c: Add a signal.h header to avoid warnings on Solaris 7
1494         and 8.
1495
1496         * tiger.c (print_abc,print_data): Removed.
1497
1498         * rijndael.c, des.c, blowfish.c, twofish.c, cast5.c, arcfour.c
1499         (burn_stack): New.  Add wrappers for most functions to be able to
1500         call burn_stack after the function invocation. This methods seems
1501         to be the most portable way to zeroise the stack used. It does
1502         only work on stack frame based machines but it is highly portable
1503         and has no side effects.  Just setting the automatic variables at
1504         the end of a function to zero does not work well because the
1505         compiler will optimize them away - marking them as volatile would
1506         be bad for performance.
1507         * md5.c, sha1.c, rmd160.c, tiger.c (burn_stack): Likewise.
1508         * random.c (burn_stack): New.
1509         (mix_pool): Use it here to burn the stack of the mixblock function.
1510
1511         * primegen.c (_gcry_generate_elg_prime): Freed q at 3 places.
1512         Thanks to Tommi Komulainen.
1513
1514         * arcfour.c (arcfour_setkey): Check the minimim keylength against
1515         bytes and not bits.
1516         (selftest): Must reset the key before decryption. 
1517
1518 2001-05-31  Werner Koch  <wk@gnupg.org>
1519
1520         * sha1.c (sha1_init): Made static.
1521
1522         Changed all g10_ prefixed function names as well as some mpi_
1523         function names to cope with the introduced naming changes.
1524         
1525         * md.c (prepare_macpads): Made key const.
1526
1527 2001-05-28  Werner Koch  <wk@gnupg.org>
1528
1529         * rndegd.c (gather_random): Removed the use of tty_printf.
1530
1531 2001-03-29  Werner Koch  <wk@gnupg.org>
1532
1533         * md5.c (md5_final): Fixed calculation of hashed length.  Thanks
1534         to disastry@saiknes.lv for pointing out that it was horrible wrong
1535         for more than 512MB of input.
1536         * sha1.c (sha1_final): Ditto.
1537         * rmd160.c (rmd160_final): Ditto.
1538         * tiger.c (tiger_final): Ditto.
1539
1540         * blowfish.c (encrypt,do_encrypt): Changed name to do_encrypt to
1541         avoid name clashes with an encrypt function in stdlib.h of
1542         Dynix/PIX.  Thanks to Gene Carter.
1543         * elgamal.c (encrypt,do_encrypt): Ditto.
1544
1545         * twofish.c (gnupgext_enum_func): Use only when when compiled as a
1546         module.
1547         * rijndael.c (gnupgext_enum_func): Ditto.
1548
1549         * tiger.c (tiger_get_info): Return "TIGER192" and not just
1550         "TIGER".  By Edwin Woudt.
1551         
1552         * random.c: Always include time.h - standard requirement.  Thanks
1553         to James Troup.
1554
1555         * rndw32.c: Fixes to the macros.
1556
1557 2001-01-11  Werner Koch  <wk@gnupg.org>
1558
1559         * cipher.c (cipher_encrypt,gcry_cipher_encrypt): Use blocksize and
1560         not 8.
1561
1562 2000-12-19  Werner Koch  <wk@gnupg.org>
1563
1564         Major change:
1565         Removed all GnuPG stuff and renamed this piece of software
1566         to gcrypt. 
1567
1568 2000-11-14  Werner Koch  <wk@gnupg.org>
1569
1570         * dsa.c (test_keys): Replaced mpi_alloc by gcry_mpi_new and
1571         mpi_free by gcry_mpi_release.
1572         * elgamal.c (test_keys,generate): Ditto, also for mpi_alloc_secure.
1573         * rsa.c (test_keys,generate,rsa_verify): Ditto.
1574         * primegen.c (generate_elg_prime): Ditto.
1575         (gen_prime): Ditto and removed nlimbs.
1576
1577         * rsa.c (generate): Allocate 2 more vars in secure memory.
1578
1579         * Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency
1580         problems.
1581
1582 2000-10-09  Werner Koch  <wk@gnupg.org>
1583
1584         * arcfour.c, arcfour.h: New.
1585         * cipher.c (cipher_encrypt, cipher_decrypt): Add stream mode.
1586         (setup_cipher_table): Add Arcfour.
1587         (gcry_cipher_open): Kludge to allow stream mode.
1588
1589 Wed Oct  4 13:16:18 CEST 2000  Werner Koch  <wk@openit.de>
1590
1591         * sha1.c (transform): Use rol() macro.  Actually this is not needed
1592         for a newer gcc but there are still aoter compilers.
1593
1594         * rsa.c (test_keys): Use new random function. 
1595
1596         * md.c (gcry_md_setkey): New function to overcome problems with
1597         const conflics.  
1598         (gcry_md_ctl): Pass set key to the new functions.
1599
1600         * rijndael.c: New.
1601         * cipher.c: Add Rijndael support.
1602
1603 Mon Sep 18 16:35:45 CEST 2000  Werner Koch  <wk@openit.de>
1604
1605         * rndlinux.c (open_device): Loose random device checking.
1606         By Nils Ellmenreich.
1607
1608         * random.c (fast_random_poll): Check ENOSYS for getrusage.
1609         * rndunix.c:  Add 2 sources for QNX. By Sam Roberts.
1610
1611         * pubkey.c (gcry_pk_algo_info): Add GCRYCTL_GET_ALGO_USAGE.
1612
1613         * rsa.c: Changed the comment about the patent.
1614         (secret): Speed up by using the CRT.  For a 2k keys this
1615         is about 3 times faster.
1616         (stronger_key_check): New but unused code to check the secret key.
1617         * Makefile.am: Included rsa.[ch].
1618         * pubkey.c: Enabled RSA support.
1619         (pubkey_get_npkey): Removed RSA workaround.
1620
1621 Mon Jul 31 10:04:47 CEST 2000  Werner Koch  <wk@openit.de>
1622
1623   * pubkey.c: Replaced all gcry_sexp_{car,cdr}_{data,mpi} by the new
1624   gcry_sexp_nth_{data,mpi} functions.
1625
1626 Tue Jul 25 17:44:15 CEST 2000  Werner Koch  <wk@openit.de>
1627
1628   * pubkey.c (exp_to_key,sexp_to_sig,sexp_to_enc,gcry_pk_encrypt,
1629     gcry_pk_decrypt,gcry_pk_sign,gcry_pk_genkey): Changed to work with
1630     the new S-Exp interface.
1631
1632 Mon Jul 17 16:35:47 CEST 2000  Werner Koch  <wk@>
1633
1634   * random.c (gather_faked): Replaced make_timestamp by time(2) again.
1635
1636 Fri Jul 14 19:38:23 CEST 2000  Werner Koch  <wk@>
1637
1638   * md.c (gcry_md_ctl): Support GCRYCTL_{START,STOP}_DUMP.
1639
1640   * Makefile.am: Never compile mingw32 as module.
1641
1642   * Makefile.am: Tweaked module build and removed libtool
1643
1644   * Makefile.am:  Replaced -O1 by -O. Suggested by Alec Habig.
1645
1646   * elgamal.c (sign): Removed inactive code.
1647
1648   * rsa.c, rsa.h: New based on the old module version (only in CVS for now).
1649   * pubkey.c (setup_pubkey_table): Added commented support for RSA.
1650
1651   * rndunix.c (waitpid): New. For UTS 2.1.  All by Dave Dykstra.
1652   (my_popen): Do the FD_CLOEXEC only if it is available
1653   (start_gatherer): Cope with missing _SC_OPEN_MAX
1654
1655   * rndunix.c: Add some more headers for QNX. By Sam Roberts.
1656
1657   * rndegd.c (gather_random): Shortcut level 0.
1658   * rndunix.c (gather_random): Ditto.
1659   * rndw32.c (gather_random): Ditto.
1660
1661   * rndw32.c: Replaced with code from Cryptlib and commented the old stuff.
1662   * rndw32.c: Add some debuging code enabled by an environment variable.
1663
1664   * random.c (read_seed_file): Binary open for DOSish system
1665   (update_random_seed_file): Ditto.
1666   * random.c [MINGW32]: Include process.h for getpid.
1667   * random.c (fast_random_poll): Add clock_gettime() as fallback for
1668   system which support this POSIX.4 fucntion. By Sam Roberts.
1669
1670   * random.c (read_seed_file): Removed the S_ISLNK test becuase it
1671   is already covered by !S_ISREG and is not defined in Unixware.
1672   Reported by Dave Dykstra.
1673   (update_random_seed_file): Silently ignore update request when pool
1674   is not filled.
1675
1676   * random.c (read_seed_file): New.
1677   (set_random_seed_file): New.
1678   (read_pool): Try to read the seeding file.
1679   (update_random_seed_file): New.
1680
1681   (read_pool): Do an initial extra seeding when level 2 quality random
1682   is requested the first time.  This requestes at least POOLSIZE/2 bytes
1683   of entropy.  Compined with the seeding file this should make normal
1684   random bytes cheaper and increase the quality of the random bytes
1685   used for key generation.
1686
1687   * random.c (read_pool): Print a more friendly error message in
1688   cases when too much random is requested in one call.
1689
1690   * random.c (fast_random_poll): Check whether RUSAGE_SELF is defined;
1691   this is not the case for some ESIX and Unixware, although they have
1692   getrusage().
1693
1694   * primegen.c (generate_elg_prime): All primes are now generated with
1695   the lowest random quality level.  Because they are public anyway we
1696   don't need stronger random and by this we do not drain the systems
1697   entropy so much.
1698
1699   * primegen.c (register_primegen_progress): New.
1700   * dsa.c (register_pk_dsa_progress): New.
1701   * elgamal.c (register_pk_elg_progress): New.
1702
1703   * elgamal.c (wiener_map): New.
1704   (gen_k): Use a much smaller k.
1705   (generate): Calculate the qbits using the wiener map and
1706   choose an x at a size comparable to the one choosen in gen_k
1707
1708   * rmd160.c (rmd160_get_info): Moved casting to the left side due to a
1709   problem with UTS4.3.  Suggested by Dave Dykstra.
1710   * sha1.c (sha1_get_info): Ditto.
1711   * tiger.c (tiger_get_info): Ditto.
1712   * md5.c (md5_get_info): Ditto
1713   * des.c (des_get_info): Ditto.
1714   * blowfish.c (blowfish_get_info): Ditto.
1715   * cast5.c (cast5_get_info): Ditto.
1716   * twofish.c (twofish_get_info): Ditto.
1717
1718 Fri Mar 24 11:25:45 CET 2000  Werner Koch  <wk@openit.de>
1719
1720         * md.c (md_open): Add hmac arg and allocate space for the pads.
1721         (md_finalize): Add HMAC support.
1722         (md_copy): Ditto.
1723         (md_close): Ditto.
1724         (gcry_md_reset): Ditto.
1725         (gcry_md_ctl): Ditto.
1726         (prepare_macpdas): New.
1727
1728 Mon Mar 13 19:22:46 CET 2000  Werner Koch  <wk@openit.de>
1729
1730         * md.c (gcry_md_hash_buffer): Add support for the other algorithms.
1731
1732 Mon Jan 31 16:37:34 CET 2000  Werner Koch  <wk@gnupg.de>
1733
1734         * genprime.c (generate_elg_prime): Fixed returned factors which never
1735         worked for non-DSA keys.
1736
1737 Thu Jan 27 18:00:44 CET 2000  Werner Koch  <wk@gnupg.de>
1738
1739         * pubkey.c (sexp_to_key): Fixed mem leaks in case of errors.
1740
1741 Mon Jan 24 22:24:38 CET 2000  Werner Koch  <wk@gnupg.de>
1742
1743         * pubkey.c (gcry_pk_decrypt): Implemented.
1744         (gcry_pk_encrypt): Implemented.
1745         (gcry_pk_testkey): New.
1746         (gcry_pk_genkey): New.
1747         (pubkey_decrypt): Made static.
1748         (pubkey_encrypt): Ditto.
1749         (pubkey_check_secret_key): Ditto.
1750         (pubkey_generate): Ditto.
1751
1752 Mon Jan 24 13:04:28 CET 2000  Werner Koch  <wk@gnupg.de>
1753
1754         * pubkey.c (pubkey_nbits): Removed and replaced by ...
1755         (gcry_pk_get_nbits): this new one.
1756
1757 Wed Dec  8 21:58:32 CET 1999  Werner Koch  <wk@gnupg.de>
1758
1759         * dsa.c: s/mpi_powm/gcry_mpi_powm/g
1760         * elgamal.c: Ditto.
1761         * primegen.c: Ditto.
1762
1763         * : Replaced g10_opt_verbose by g10_log_verbosity().
1764
1765         * Makefile.am (INCLUDES): removed intl, add ../gcrypt
1766
1767 Fri Nov 19 17:15:20 CET 1999  Werner Koch  <wk@gnupg.de>
1768
1769         * dynload.c (cmp_filenames): New to replaced compare_filename() in
1770         module.
1771         (register_cipher_extension): Removed the tilde expansion stuff.
1772         * rndeg.c (my_make_filename): New.
1773
1774         * : Replaced header util.h by g10lib.h
1775
1776         * random.c (gather_faked): Replaced make_timestamp by time(2).
1777         Disabled wrning printed with tty_printf.
1778         * rndlinux.c (gather_random): Always use fprintf instead of tty_xxx;
1779         this should be replaced by a callback function.
1780
1781         * primegen.c (gen_prime): Use gcry_mpi_randomize.
1782         (is_prime): Ditto.
1783         * elgamal.c (test_keys): Ditto.
1784         * dsa.c (test_keys): Ditto.
1785
1786         * cipher.c (gcry_cipher_close): Die on invalid handle.
1787
1788 Mon Nov 15 21:36:02 CET 1999  Werner Koch  <wk@gnupg.de>
1789
1790         * elgamal.c (gen_k): Use the new random API.
1791         (generate): Ditto.
1792         * dsa.c (gen_k): Ditto.
1793         (generate): Ditto.
1794
1795 Sat Nov 13 17:44:23 CET 1999  Werner Koch  <wk@gnupg.de>
1796
1797         * pubkey.c (disable_pubkey_algo): Made static.
1798         (gcry_pk_ctl): New.
1799
1800         * random.c (get_random_bits): Renamed to ...
1801         (get_random_bytes): ... this and made static.
1802         (gcry_random_bytes): New.
1803         (gcry_random_bytes_secure): New.
1804         (randomize_buffer): Renamed to ...
1805         (gcry_randomize): ...this.
1806
1807         * md.c (gcry_md_hash_buffer): New.
1808
1809         * pubkey.c (gcry_pk_algo_info): 4 new commands.
1810         (pubkey_get_npkey): Made static.
1811         (pubkey_get_nskey): Made static.
1812         (pubkey_get_nsig): Made static.
1813         (pubkey_get_nenc): Made static.
1814
1815         * pubkey.c: Removed all G10ERR_xxx.
1816         * cipher.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_CIPHER_ALGO.
1817         * md.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_MD_ALGO.
1818         * cast5.c (cast_setkey): Changed errocodes to GCRYERR_xxx.
1819         * blowfish.c: Ditto.
1820         * des.c: Ditto.
1821         * twofish.c: Ditto.
1822         * dsa.c: Ditto.
1823         * elgamal.c: Ditto.
1824
1825         * g10c.c: Removed
1826
1827         * cipher.c (gcry_cipher_open): Replaced alloc functions and return NULL
1828         if we are out of core.
1829         * dynload.c: Replaced all memory allocation functions.
1830         * md.c: Ditto.
1831         * primegen.c: Ditto.
1832         * pubkey.c: Ditto.
1833         * random.c: Ditto.
1834         * rndw32.c: Ditto.
1835         * elgamal.c: Ditto.
1836         * dsa.c: Ditto.
1837
1838 Tue Oct 26 14:10:21 CEST 1999  Werner Koch  <wk@gnupg.de>
1839
1840         * elgamal.c (sign): Hugh found strange code here. Replaced by BUG().
1841
1842         * cipher.c: Merged with gcrypt/symapi.c.
1843
1844         * pubkey.c (string_to_pubkey_algo): Renamed function to ...
1845         (gcry_pk_map_name): ... this.
1846         (pubkey_algo_to_string): Renamed function to ...
1847         (gcry_pk_algo_name): ... this.
1848         (gcry_pk_algo_info): New.
1849         * pubkey.c: Merged with gcrypt/pkapi.c.
1850
1851         * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
1852         fixing this bug.
1853
1854         * md.c: Merged with gcrypt/mdapi.c
1855
1856 Wed Sep 15 14:39:59 CEST 1999  Michael Roth <mroth@nessie.de>
1857
1858         * des.c: Various speed improvements: One bit pre rotation
1859           trick after initial permutation (Richard Outerbridge).
1860           Finished test of SSLeay Tripple-DES patterns.
1861
1862 Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1863
1864         * rndw32.c: New.
1865
1866 Mon Sep 13 10:51:29 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1867
1868         * bithelp.h: New.
1869         * rmd160.h, sha1.h, md5.h: Use the rol macro from bithelp.h
1870
1871 Tue Sep  7 16:23:36 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1872
1873         * Makefile.am: Fixed seds for latest egcc. By Ollivier Robert.
1874
1875 Mon Sep  6 19:59:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1876
1877         * des.c (selftest): Add some testpattern
1878
1879 Mon Aug 30 20:38:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1880
1881         * cipher.c (do_cbc_encrypt): Fixed serious bug occuring when not using
1882         in place encryption. Pointed out by Frank Stajano.
1883
1884 Mon Jul 26 09:34:46 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1885
1886         * md5.c (md5_final): Fix for a SCO cpp bug.
1887
1888 Thu Jul 15 10:15:35 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1889
1890         * elgamal.c (elg_check_secret_key,elg_encrypt
1891         elg_decrypt,elg_sign,elg_verify): Sanity check on the args.
1892         * dsa.c (dsa_check_secret_key,dsa_sign,dsa_verify): Ditto.
1893
1894         * pubkey.c (disable_pubkey_algo): New.
1895         (check_pubkey_algo2): Look at disabled algo table.
1896         * cipher.c (disable_cipher_algo): New.
1897         (check_cipher_algo): Look at disabled algo table.
1898
1899 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1900
1901         * Makefile.am: Support for libtool.
1902
1903 Fri Jul  2 11:45:54 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1904
1905         * dsa.c (gen_k): Changed algorithm to consume less random bytes
1906         * elgamal.c (gen_k): Ditto.
1907
1908         * random.c (random_dump_stats): New.
1909
1910 Thu Jul  1 12:47:31 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1911
1912         * primegen.c, elgamal.c, dsa.c (progess): New and replaced all
1913         fputc with a call to this function.
1914
1915 Sat Jun 26 12:15:59 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1916
1917         * rndegd.c (do_write): s/ssize_t/int/ due to SunOS 4.1 probs.
1918
1919         * cipher.c (do_cbc_encrypt, do_cbc_decrypt): New.
1920
1921         * dynload.c (HAVE_DL_SHL_LOAD): Map hpux API to dlopen (Dave Dykstra).
1922         * Makefile.am (install-exec-hook): Removed.
1923
1924 Sun May 23 14:20:22 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1925
1926         * cipher.c (setup_cipher_table): Enable Twofish
1927
1928         * random.c (fast_random_poll): Disable use of times() for mingw32.
1929
1930 Mon May 17 21:54:43 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1931
1932         * dynload.c (register_internal_cipher_extension): Minor init fix.
1933
1934 Tue May  4 15:47:53 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1935
1936         * primegen.c (gen_prime): Readded the Fermat test. Fixed the bug
1937         that we didn't correct for step when passing the prime to the
1938         Rabin-Miller test which led to bad performance (Stefan Keller).
1939         (check_prime): Add a first Fermat test.
1940
1941 Sun Apr 18 10:11:28 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1942
1943         * cipher.c (cipher_setiv): Add ivlen arg, changed all callers.
1944
1945         * random.c (randomize_buffer): alway use secure memory because
1946         we can't use m_is_secure() on a statically allocated buffer.
1947
1948         * twofish.c: Replaced some macros by a loop to reduce text size.
1949         * Makefile.am (twofish): No more need for sed editing.
1950
1951 Fri Apr  9 12:26:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1952
1953         * cipher.c (cipher_open): Reversed the changes for AUTO_CFB.
1954
1955         * blowfish.c: Dropped the Blowfish 160 mode.
1956         * cipher.c (cipher_open): Ditto.
1957         (setup_cipher_table): Ditto.  And removed support of twofish128
1958
1959 Wed Apr  7 20:51:39 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1960
1961         * random.c (get_random_bits): Can now handle requests > POOLSIZE
1962
1963         * cipher.c (cipher_open): Now uses standard CFB for automode if
1964         the blocksize is gt 8 (according to rfc2440).
1965
1966         * twofish.c: Applied Matthew Skala's patches for 256 bit key.
1967
1968 Tue Apr  6 19:58:12 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1969
1970         * random.c (get_random_bits): Can now handle requests > POOLSIZE
1971
1972         * cipher.c (cipher_open): Now uses standard CFB for automode if
1973         the blocksize is gt 8 (according to rfc2440).
1974
1975 Sat Mar 20 11:44:21 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1976
1977         * rndlinux.c (tty_printf) [IS_MODULE]: Removed.
1978
1979         * rndegd.c (gather_random): Some fixes.
1980
1981 Wed Mar 17 13:09:03 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1982
1983         * rndegd.c (do_read): New.
1984         (gather_random): Changed the implementation.
1985
1986 Mon Mar  8 20:47:17 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1987
1988         * dynload.c (DLSYM_NEEDS_UNDERSCORE): Renamed.
1989
1990 Fri Feb 26 17:55:41 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1991
1992         * md.c: Nearly a total rewrote.
1993
1994 Wed Feb 24 11:07:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1995
1996         * cipher.c (context): Fixed alignment
1997         * md.c: Ditto.
1998
1999         * rndegd.c: New
2000
2001 Mon Feb 22 20:04:00 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2002
2003         * rndegd.c: New.
2004
2005 Wed Feb 10 17:15:39 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2006
2007         * Makefile.am: Modules are now figured out by configure
2008         * construct.c: New. Generated by configure. Changed all modules
2009         to work with that.
2010         * sha1.h: Removed.
2011         * md5.h: Removed.
2012
2013         * twofish.c: Changed interface to allow Twofish/256
2014
2015         * rndunix.c (start_gatherer): Die on SIGPIPE.
2016
2017 Wed Jan 20 18:59:49 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2018
2019         * rndunix.c (gather_random): Fix to avoid infinite loop.
2020
2021 Sun Jan 17 11:04:33 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2022
2023         * des.c (is_weak_key): Replace system memcmp due to bugs
2024         in SunOS's memcmp.
2025         (des_get_info): Return error on failed selftest.
2026         * twofish.c (twofish_setkey): Return error on failed selftest or
2027         invalid keylength.
2028         * cast5.c (cast_setkey): Ditto.
2029         * blowfish.c (bf_setkey): Return error on failed selftest.
2030
2031 Tue Jan 12 11:17:18 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2032
2033         * random.c (random_is_faked): New.
2034
2035         * tiger.c: Only compile if we have the u64 type
2036
2037 Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2038
2039         * rndunix.c (gather_random): check for setuid.
2040
2041         * Makefile.am: Add a way to staically link random modules
2042
2043 Thu Jan  7 18:00:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2044
2045         * md.c (md_stop_debug): Do a flush first.
2046         (md_open): size of buffer now depends on the secure parameter
2047
2048 Sun Jan  3 15:28:44 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2049
2050         * rndunix.c (start_gatherer): Fixed stupid ==/= bug
2051
2052 1998-12-31  Geoff Keating  <geoffk@ozemail.com.au>
2053
2054         * des.c (is_weak_key): Rewrite loop end condition.
2055
2056 Tue Dec 29 14:41:47 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2057
2058         * random.c: add unistd.h for getpid().
2059         (RAND_MAX): Fallback value for Sun.
2060
2061 Wed Dec 23 17:12:24 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2062
2063         * md.c (md_copy): Reset debug.
2064
2065 Mon Dec 14 21:18:49 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2066
2067         * random.c (read_random_source): Changed the interface to the
2068         random gathering function.
2069         (gather_faked): Use new interface.
2070         * dynload.c (dynload_getfnc_fast_random_poll): Ditto.
2071         (dynload_getfnc_gather_random): Ditto.
2072         * rndlinux.c (gather_random): Ditto.
2073         * rndunix.c (gather_random): Ditto.
2074
2075 Sat Dec 12 18:40:32 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2076
2077         * dynload.c (SYMBOL_VERSION): New to cope with system which needs
2078         underscores.
2079
2080         * rndunix.c: Rewrote large parts
2081
2082 Thu Dec 10 20:15:36 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2083
2084         * dynload.c (load_extension): increased needed verbosity level.
2085
2086         * random.c (fast_random_poll): Fallback to a default fast random
2087         poll function.
2088         (read_random_source): Always use the faked entroy gatherer if no
2089         gather module is available.
2090         * rndlinux.c (fast_poll): Removed.
2091         * rndunix.c (fast_poll): Removed.
2092
2093
2094 Wed Nov 25 12:33:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
2095
2096         * rand-*.c: Removed.
2097         * rndlinux.c : New.
2098         * rndunix.c : New.
2099         * random.c : Restructured the interface to the gather modules.
2100         (intialize): Call constructor functions
2101         (read_radnom_source): Moved to here.
2102         * dynload.c (dynload_getfnc_gather_random): New.
2103         (dynload_getfnc_fast_random_poll): New.
2104         (register_internal_cipher_extension): New.
2105         (register_cipher_extension): Support of internal modules.
2106
2107 Sun Nov  8 17:44:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
2108
2109         * rand-unix.c (read_random_source): Removed the assert.
2110
2111 Mon Oct 19 18:34:30 1998  me,,,  (wk@tobold)
2112
2113         * pubkey.c: Hack to allow us to give some info about RSA keys back.
2114
2115 Thu Oct 15 11:47:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
2116
2117         * dynload.c: Support for DLD
2118
2119 Wed Oct 14 12:13:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
2120
2121         * rand-unix.c: Now uses names from configure for /dev/random.
2122
2123 1998-10-10  SL Baur  <steve@altair.xemacs.org>
2124
2125         * Makefile.am: fix sed -O substitutions to catch -O6, etc.
2126
2127 Tue Oct  6 10:06:32 1998  Werner Koch  (wk@isil.d.shuttle.de)
2128
2129         * rand-unix.c (HAVE_GETTIMEOFDAY): Fixed (was ..GETTIMEOFTIME :-)
2130         * rand-dummy.c (HAVE_GETTIMEOFDAY): Ditto.
2131
2132 Mon Sep 28 13:23:09 1998  Werner Koch  (wk@isil.d.shuttle.de)
2133
2134         * md.c (md_digest): New.
2135         (md_reset): New.
2136
2137 Wed Sep 23 12:27:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
2138
2139         * tiger.c (TIGER_CONTEXT): moved "buf", so that it is 64 bit aligned.
2140
2141 Mon Sep 21 06:22:53 1998  Werner Koch  (wk@(none))
2142
2143         * des.c: Some patches from Michael.
2144
2145 Thu Sep 17 19:00:06 1998  Werner Koch  (wk@(none))
2146
2147         * des.c : New file from Michael Roth <mroth@nessie.de>
2148
2149 Mon Sep 14 11:10:55 1998  Werner Koch  (wk@(none))
2150
2151         * blowfish.c (bf_setkey): Niklas Hernaeus patch to detect weak keys.
2152
2153 Mon Sep 14 09:19:25 1998  Werner Koch  (wk@(none))
2154
2155         * dynload.c (RTLD_NOW): Now defined to 1 if it is undefined.
2156
2157 Mon Sep  7 17:04:33 1998  Werner Koch  (wk@(none))
2158
2159         * Makefile.am: Fixes to allow a different build directory
2160
2161 Thu Aug  6 17:25:38 1998  Werner Koch,mobil,,,  (wk@tobold)
2162
2163         * random.c (get_random_byte): Removed and changed all callers
2164         to use get_random_bits()
2165
2166 Mon Jul 27 10:30:22 1998  Werner Koch  (wk@(none))
2167
2168         * cipher.c : Support for other blocksizes
2169         (cipher_get_blocksize): New.
2170         * twofish.c: New.
2171         * Makefile.am: Add twofish module.
2172
2173 Mon Jul 13 21:30:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
2174
2175         * random.c (read_pool): Simple alloc if secure_alloc is not set.
2176         (get_random_bits): Ditto.
2177
2178 Thu Jul  9 13:01:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
2179
2180         * dynload.c (load_extension): Function now nbails out if
2181         the program is run setuid.
2182
2183 Wed Jul  8 18:58:23 1998  Werner Koch  (wk@isil.d.shuttle.de)
2184
2185         * rmd160.c (rmd160_hash_buffer): New.
2186
2187 Thu Jul  2 10:50:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
2188
2189         * cipher.c (cipher_open): algos >=100 use standard CFB
2190
2191 Thu Jun 25 11:18:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
2192
2193         * Makefile.am: Support for extensions
2194
2195 Thu Jun 18 12:09:38 1998  Werner Koch  (wk@isil.d.shuttle.de)
2196
2197         * random.c (mix_pool): simpler handling for level 0
2198
2199 Mon Jun 15 14:40:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
2200
2201         * tiger.c: Removed from dist, will reappear as dynload module
2202
2203 Sat Jun 13 14:16:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
2204
2205         * pubkey.c: Major changes to allow extensions. Changed the inteface
2206         of all public key ciphers and added the ability to load extensions
2207         on demand.
2208
2209         * misc.c: Removed.
2210
2211 Wed Jun 10 07:52:08 1998  Werner Koch,mobil,,,  (wk@tobold)
2212
2213         * dynload.c: New.
2214         * cipher.c: Major changes to allow extensions.
2215
2216 Mon Jun  8 22:43:00 1998  Werner Koch  (wk@isil.d.shuttle.de)
2217
2218         * cipher.c: Major internal chnages to support extensions.
2219         * blowfish.c (blowfish_get_info): New and made all internal
2220         functions static, changed heder.
2221         * cast5.c (cast5_get_info): Likewise.
2222
2223 Mon Jun  8 12:27:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
2224
2225         * tiger.c (transform): Fix for big endian
2226
2227         * cipher.c (do_cfb_decrypt): Big endian fix.
2228
2229 Fri May 22 07:30:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
2230
2231         * md.c (md_get_oid): Add a new one for TIGER.
2232
2233 Thu May 21 13:24:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
2234
2235         * cipher.c: Add support for a dummy cipher
2236
2237 Thu May 14 15:40:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
2238
2239         * rmd160.c (transform): fixed sigbus - I should better
2240         add Christian von Roques's new implemenation of rmd160_write.
2241
2242 Fri May  8 18:07:44 1998  Werner Koch  (wk@isil.d.shuttle.de)
2243
2244         * rand-internal.h, rand-unix.c, rand-w32.c, rand_dummy.c: New
2245         * random.c: Moved system specific functions to rand-****.c
2246
2247 Fri May  8 14:01:17 1998  Werner Koch  (wk@isil.d.shuttle.de)
2248
2249         * random.c (fast_random_poll): add call to gethrtime.
2250
2251 Tue May  5 21:28:55 1998  Werner Koch  (wk@isil.d.shuttle.de)
2252
2253         * elgamal.c (elg_generate): choosing x was not correct, could
2254         yield 6 bytes which are not from the random pool, tsss, tsss..
2255
2256 Tue May  5 14:09:06 1998  Werner Koch  (wk@isil.d.shuttle.de)
2257
2258         * primegen.c (generate_elg_prime): Add arg mode, changed all
2259         callers and implemented mode 1.
2260
2261 Mon Apr 27 14:41:58 1998  Werner Koch  (wk@isil.d.shuttle.de)
2262
2263         * cipher.c (cipher_get_keylen): New.
2264
2265 Sun Apr 26 14:44:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
2266
2267         * tiger.c, tiger.h: New.
2268
2269 Wed Apr  8 14:57:11 1998  Werner Koch  (wk@isil.d.shuttle.de)
2270
2271         * misc.c (check_pubkey_algo2): New.
2272
2273 Tue Apr  7 18:46:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
2274
2275         * cipher.c: New
2276         * misc.c (check_cipher_algo): Moved to cipher.c
2277         * cast5.c: Moved many functions to cipher.c
2278         * blowfish.c: Likewise.
2279
2280 Sat Apr  4 19:52:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
2281
2282         * cast5.c: Implemented and tested.
2283
2284 Wed Apr  1 16:38:27 1998  Werner Koch  (wk@isil.d.shuttle.de)
2285
2286         * elgamal.c (elg_generate): Faster generation of x in some cases.
2287
2288 Thu Mar 19 13:54:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
2289
2290         * blowfish.c (blowfish_decode_cfb): changed XOR operation
2291         (blowfish_encode_cfb): Ditto.
2292
2293 Thu Mar 12 14:04:05 1998  Werner Koch  (wk@isil.d.shuttle.de)
2294
2295         * sha1.c (transform): Rewrote
2296
2297         * blowfish.c (encrypt): Unrolled for rounds == 16
2298         (decrypt): Ditto.
2299
2300 Tue Mar 10 16:32:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
2301
2302         * rmd160.c (transform): Unrolled the loop.
2303
2304 Tue Mar 10 13:05:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
2305
2306         * random.c (read_pool): Add pool_balance stuff.
2307         (get_random_bits): New.
2308
2309         * elgamal.c (elg_generate): Now uses get_random_bits to generate x.
2310
2311
2312 Tue Mar 10 11:33:51 1998  Werner Koch  (wk@isil.d.shuttle.de)
2313
2314         * md.c (md_digest_length): New.
2315
2316 Tue Mar 10 11:27:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
2317
2318         * dsa.c (dsa_verify): Works.
2319
2320 Mon Mar  9 12:59:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
2321
2322         * dsa.c, dsa.h: Removed some unused code.
2323
2324 Wed Mar  4 10:39:22 1998  Werner Koch  (wk@isil.d.shuttle.de)
2325
2326         * md.c (md_open): Add call to fast_random_poll.
2327         blowfish.c (blowfish_setkey): Ditto.
2328
2329 Tue Mar  3 13:32:54 1998  Werner Koch  (wk@isil.d.shuttle.de)
2330
2331         * rmd160.c (rmd160_mixblock): New.
2332         * random.c: Restructured to start with a new RNG implementation.
2333         * random.h: New.
2334
2335 Mon Mar  2 19:21:46 1998  Werner Koch  (wk@isil.d.shuttle.de)
2336
2337         * gost.c, gost.h: Removed because they did only conatin trash.
2338
2339 Sun Mar  1 16:42:29 1998  Werner Koch  (wk@isil.d.shuttle.de)
2340
2341         * random.c (fill_buffer): removed error message if n == -1.
2342
2343 Fri Feb 27 16:39:34 1998  Werner Koch  (wk@isil.d.shuttle.de)
2344
2345         * md.c (md_enable): No init if called twice.
2346
2347 Thu Feb 26 07:57:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
2348
2349         * primegen.c (generate_elg_prime): Changed the progress printing.
2350         (gen_prime): Ditto.
2351
2352 Tue Feb 24 12:28:42 1998  Werner Koch  (wk@isil.d.shuttle.de)
2353
2354         * md5.c, md.5 : Replaced by a modified version of md5.c from
2355         GNU textutils 1.22.
2356
2357 Wed Feb 18 14:08:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
2358
2359         * md.c, md.h : New debugging support
2360
2361 Mon Feb 16 10:08:47 1998  Werner Koch  (wk@isil.d.shuttle.de)
2362
2363         * misc.c (cipher_algo_to_string): New
2364         (pubkey_algo_to_string): New.
2365         (digest_algo_to_string): New.
2366
2367
2368  Copyright 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
2369
2370  This file is free software; as a special exception the author gives
2371  unlimited permission to copy and/or distribute it, with or without
2372  modifications, as long as this notice is preserved.
2373
2374  This file is distributed in the hope that it will be useful, but
2375  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
2376  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.