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