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