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