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