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