2002-10-10 Timo Schulz <ts@winpt.org>
[libgcrypt.git] / cipher / ChangeLog
1 2002-10-10  Timo Schulz  <ts@winpt.org>
2
3         * pubkey.c (gcry_pk_genkey): Check boundaries.
4         
5 2002-10-10  Timo Schulz  <ts@winpt.org>
6
7         * md.c (gcry_md_open): Check that algo is available and only
8         valid flags values are used.
9         (gcry_md_get_algo): Add error handling.
10         
11 2002-09-17  Werner Koch  <wk@gnupg.org>
12
13         * random.c: Replaced mutex.h by the new ath.h.  Changed all calls.
14
15 2002-09-16  Werner Koch  <wk@gnupg.org>
16
17         * arcfour.c (do_encrypt_stream): Use register modifier and modulo.
18         According to Nikos Mavroyanopoulos this increases perfromace on
19         i386 system noticable.  And I always tought gcc is clever enough.
20         * md5.c (transform): Use register modifier.
21         * rmd160.c (transform): Ditto.
22         * sha1.c (transform): Ditto.  We hope that there are 6 free registers.
23         * random.c (gcry_randomize): Rewrote to avoid malloc calls.
24
25         * rndlinux.c (gather_random): Replaced remaining fprintfs by log_*.
26         * arcfour.c (do_arcfour_setkey): Ditto.
27         * twofish.c (do_twofish_setkey): Ditto.
28         * rndegd.c (gather_random): Ditto.
29         * rijndael.c (do_setkey): Ditto.
30         * random.c (_gcry_random_dump_stats): Ditto. 
31         * primegen.c (_gcry_generate_elg_prime): Ditto.
32         * des.c (_gcry_des_get_info): Ditto.
33         * cast5.c (do_cast_setkey): Ditto.
34         * blowfish.c (do_bf_setkey): Ditto.
35
36 2002-08-26  Werner Koch  <wk@gnupg.org>
37
38         * des.c (weak_keys): Fixed one entry in the table and compared
39         all entries against the literature.
40         (selftest): Checksum the weak key table.
41
42 2002-08-21  Werner Koch  <wk@gnupg.org>
43
44         * pubkey.c: Enable keygrip calculation for "openpgp-rsa".
45
46 2002-08-17  Werner Koch  <wk@gnupg.org>
47
48         * cipher.c (setup_cipher_table): Don't overwrite the DES entry
49         with the entry for DUMMY.
50
51 2002-08-14  Werner Koch  <wk@gnupg.org>
52
53         * des.c (do_des_setkey,do_des_encrypt, do_des_decrypt): New.
54         (_gcry_des_get_info): Support plain old DES.
55         * cipher.c (setup_cipher_table): Put DES into the table.
56
57 2002-07-25  Werner Koch  <wk@gnupg.org>
58
59         * rndunix.c (_gcry_rndunix_constructor): Prefixed with _gcry_.
60         Noted by Stephan Austermuehle.
61
62 2002-07-08  Timo Schulz  <ts@winpt.org>
63
64         * rndw32.c: Replaced the m_ memory functions with the real 
65         gcry_ functions. Renamed all g10_ prefixed functions to log_.
66         
67 2002-06-12  Werner Koch  <wk@gnupg.org>
68
69         * rsa.c (generate): Use e = 65537 for now.
70
71 2002-06-11  Werner Koch  <wk@gnupg.org>
72
73         * pubkey.c (gcry_pk_get_keygrip): Allow a "protected-private-key".
74
75 2002-06-05  Timo Schulz  <ts@winpt.org>
76
77         * cipher.c (gcry_cipher_encrypt, gcry_cipher_decrypt):
78         Check that the input size is a multiple of the blocksize.
79         
80 2002-05-23  Werner Koch  <wk@gnupg.org>
81
82         * md.c (oid_table): Add an rsadsi OID for MD5.
83
84 2002-05-21  Werner Koch  <wk@gnupg.org>
85
86         * primegen.c, elgamal.c, dsa.c (progress): Do not print anything
87         by default.  Pass an extra identifying string to the callback and
88         reserved 2 argumenst for current and total counters.  Changed the
89         register function prototype.
90
91 2002-05-17  Werner Koch  <wk@gnupg.org>
92
93         * rndegd.c (rndegd_constructor): Fixed name of register function
94         and prefixed the function name with _gcry_.
95         * rndw32.c (rndw32_constructor): Ditto.
96         * tiger.c (tiger_constructor): Ditto.
97
98         * Makefile.am: Removed all dynamic loading stuff.
99         * dynload.c: Ditto. Now only used for the constructor system.
100
101 2002-05-15  Werner Koch  <wk@gnupg.org>
102
103         * random.c (gcry_random_bytes,gcry_random_bytes_secure)
104         (gcry_randomize): Make sure we are initialized.
105
106 2002-05-14  Werner Koch  <wk@gnupg.org>
107
108         Changed license of most files to the LGPL.
109
110 2002-05-02  Werner Koch  <wk@gnupg.org>
111
112         * random.c (_gcry_fast_random_poll): Initialize the module so the
113         mutex can be used.
114
115         * primegen.c (small_prime_numbers): Moved table from smallprime.c
116         * smallprime.c: Fiel removed.
117
118         * des.c (leftkey_swap, rightkey_swap, working_memcmp): Made static.
119
120         * cipher.c (gcry_cipher_map_name): Map "RIJNDAEL" to "AES".
121         * rijndael.c (rijndael_get_info): We do only support a 128 bit
122         blocksize so it makes sense to change the algorithm strings to
123         AES.
124
125         * tiger.c (tiger_final): Removed superfluous token pasting operators.
126         * md5.c (md5_final): Ditto.
127
128 2002-04-30  Werner Koch  <wk@gnupg.org>
129
130         * cipher.c: Fixed list of copyright years.
131
132 2002-03-18  Werner Koch  <wk@gnupg.org>
133
134         * random.c (initialize): Initialize the new pool lock mutex.
135         (_gcry_fast_random_poll): Add locking and moved main
136         code out to...
137         (do_fast_random_poll): new function.
138         (read_pool): Use the new function here.
139         (get_random_bytes): Add locking.
140         (_gcry_update_random_seed_file): Ditto.
141
142 2002-03-11  Werner Koch  <wk@gnupg.org>
143
144         * md.c: Add rsaSignatureWithripemd160 to OID table.
145
146 2002-02-20  Werner Koch  <wk@gnupg.org>
147
148         * sha1.c: Removed a left over comment note.  The code has been
149         rewritten from scratch in 1998.  Thanks to Niels Möller for
150         reporting this misleading comment.
151
152 2002-02-18  Werner Koch  <wk@gnupg.org>
153
154         * rndunix.c (rndunix_constructor): Use the the new prefixed
155         function name.  Reported by Jordi Mallach.
156
157 2002-02-10  Werner Koch  <wk@gnupg.org>
158
159         * random.c (mix_pool): Carry an extra failsafe_digest buffer
160         around to make the function more robust.
161
162 2002-02-08  Werner Koch  <wk@gnupg.org>
163
164         * random.c (add_randomness): Xor new data into the pool and not
165         just copy it.  This avoids any choosen input attacks which are not
166         serious in our setting because an outsider won't be able to mix
167         data in and even then we keep going with a PRNG.  Thanks to Stefan
168         Keller for pointing this out.
169
170 2002-01-04  Werner Koch  <wk@gnupg.org>
171
172         * pubkey.c (gcry_pk_genkey): Do not release skey - it is static.
173
174         * primegen.c (gen_prime): Of course we should use set_bit
175         and not set_highbit to set the second high bit.
176
177 2001-12-18  Werner Koch  <wk@gnupg.org>
178
179         * rsa.c (generate): Loop until we find the exact modulus size.
180         Changed the exponent to 41.
181         (rsa_get_info): s/usage/r_usage/ to avoid shadow warnings.
182         * primegen.c (gen_prime): Set 2 high order bits for secret primes.
183
184         * Makefile.am (DISTCLEANFILES): Include construct.c.
185
186 2001-12-17  Werner Koch  <wk@gnupg.org>
187
188         * pubkey.c (gcry_pk_get_keygrip): New - experimental.
189
190 2001-12-11  Werner Koch  <wk@gnupg.org>
191
192         * cipher.c: Added OIDs for AES.
193         (gcry_cipher_mode_from_oid): New.
194         (gcry_cipher_map_name): Moved OID search code to ..
195         (search_oid): .. new function.
196
197 2001-12-10  Werner Koch  <wk@gnupg.org>
198
199         * pubkey.c (gcry_pk_encrypt): Find the signature algorithm by name
200         and not by number.
201         
202         * pubkey.c (gcry_pk_encrypt,gcry_pk_decrypt,gcry_pk_sign)
203         (gcry_pk_verify,gcry_pk_testkey, gcry_pk_genkey)
204         (gcry_pk_get_nbits): Release the arrays.  Noted by Nikos
205         Mavroyanopoulos.
206
207 2001-12-06  Werner Koch  <wk@gnupg.org>
208
209         * cipher.c (gcry_cipher_map_name): Look also for OIDs prefixed
210         with "oid."  or "OID.".
211
212 2001-12-05  Werner Koch  <wk@gnupg.org>
213
214         * pubkey.c (algo_info_table): Fixed entry for openpgp-rsa. 
215
216 2001-11-24  Werner Koch  <wk@gnupg.org>
217
218         * pubkey.c: Added the rsaEncryption OID to the tables.
219         (sexp_to_key): Add an arg to return the index of the algorithm,
220         changed all callers.
221         (gcry_pk_sign): Find the signature algorithm by name and not by
222         number.
223         (gcry_pk_get_nbits): Fixed so that we can now really pass a secret
224         key to get the result.
225         
226         * md.c (gcry_md_map_name): Look also for OIDs prefixed with "oid."
227         or "OID." so that an OID string can be used as an S-Exp token.
228
229 2001-11-20  Werner Koch  <wk@gnupg.org>
230
231         * md.c (gcry_md_map_name): Lookup by OID if the the name begins
232         with a digit.
233         (oid_table): New.
234         
235 2001-11-16  Werner Koch  <wk@gnupg.org>
236
237         * md.c (gcry_md_info): New operator GCRYCTL_IS_ALGO_ENABLED.
238
239 2001-11-07  Werner Koch  <wk@gnupg.org>
240
241         * md.c (gcry_md_hash_buffer): Close the handle which was left open
242         for algorithms other than rmd160.
243
244 2001-08-08  Werner Koch  <wk@gnupg.org>
245
246         * rndw32.c (gather_random): Use toolhelp in addition to the NT
247         gatherer for Windows2000.  Suggested by Sami Tolvanen.
248
249         * random.c (read_pool): Fixed length check, this used to be one
250         byte to strict.  Made an assert out of it because the caller has
251         already made sure that only poolsize bytes are requested.
252         Reported by Marcus Brinkmann.
253
254 2001-08-03  Werner Koch  <wk@gnupg.org>
255
256         * cipher.c (cipher_encrypt, cipher_decrypt): Prepare to return
257         errors. We have to change the interface to all ciphers to make
258         this really work but we should do so to prepare for hardware
259         encryption modules.
260         (gcry_cipher_encrypt, gcry_cipher_decrypt): Return the error and
261         set lasterr. 
262         (gcry_cipher_ctl): Make sure that errors from setkey are returned.
263
264 2001-08-02  Werner Koch  <wk@gnupg.org>
265
266         * rndlinux.c (gather_random): casted a size_t arg to int so that
267         the format string is correct.  Casting is okay here and avoids
268         translation changes. 
269
270         * random.c (fast_random_poll): Do not check the return code of
271         getrusage.
272
273         * rndunix.c: Add a signal.h header to avoid warnings on Solaris 7
274         and 8.
275
276         * tiger.c (print_abc,print_data): Removed.
277
278         * rijndael.c, des.c, blowfish.c, twofish.c, cast5.c, arcfour.c
279         (burn_stack): New.  Add wrappers for most functions to be able to
280         call burn_stack after the function invocation. This methods seems
281         to be the most portable way to zeroise the stack used. It does
282         only work on stack frame based machines but it is highly portable
283         and has no side effects.  Just setting the automatic variables at
284         the end of a function to zero does not work well because the
285         compiler will optimize them away - marking them as volatile would
286         be bad for performance.
287         * md5.c, sha1.c, rmd160.c, tiger.c (burn_stack): Likewise.
288         * random.c (burn_stack): New.
289         (mix_pool): Use it here to burn the stack of the mixblock function.
290
291         * primegen.c (_gcry_generate_elg_prime): Freed q at 3 places.
292         Thanks to Tommi Komulainen.
293
294         * arcfour.c (arcfour_setkey): Check the minimim keylength against
295         bytes and not bits.
296         (selftest): Must reset the key before decryption. 
297
298 2001-05-31  Werner Koch  <wk@gnupg.org>
299
300         * sha1.c (sha1_init): Made static.
301
302         Changed all g10_ prefixed function names as well as some mpi_
303         function names to cope with the introduced naming changes.
304         
305         * md.c (prepare_macpads): Made key const.
306
307 2001-05-28  Werner Koch  <wk@gnupg.org>
308
309         * rndegd.c (gather_random): Removed the use of tty_printf.
310
311 2001-03-29  Werner Koch  <wk@gnupg.org>
312
313         * md5.c (md5_final): Fixed calculation of hashed length.  Thanks
314         to disastry@saiknes.lv for pointing out that it was horrible wrong
315         for more than 512MB of input.
316         * sha1.c (sha1_final): Ditto.
317         * rmd160.c (rmd160_final): Ditto.
318         * tiger.c (tiger_final): Ditto.
319
320         * blowfish.c (encrypt,do_encrypt): Changed name to do_encrypt to
321         avoid name clashes with an encrypt function in stdlib.h of
322         Dynix/PIX.  Thanks to Gene Carter.
323         * elgamal.c (encrypt,do_encrypt): Ditto.
324
325         * twofish.c (gnupgext_enum_func): Use only when when compiled as a
326         module.
327         * rijndael.c (gnupgext_enum_func): Ditto.
328
329         * tiger.c (tiger_get_info): Return "TIGER192" and not just
330         "TIGER".  By Edwin Woudt.
331         
332         * random.c: Always include time.h - standard requirement.  Thanks
333         to James Troup.
334
335         * rndw32.c: Fixes to the macros.
336
337 2001-01-11  Werner Koch  <wk@gnupg.org>
338
339         * cipher.c (cipher_encrypt,gcry_cipher_encrypt): Use blocksize and
340         not 8.
341
342 2000-12-19  Werner Koch  <wk@gnupg.org>
343
344         Major change:
345         Removed all GnuPG stuff and renamed this piece of software
346         to gcrypt. 
347
348 2000-11-14  Werner Koch  <wk@gnupg.org>
349
350         * dsa.c (test_keys): Replaced mpi_alloc by gcry_mpi_new and
351         mpi_free by gcry_mpi_release.
352         * elgamal.c (test_keys,generate): Ditto, also for mpi_alloc_secure.
353         * rsa.c (test_keys,generate,rsa_verify): Ditto.
354         * primegen.c (generate_elg_prime): Ditto.
355         (gen_prime): Ditto and removed nlimbs.
356
357         * rsa.c (generate): Allocate 2 more vars in secure memory.
358
359         * Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency
360         problems.
361
362 2000-10-09  Werner Koch  <wk@gnupg.org>
363
364         * arcfour.c, arcfour.h: New.
365         * cipher.c (cipher_encrypt, cipher_decrypt): Add stream mode.
366         (setup_cipher_table): Add Arcfour.
367         (gcry_cipher_open): Kludge to allow stream mode.
368
369 Wed Oct  4 13:16:18 CEST 2000  Werner Koch  <wk@openit.de>
370
371         * sha1.c (transform): Use rol() macro.  Actually this is not needed
372         for a newer gcc but there are still aoter compilers.
373
374         * rsa.c (test_keys): Use new random function. 
375
376         * md.c (gcry_md_setkey): New function to overcome problems with
377         const conflics.  
378         (gcry_md_ctl): Pass set key to the new functions.
379
380         * rijndael.c: New.
381         * cipher.c: Add Rijndael support.
382
383 Mon Sep 18 16:35:45 CEST 2000  Werner Koch  <wk@openit.de>
384
385         * rndlinux.c (open_device): Loose random device checking.
386         By Nils Ellmenreich.
387
388         * random.c (fast_random_poll): Check ENOSYS for getrusage.
389         * rndunix.c:  Add 2 sources for QNX. By Sam Roberts.
390
391         * pubkey.c (gcry_pk_algo_info): Add GCRYCTL_GET_ALGO_USAGE.
392
393         * rsa.c: Changed the comment about the patent.
394         (secret): Speed up by using the CRT.  For a 2k keys this
395         is about 3 times faster.
396         (stronger_key_check): New but unused code to check the secret key.
397         * Makefile.am: Included rsa.[ch].
398         * pubkey.c: Enabled RSA support.
399         (pubkey_get_npkey): Removed RSA workaround.
400
401 Mon Jul 31 10:04:47 CEST 2000  Werner Koch  <wk@openit.de>
402
403   * pubkey.c: Replaced all gcry_sexp_{car,cdr}_{data,mpi} by the new
404   gcry_sexp_nth_{data,mpi} functions.
405
406 Tue Jul 25 17:44:15 CEST 2000  Werner Koch  <wk@openit.de>
407
408   * pubkey.c (exp_to_key,sexp_to_sig,sexp_to_enc,gcry_pk_encrypt,
409     gcry_pk_decrypt,gcry_pk_sign,gcry_pk_genkey): Changed to work with
410     the new S-Exp interface.
411
412 Mon Jul 17 16:35:47 CEST 2000  Werner Koch  <wk@>
413
414   * random.c (gather_faked): Replaced make_timestamp by time(2) again.
415
416 Fri Jul 14 19:38:23 CEST 2000  Werner Koch  <wk@>
417
418   * md.c (gcry_md_ctl): Support GCRYCTL_{START,STOP}_DUMP.
419
420   * Makefile.am: Never compile mingw32 as module.
421
422   * Makefile.am: Tweaked module build and removed libtool
423
424   * Makefile.am:  Replaced -O1 by -O. Suggested by Alec Habig.
425
426   * elgamal.c (sign): Removed inactive code.
427
428   * rsa.c, rsa.h: New based on the old module version (only in CVS for now).
429   * pubkey.c (setup_pubkey_table): Added commented support for RSA.
430
431   * rndunix.c (waitpid): New. For UTS 2.1.  All by Dave Dykstra.
432   (my_popen): Do the FD_CLOEXEC only if it is available
433   (start_gatherer): Cope with missing _SC_OPEN_MAX
434
435   * rndunix.c: Add some more headers for QNX. By Sam Roberts.
436
437   * rndegd.c (gather_random): Shortcut level 0.
438   * rndunix.c (gather_random): Ditto.
439   * rndw32.c (gather_random): Ditto.
440
441   * rndw32.c: Replaced with code from Cryptlib and commented the old stuff.
442   * rndw32.c: Add some debuging code enabled by an environment variable.
443
444   * random.c (read_seed_file): Binary open for DOSish system
445   (update_random_seed_file): Ditto.
446   * random.c [MINGW32]: Include process.h for getpid.
447   * random.c (fast_random_poll): Add clock_gettime() as fallback for
448   system which support this POSIX.4 fucntion. By Sam Roberts.
449
450   * random.c (read_seed_file): Removed the S_ISLNK test becuase it
451   is already covered by !S_ISREG and is not defined in Unixware.
452   Reported by Dave Dykstra.
453   (update_random_seed_file): Silently ignore update request when pool
454   is not filled.
455
456   * random.c (read_seed_file): New.
457   (set_random_seed_file): New.
458   (read_pool): Try to read the seeding file.
459   (update_random_seed_file): New.
460
461   (read_pool): Do an initial extra seeding when level 2 quality random
462   is requested the first time.  This requestes at least POOLSIZE/2 bytes
463   of entropy.  Compined with the seeding file this should make normal
464   random bytes cheaper and increase the quality of the random bytes
465   used for key generation.
466
467   * random.c (read_pool): Print a more friendly error message in
468   cases when too much random is requested in one call.
469
470   * random.c (fast_random_poll): Check whether RUSAGE_SELF is defined;
471   this is not the case for some ESIX and Unixware, although they have
472   getrusage().
473
474   * primegen.c (generate_elg_prime): All primes are now generated with
475   the lowest random quality level.  Because they are public anyway we
476   don't need stronger random and by this we do not drain the systems
477   entropy so much.
478
479   * primegen.c (register_primegen_progress): New.
480   * dsa.c (register_pk_dsa_progress): New.
481   * elgamal.c (register_pk_elg_progress): New.
482
483   * elgamal.c (wiener_map): New.
484   (gen_k): Use a much smaller k.
485   (generate): Calculate the qbits using the wiener map and
486   choose an x at a size comparable to the one choosen in gen_k
487
488   * rmd160.c (rmd160_get_info): Moved casting to the left side due to a
489   problem with UTS4.3.  Suggested by Dave Dykstra.
490   * sha1.c (sha1_get_info): Ditto.
491   * tiger.c (tiger_get_info): Ditto.
492   * md5.c (md5_get_info): Ditto
493   * des.c (des_get_info): Ditto.
494   * blowfish.c (blowfish_get_info): Ditto.
495   * cast5.c (cast5_get_info): Ditto.
496   * twofish.c (twofish_get_info): Ditto.
497
498 Fri Mar 24 11:25:45 CET 2000  Werner Koch  <wk@openit.de>
499
500         * md.c (md_open): Add hmac arg and allocate space for the pads.
501         (md_finalize): Add HMAC support.
502         (md_copy): Ditto.
503         (md_close): Ditto.
504         (gcry_md_reset): Ditto.
505         (gcry_md_ctl): Ditto.
506         (prepare_macpdas): New.
507
508 Mon Mar 13 19:22:46 CET 2000  Werner Koch  <wk@openit.de>
509
510         * md.c (gcry_md_hash_buffer): Add support for the other algorithms.
511
512 Mon Jan 31 16:37:34 CET 2000  Werner Koch  <wk@gnupg.de>
513
514         * genprime.c (generate_elg_prime): Fixed returned factors which never
515         worked for non-DSA keys.
516
517 Thu Jan 27 18:00:44 CET 2000  Werner Koch  <wk@gnupg.de>
518
519         * pubkey.c (sexp_to_key): Fixed mem leaks in case of errors.
520
521 Mon Jan 24 22:24:38 CET 2000  Werner Koch  <wk@gnupg.de>
522
523         * pubkey.c (gcry_pk_decrypt): Implemented.
524         (gcry_pk_encrypt): Implemented.
525         (gcry_pk_testkey): New.
526         (gcry_pk_genkey): New.
527         (pubkey_decrypt): Made static.
528         (pubkey_encrypt): Ditto.
529         (pubkey_check_secret_key): Ditto.
530         (pubkey_generate): Ditto.
531
532 Mon Jan 24 13:04:28 CET 2000  Werner Koch  <wk@gnupg.de>
533
534         * pubkey.c (pubkey_nbits): Removed and replaced by ...
535         (gcry_pk_get_nbits): this new one.
536
537 Wed Dec  8 21:58:32 CET 1999  Werner Koch  <wk@gnupg.de>
538
539         * dsa.c: s/mpi_powm/gcry_mpi_powm/g
540         * elgamal.c: Ditto.
541         * primegen.c: Ditto.
542
543         * : Replaced g10_opt_verbose by g10_log_verbosity().
544
545         * Makefile.am (INCLUDES): removed intl, add ../gcrypt
546
547 Fri Nov 19 17:15:20 CET 1999  Werner Koch  <wk@gnupg.de>
548
549         * dynload.c (cmp_filenames): New to replaced compare_filename() in
550         module.
551         (register_cipher_extension): Removed the tilde expansion stuff.
552         * rndeg.c (my_make_filename): New.
553
554         * : Replaced header util.h by g10lib.h
555
556         * random.c (gather_faked): Replaced make_timestamp by time(2).
557         Disabled wrning printed with tty_printf.
558         * rndlinux.c (gather_random): Always use fprintf instead of tty_xxx;
559         this should be replaced by a callback function.
560
561         * primegen.c (gen_prime): Use gcry_mpi_randomize.
562         (is_prime): Ditto.
563         * elgamal.c (test_keys): Ditto.
564         * dsa.c (test_keys): Ditto.
565
566         * cipher.c (gcry_cipher_close): Die on invalid handle.
567
568 Mon Nov 15 21:36:02 CET 1999  Werner Koch  <wk@gnupg.de>
569
570         * elgamal.c (gen_k): Use the new random API.
571         (generate): Ditto.
572         * dsa.c (gen_k): Ditto.
573         (generate): Ditto.
574
575 Sat Nov 13 17:44:23 CET 1999  Werner Koch  <wk@gnupg.de>
576
577         * pubkey.c (disable_pubkey_algo): Made static.
578         (gcry_pk_ctl): New.
579
580         * random.c (get_random_bits): Renamed to ...
581         (get_random_bytes): ... this and made static.
582         (gcry_random_bytes): New.
583         (gcry_random_bytes_secure): New.
584         (randomize_buffer): Renamed to ...
585         (gcry_randomize): ...this.
586
587         * md.c (gcry_md_hash_buffer): New.
588
589         * pubkey.c (gcry_pk_algo_info): 4 new commands.
590         (pubkey_get_npkey): Made static.
591         (pubkey_get_nskey): Made static.
592         (pubkey_get_nsig): Made static.
593         (pubkey_get_nenc): Made static.
594
595         * pubkey.c: Removed all G10ERR_xxx.
596         * cipher.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_CIPHER_ALGO.
597         * md.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_MD_ALGO.
598         * cast5.c (cast_setkey): Changed errocodes to GCRYERR_xxx.
599         * blowfish.c: Ditto.
600         * des.c: Ditto.
601         * twofish.c: Ditto.
602         * dsa.c: Ditto.
603         * elgamal.c: Ditto.
604
605         * g10c.c: Removed
606
607         * cipher.c (gcry_cipher_open): Replaced alloc functions and return NULL
608         if we are out of core.
609         * dynload.c: Replaced all memory allocation functions.
610         * md.c: Ditto.
611         * primegen.c: Ditto.
612         * pubkey.c: Ditto.
613         * random.c: Ditto.
614         * rndw32.c: Ditto.
615         * elgamal.c: Ditto.
616         * dsa.c: Ditto.
617
618 Tue Oct 26 14:10:21 CEST 1999  Werner Koch  <wk@gnupg.de>
619
620         * elgamal.c (sign): Hugh found strange code here. Replaced by BUG().
621
622         * cipher.c: Merged with gcrypt/symapi.c.
623
624         * pubkey.c (string_to_pubkey_algo): Renamed function to ...
625         (gcry_pk_map_name): ... this.
626         (pubkey_algo_to_string): Renamed function to ...
627         (gcry_pk_algo_name): ... this.
628         (gcry_pk_algo_info): New.
629         * pubkey.c: Merged with gcrypt/pkapi.c.
630
631         * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
632         fixing this bug.
633
634         * md.c: Merged with gcrypt/mdapi.c
635
636 Wed Sep 15 14:39:59 CEST 1999  Michael Roth <mroth@nessie.de>
637
638         * des.c: Various speed improvements: One bit pre rotation
639           trick after initial permutation (Richard Outerbridge).
640           Finished test of SSLeay Tripple-DES patterns.
641
642 Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
643
644         * rndw32.c: New.
645
646 Mon Sep 13 10:51:29 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
647
648         * bithelp.h: New.
649         * rmd160.h, sha1.h, md5.h: Use the rol macro from bithelp.h
650
651 Tue Sep  7 16:23:36 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
652
653         * Makefile.am: Fixed seds for latest egcc. By Ollivier Robert.
654
655 Mon Sep  6 19:59:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
656
657         * des.c (selftest): Add some testpattern
658
659 Mon Aug 30 20:38:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
660
661         * cipher.c (do_cbc_encrypt): Fixed serious bug occuring when not using
662         in place encryption. Pointed out by Frank Stajano.
663
664 Mon Jul 26 09:34:46 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
665
666         * md5.c (md5_final): Fix for a SCO cpp bug.
667
668 Thu Jul 15 10:15:35 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
669
670         * elgamal.c (elg_check_secret_key,elg_encrypt
671         elg_decrypt,elg_sign,elg_verify): Sanity check on the args.
672         * dsa.c (dsa_check_secret_key,dsa_sign,dsa_verify): Ditto.
673
674         * pubkey.c (disable_pubkey_algo): New.
675         (check_pubkey_algo2): Look at disabled algo table.
676         * cipher.c (disable_cipher_algo): New.
677         (check_cipher_algo): Look at disabled algo table.
678
679 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
680
681         * Makefile.am: Support for libtool.
682
683 Fri Jul  2 11:45:54 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
684
685         * dsa.c (gen_k): Changed algorithm to consume less random bytes
686         * elgamal.c (gen_k): Ditto.
687
688         * random.c (random_dump_stats): New.
689
690 Thu Jul  1 12:47:31 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
691
692         * primegen.c, elgamal.c, dsa.c (progess): New and replaced all
693         fputc with a call to this function.
694
695 Sat Jun 26 12:15:59 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
696
697         * rndegd.c (do_write): s/ssize_t/int/ due to SunOS 4.1 probs.
698
699         * cipher.c (do_cbc_encrypt, do_cbc_decrypt): New.
700
701         * dynload.c (HAVE_DL_SHL_LOAD): Map hpux API to dlopen (Dave Dykstra).
702         * Makefile.am (install-exec-hook): Removed.
703
704 Sun May 23 14:20:22 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
705
706         * cipher.c (setup_cipher_table): Enable Twofish
707
708         * random.c (fast_random_poll): Disable use of times() for mingw32.
709
710 Mon May 17 21:54:43 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
711
712         * dynload.c (register_internal_cipher_extension): Minor init fix.
713
714 Tue May  4 15:47:53 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
715
716         * primegen.c (gen_prime): Readded the Fermat test. Fixed the bug
717         that we didn't correct for step when passing the prime to the
718         Rabin-Miller test which led to bad performance (Stefan Keller).
719         (check_prime): Add a first Fermat test.
720
721 Sun Apr 18 10:11:28 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
722
723         * cipher.c (cipher_setiv): Add ivlen arg, changed all callers.
724
725         * random.c (randomize_buffer): alway use secure memory because
726         we can't use m_is_secure() on a statically allocated buffer.
727
728         * twofish.c: Replaced some macros by a loop to reduce text size.
729         * Makefile.am (twofish): No more need for sed editing.
730
731 Fri Apr  9 12:26:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
732
733         * cipher.c (cipher_open): Reversed the changes for AUTO_CFB.
734
735         * blowfish.c: Dropped the Blowfish 160 mode.
736         * cipher.c (cipher_open): Ditto.
737         (setup_cipher_table): Ditto.  And removed support of twofish128
738
739 Wed Apr  7 20:51:39 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
740
741         * random.c (get_random_bits): Can now handle requests > POOLSIZE
742
743         * cipher.c (cipher_open): Now uses standard CFB for automode if
744         the blocksize is gt 8 (according to rfc2440).
745
746         * twofish.c: Applied Matthew Skala's patches for 256 bit key.
747
748 Tue Apr  6 19:58:12 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
749
750         * random.c (get_random_bits): Can now handle requests > POOLSIZE
751
752         * cipher.c (cipher_open): Now uses standard CFB for automode if
753         the blocksize is gt 8 (according to rfc2440).
754
755 Sat Mar 20 11:44:21 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
756
757         * rndlinux.c (tty_printf) [IS_MODULE]: Removed.
758
759         * rndegd.c (gather_random): Some fixes.
760
761 Wed Mar 17 13:09:03 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
762
763         * rndegd.c (do_read): New.
764         (gather_random): Changed the implementation.
765
766 Mon Mar  8 20:47:17 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
767
768         * dynload.c (DLSYM_NEEDS_UNDERSCORE): Renamed.
769
770 Fri Feb 26 17:55:41 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
771
772         * md.c: Nearly a total rewrote.
773
774 Wed Feb 24 11:07:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
775
776         * cipher.c (context): Fixed alignment
777         * md.c: Ditto.
778
779         * rndegd.c: New
780
781 Mon Feb 22 20:04:00 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
782
783         * rndegd.c: New.
784
785 Wed Feb 10 17:15:39 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
786
787         * Makefile.am: Modules are now figured out by configure
788         * construct.c: New. Generated by configure. Changed all modules
789         to work with that.
790         * sha1.h: Removed.
791         * md5.h: Removed.
792
793         * twofish.c: Changed interface to allow Twofish/256
794
795         * rndunix.c (start_gatherer): Die on SIGPIPE.
796
797 Wed Jan 20 18:59:49 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
798
799         * rndunix.c (gather_random): Fix to avoid infinite loop.
800
801 Sun Jan 17 11:04:33 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
802
803         * des.c (is_weak_key): Replace system memcmp due to bugs
804         in SunOS's memcmp.
805         (des_get_info): Return error on failed selftest.
806         * twofish.c (twofish_setkey): Return error on failed selftest or
807         invalid keylength.
808         * cast5.c (cast_setkey): Ditto.
809         * blowfish.c (bf_setkey): Return error on failed selftest.
810
811 Tue Jan 12 11:17:18 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
812
813         * random.c (random_is_faked): New.
814
815         * tiger.c: Only compile if we have the u64 type
816
817 Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
818
819         * rndunix.c (gather_random): check for setuid.
820
821         * Makefile.am: Add a way to staically link random modules
822
823 Thu Jan  7 18:00:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
824
825         * md.c (md_stop_debug): Do a flush first.
826         (md_open): size of buffer now depends on the secure parameter
827
828 Sun Jan  3 15:28:44 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
829
830         * rndunix.c (start_gatherer): Fixed stupid ==/= bug
831
832 1998-12-31  Geoff Keating  <geoffk@ozemail.com.au>
833
834         * des.c (is_weak_key): Rewrite loop end condition.
835
836 Tue Dec 29 14:41:47 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
837
838         * random.c: add unistd.h for getpid().
839         (RAND_MAX): Fallback value for Sun.
840
841 Wed Dec 23 17:12:24 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
842
843         * md.c (md_copy): Reset debug.
844
845 Mon Dec 14 21:18:49 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
846
847         * random.c (read_random_source): Changed the interface to the
848         random gathering function.
849         (gather_faked): Use new interface.
850         * dynload.c (dynload_getfnc_fast_random_poll): Ditto.
851         (dynload_getfnc_gather_random): Ditto.
852         * rndlinux.c (gather_random): Ditto.
853         * rndunix.c (gather_random): Ditto.
854
855 Sat Dec 12 18:40:32 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
856
857         * dynload.c (SYMBOL_VERSION): New to cope with system which needs
858         underscores.
859
860         * rndunix.c: Rewrote large parts
861
862 Thu Dec 10 20:15:36 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
863
864         * dynload.c (load_extension): increased needed verbosity level.
865
866         * random.c (fast_random_poll): Fallback to a default fast random
867         poll function.
868         (read_random_source): Always use the faked entroy gatherer if no
869         gather module is available.
870         * rndlinux.c (fast_poll): Removed.
871         * rndunix.c (fast_poll): Removed.
872
873
874 Wed Nov 25 12:33:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
875
876         * rand-*.c: Removed.
877         * rndlinux.c : New.
878         * rndunix.c : New.
879         * random.c : Restructured the interface to the gather modules.
880         (intialize): Call constructor functions
881         (read_radnom_source): Moved to here.
882         * dynload.c (dynload_getfnc_gather_random): New.
883         (dynload_getfnc_fast_random_poll): New.
884         (register_internal_cipher_extension): New.
885         (register_cipher_extension): Support of internal modules.
886
887 Sun Nov  8 17:44:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
888
889         * rand-unix.c (read_random_source): Removed the assert.
890
891 Mon Oct 19 18:34:30 1998  me,,,  (wk@tobold)
892
893         * pubkey.c: Hack to allow us to give some info about RSA keys back.
894
895 Thu Oct 15 11:47:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
896
897         * dynload.c: Support for DLD
898
899 Wed Oct 14 12:13:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
900
901         * rand-unix.c: Now uses names from configure for /dev/random.
902
903 1998-10-10  SL Baur  <steve@altair.xemacs.org>
904
905         * Makefile.am: fix sed -O substitutions to catch -O6, etc.
906
907 Tue Oct  6 10:06:32 1998  Werner Koch  (wk@isil.d.shuttle.de)
908
909         * rand-unix.c (HAVE_GETTIMEOFDAY): Fixed (was ..GETTIMEOFTIME :-)
910         * rand-dummy.c (HAVE_GETTIMEOFDAY): Ditto.
911
912 Mon Sep 28 13:23:09 1998  Werner Koch  (wk@isil.d.shuttle.de)
913
914         * md.c (md_digest): New.
915         (md_reset): New.
916
917 Wed Sep 23 12:27:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
918
919         * tiger.c (TIGER_CONTEXT): moved "buf", so that it is 64 bit aligned.
920
921 Mon Sep 21 06:22:53 1998  Werner Koch  (wk@(none))
922
923         * des.c: Some patches from Michael.
924
925 Thu Sep 17 19:00:06 1998  Werner Koch  (wk@(none))
926
927         * des.c : New file from Michael Roth <mroth@nessie.de>
928
929 Mon Sep 14 11:10:55 1998  Werner Koch  (wk@(none))
930
931         * blowfish.c (bf_setkey): Niklas Hernaeus patch to detect weak keys.
932
933 Mon Sep 14 09:19:25 1998  Werner Koch  (wk@(none))
934
935         * dynload.c (RTLD_NOW): Now defined to 1 if it is undefined.
936
937 Mon Sep  7 17:04:33 1998  Werner Koch  (wk@(none))
938
939         * Makefile.am: Fixes to allow a different build directory
940
941 Thu Aug  6 17:25:38 1998  Werner Koch,mobil,,,  (wk@tobold)
942
943         * random.c (get_random_byte): Removed and changed all callers
944         to use get_random_bits()
945
946 Mon Jul 27 10:30:22 1998  Werner Koch  (wk@(none))
947
948         * cipher.c : Support for other blocksizes
949         (cipher_get_blocksize): New.
950         * twofish.c: New.
951         * Makefile.am: Add twofish module.
952
953 Mon Jul 13 21:30:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
954
955         * random.c (read_pool): Simple alloc if secure_alloc is not set.
956         (get_random_bits): Ditto.
957
958 Thu Jul  9 13:01:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
959
960         * dynload.c (load_extension): Function now nbails out if
961         the program is run setuid.
962
963 Wed Jul  8 18:58:23 1998  Werner Koch  (wk@isil.d.shuttle.de)
964
965         * rmd160.c (rmd160_hash_buffer): New.
966
967 Thu Jul  2 10:50:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
968
969         * cipher.c (cipher_open): algos >=100 use standard CFB
970
971 Thu Jun 25 11:18:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
972
973         * Makefile.am: Support for extensions
974
975 Thu Jun 18 12:09:38 1998  Werner Koch  (wk@isil.d.shuttle.de)
976
977         * random.c (mix_pool): simpler handling for level 0
978
979 Mon Jun 15 14:40:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
980
981         * tiger.c: Removed from dist, will reappear as dynload module
982
983 Sat Jun 13 14:16:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
984
985         * pubkey.c: Major changes to allow extensions. Changed the inteface
986         of all public key ciphers and added the ability to load extensions
987         on demand.
988
989         * misc.c: Removed.
990
991 Wed Jun 10 07:52:08 1998  Werner Koch,mobil,,,  (wk@tobold)
992
993         * dynload.c: New.
994         * cipher.c: Major changes to allow extensions.
995
996 Mon Jun  8 22:43:00 1998  Werner Koch  (wk@isil.d.shuttle.de)
997
998         * cipher.c: Major internal chnages to support extensions.
999         * blowfish.c (blowfish_get_info): New and made all internal
1000         functions static, changed heder.
1001         * cast5.c (cast5_get_info): Likewise.
1002
1003 Mon Jun  8 12:27:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
1004
1005         * tiger.c (transform): Fix for big endian
1006
1007         * cipher.c (do_cfb_decrypt): Big endian fix.
1008
1009 Fri May 22 07:30:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
1010
1011         * md.c (md_get_oid): Add a new one for TIGER.
1012
1013 Thu May 21 13:24:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
1014
1015         * cipher.c: Add support for a dummy cipher
1016
1017 Thu May 14 15:40:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
1018
1019         * rmd160.c (transform): fixed sigbus - I should better
1020         add Christian von Roques's new implemenation of rmd160_write.
1021
1022 Fri May  8 18:07:44 1998  Werner Koch  (wk@isil.d.shuttle.de)
1023
1024         * rand-internal.h, rand-unix.c, rand-w32.c, rand_dummy.c: New
1025         * random.c: Moved system specific functions to rand-****.c
1026
1027 Fri May  8 14:01:17 1998  Werner Koch  (wk@isil.d.shuttle.de)
1028
1029         * random.c (fast_random_poll): add call to gethrtime.
1030
1031 Tue May  5 21:28:55 1998  Werner Koch  (wk@isil.d.shuttle.de)
1032
1033         * elgamal.c (elg_generate): choosing x was not correct, could
1034         yield 6 bytes which are not from the random pool, tsss, tsss..
1035
1036 Tue May  5 14:09:06 1998  Werner Koch  (wk@isil.d.shuttle.de)
1037
1038         * primegen.c (generate_elg_prime): Add arg mode, changed all
1039         callers and implemented mode 1.
1040
1041 Mon Apr 27 14:41:58 1998  Werner Koch  (wk@isil.d.shuttle.de)
1042
1043         * cipher.c (cipher_get_keylen): New.
1044
1045 Sun Apr 26 14:44:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
1046
1047         * tiger.c, tiger.h: New.
1048
1049 Wed Apr  8 14:57:11 1998  Werner Koch  (wk@isil.d.shuttle.de)
1050
1051         * misc.c (check_pubkey_algo2): New.
1052
1053 Tue Apr  7 18:46:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
1054
1055         * cipher.c: New
1056         * misc.c (check_cipher_algo): Moved to cipher.c
1057         * cast5.c: Moved many functions to cipher.c
1058         * blowfish.c: Likewise.
1059
1060 Sat Apr  4 19:52:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
1061
1062         * cast5.c: Implemented and tested.
1063
1064 Wed Apr  1 16:38:27 1998  Werner Koch  (wk@isil.d.shuttle.de)
1065
1066         * elgamal.c (elg_generate): Faster generation of x in some cases.
1067
1068 Thu Mar 19 13:54:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
1069
1070         * blowfish.c (blowfish_decode_cfb): changed XOR operation
1071         (blowfish_encode_cfb): Ditto.
1072
1073 Thu Mar 12 14:04:05 1998  Werner Koch  (wk@isil.d.shuttle.de)
1074
1075         * sha1.c (transform): Rewrote
1076
1077         * blowfish.c (encrypt): Unrolled for rounds == 16
1078         (decrypt): Ditto.
1079
1080 Tue Mar 10 16:32:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
1081
1082         * rmd160.c (transform): Unrolled the loop.
1083
1084 Tue Mar 10 13:05:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
1085
1086         * random.c (read_pool): Add pool_balance stuff.
1087         (get_random_bits): New.
1088
1089         * elgamal.c (elg_generate): Now uses get_random_bits to generate x.
1090
1091
1092 Tue Mar 10 11:33:51 1998  Werner Koch  (wk@isil.d.shuttle.de)
1093
1094         * md.c (md_digest_length): New.
1095
1096 Tue Mar 10 11:27:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
1097
1098         * dsa.c (dsa_verify): Works.
1099
1100 Mon Mar  9 12:59:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
1101
1102         * dsa.c, dsa.h: Removed some unused code.
1103
1104 Wed Mar  4 10:39:22 1998  Werner Koch  (wk@isil.d.shuttle.de)
1105
1106         * md.c (md_open): Add call to fast_random_poll.
1107         blowfish.c (blowfish_setkey): Ditto.
1108
1109 Tue Mar  3 13:32:54 1998  Werner Koch  (wk@isil.d.shuttle.de)
1110
1111         * rmd160.c (rmd160_mixblock): New.
1112         * random.c: Restructured to start with a new RNG implementation.
1113         * random.h: New.
1114
1115 Mon Mar  2 19:21:46 1998  Werner Koch  (wk@isil.d.shuttle.de)
1116
1117         * gost.c, gost.h: Removed because they did only conatin trash.
1118
1119 Sun Mar  1 16:42:29 1998  Werner Koch  (wk@isil.d.shuttle.de)
1120
1121         * random.c (fill_buffer): removed error message if n == -1.
1122
1123 Fri Feb 27 16:39:34 1998  Werner Koch  (wk@isil.d.shuttle.de)
1124
1125         * md.c (md_enable): No init if called twice.
1126
1127 Thu Feb 26 07:57:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
1128
1129         * primegen.c (generate_elg_prime): Changed the progress printing.
1130         (gen_prime): Ditto.
1131
1132 Tue Feb 24 12:28:42 1998  Werner Koch  (wk@isil.d.shuttle.de)
1133
1134         * md5.c, md.5 : Replaced by a modified version of md5.c from
1135         GNU textutils 1.22.
1136
1137 Wed Feb 18 14:08:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
1138
1139         * md.c, md.h : New debugging support
1140
1141 Mon Feb 16 10:08:47 1998  Werner Koch  (wk@isil.d.shuttle.de)
1142
1143         * misc.c (cipher_algo_to_string): New
1144         (pubkey_algo_to_string): New.
1145         (digest_algo_to_string): New.
1146
1147
1148  Copyright 1998,1999,2000,2001 Free Software Foundation, Inc.
1149
1150  This file is free software; as a special exception the author gives
1151  unlimited permission to copy and/or distribute it, with or without
1152  modifications, as long as this notice is preserved.
1153
1154  This file is distributed in the hope that it will be useful, but
1155  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1156  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.