1 2003-09-04 David Shaw <dshaw@jabberwocky.com>
3 * md.c (string_to_digest_algo): Enable read-write SHA-256 support.
5 * algorithms.h, Makefile.am, md.c (load_digest_module,
6 string_to_digest_algo), tiger.c: Drop TIGER/192 support.
8 2003-08-28 David Shaw <dshaw@jabberwocky.com>
10 * idea-stub.c, random.c; s/__MINGW32__/_WIN32/ to help building on
11 native Windows compilers. Requested by Brian Gladman. From
12 Werner on stable branch.
14 2003-08-21 David Shaw <dshaw@jabberwocky.com>
16 * random.c (getfnc_gather_random): Don't check NAME_OF_DEV_RANDOM
17 twice. Use NAME_OF_DEV_URANDOM.
19 2003-05-24 David Shaw <dshaw@jabberwocky.com>
21 * bithelp.h, des.c, random.c, rndlinux.c, sha1.c, blowfish.c,
22 elgamal.c, rijndael.c, rndunix.c, sha256.c, cast5.c, idea-stub.c,
23 rmd160.c, rndw32.c, sha512.c, md5.c, rmd160test.c, rsa.c, tiger.c:
24 Edit all preprocessor instructions to remove whitespace before the
25 '#'. This is not required by C89, but there are some compilers
26 out there that don't like it.
28 2003-05-15 David Shaw <dshaw@jabberwocky.com>
30 * cipher.c (setup_cipher_table): #ifdef IDEA.
32 * random.c (fast_random_poll): Only use times() if we HAVE_TIMES.
34 * sha512.c, tiger.c: Use the U64_C() macro to specify 64-bit
35 constants. U64_C is defined in include/types.h and uses the
36 correct suffix depending on the underlying type of u64.
38 * idea-stub.c (load_module): Catch an error if the idea module
39 file is unloadable for some reason (unreadable, bad permissions,
42 * md.c (string_to_digest_algo): Give a warning about TIGER192 not
43 being part of OpenPGP.
45 2003-04-15 Werner Koch <wk@gnupg.org>
47 * md.c (md_start_debug): Need to open the file in binary mode.
49 2003-02-21 David Shaw <dshaw@jabberwocky.com>
51 * cipher.c (setup_cipher_table): #ifdef all optional ciphers.
53 * md.c (load_digest_module): #ifdef all optional digests.
55 2003-02-11 David Shaw <dshaw@jabberwocky.com>
57 * Makefile.am, md.c (load_digest_module): Only build in SHA384/512
58 and TIGER if specifically enabled by the 64-bit type check in
61 2003-02-04 David Shaw <dshaw@jabberwocky.com>
63 * sha256.c, sha512.c: New.
65 * Makefile.am, algorithms.h, md.c (load_digest_module,
66 string_to_digest_algo): Add read-only support for the new SHAs.
68 2002-11-06 David Shaw <dshaw@jabberwocky.com>
70 * rndw32.c [__CYGWIN32__]: Don't include winioctl.h - it is not
71 required anymore. (From Werner)
73 * random.c (read_seed_file,update_random_seed_file): Use binary
74 mode for __CYGWIN__. (From Werner)
76 * blowfish.c (burn_stack), cast5.c (burn_stack), des.c
77 (burn_stack), md5.c (burn_stack), random.c (burn_stack, read_pool,
78 fast_random_poll), rijndael.c (burn_stack), rmd160.c (burn_stack),
79 rndegd.c (rndegd_gather_random), rndlinux.c
80 (rndlinux_gather_random), sha1.c (burn_stack), tiger.c
81 (burn_stack), twofish.c (burn_stack): Replace various calls to
82 memset() with the more secure wipememory().
84 2002-11-02 David Shaw <dshaw@jabberwocky.com>
86 * cipher.c (string_to_cipher_algo), md.c (string_to_digest_algo):
87 Allow the Sxxx and Hxxx format for cipher and digest names.
89 2002-10-31 Stefan Bellon <sbellon@sbellon.de>
91 * rndriscos.c (rndriscos_gather_random): Use riscos_load_module()
92 to load CryptRandom module.
94 2002-10-12 Werner Koch <wk@gnupg.org>
96 * rndunix.c (my_popen): Make sure that stdin and stderr are
97 connected to a file. This is to avoid NetBSD to complain about
98 set{u,g}id programs invoked with fd 0, 2 closed. Reported by
100 (start_gatherer): Likewise. Reordered code.
102 2002-10-02 David Shaw <dshaw@jabberwocky.com>
104 * tiger.c (tiger_get_info): Select the OID to use for TIGER at
107 2002-09-27 David Shaw <dshaw@jabberwocky.com>
109 * Makefile.am, md.c (load_digest_module): TIGER is now always
112 2002-09-26 Werner Koch <wk@gnupg.org>
114 * tiger.c (tiger_get_info): Use a regular OID. Note that this
115 breaks all TIGER generated signatures; if we want to do something
116 about it we have to do it in ../g10/sig-check.c .
118 2002-09-17 Werner Koch <wk@gnupg.org>
120 * rndw32.c (SIZEOF_DISK_PERFORMANCE_STRUCT): Increased to 256.
122 2002-09-12 Stefan Bellon <sbellon@sbellon.de>
124 * rand-internal.h (rndriscos_gather_random): Added prototype.
126 2002-08-30 Werner Koch <wk@gnupg.org>
128 * random.c: Automagically detect the entropy gatherer when
129 this feature is configured.
130 * rndegd.c (rndegd_connect_socket): New. Factored out from ..
131 (rndegd_gather_random): here and call it.
132 (do_read): Update the counter variables correctly. This was not a
133 problem due to the way EGD works. Bug found by Christian Biere.
135 2002-08-20 Werner Koch <wk@gnupg.org>
137 * primegen.c (generate_elg_prime): Return all factors for mode 1.
138 Bug reported by Bob Mathews.
140 2002-08-12 Werner Koch <wk@gnupg.org>
142 * cipher.c: Include the DUMMY cipher only when the new ALLOW_DUMMY
143 is defined. It should only be defined for hard core debugging.
145 2002-08-08 David Shaw <dshaw@jabberwocky.com>
147 * Makefile.am, md.c (load_digest_module): Allow switching TIGER on
148 and off via configure.
150 2002-08-07 David Shaw <dshaw@jabberwocky.com>
152 * md.c (md_algo_present): New function to check if a given algo is
153 in use for a given MD_HANDLE.
155 2002-08-04 Werner Koch <wk@gnupg.org>
157 * blowfish.h, cast5.h, des.h: Removed after moving all prototypes to
158 * algorithms.h: here. Changed all sources to use this one.
160 2002-08-03 Stefan Bellon <sbellon@sbellon.de>
162 * idea-stub.c (idea_get_info): RISC OS' Norcroft C needs a cast.
163 * random.c (getfnc_gather_random): Added RISC OS support.
164 * rndriscos.c: Removed dynload code and tidied up a bit.
166 2002-08-03 Werner Koch <wk@gnupg.org>
168 * rndegd.c (do_read): Handle case when read returns 0 to avoid
169 gpg hanging when EGD died. By Christian Biere.
171 2002-08-02 Werner Koch <wk@gnupg.org>
173 The big extension removal.
175 * Makefile.am: Removed all extension stuff.
176 * dynload.c: Removed everything except for
177 register_cipher_extension.
178 (dynload_enum_module_names): New.
179 * dynload.h: Removed.
180 * random.c (getfnc_gather_random,getfnc_fast_random_poll):
181 New. Replaced all dynload functions with these ones.
182 * rndunix.c (rndunix_gather_random): Renamed from
183 gather_random. Made global. Removed all dynload stuff.
184 * rndlinux.c (rndlinux_gather_random): Likewise.
185 * rndegd.c (rndegd_gather_random): Likewise.
186 * rndw32.c (rndw32_gather_random)
187 (rndw32_gather_random_fast): Likewise. Also removed the unsued
189 * md.c (new_list_item): Changed return value to indicate whether
190 an algorithms was loaded.
191 (load_digest_module): Simplified by removing all the dynload code.
193 * md5.c (md5_get_info): Made global. Removed all dynload stuff.
194 * rmd160.c (rmd160_get_info): Likewise.
195 * sha1.c (sha1_get_info): Likewise.
196 * tiger.c (tiger_get_info): Likewise. Return NULL if we can't use
199 * blowfish.h (idea_get_info): Add prototype.
200 * cipher.c (setup_cipher_table): Try to load IDEA.
201 (load_cipher_modules): Removed all dynload code.
202 * pubkey.c (load_pubkey_modules): Removed the dynloading code.
204 2002-07-25 David Shaw <dshaw@jabberwocky.com>
206 * random.c: "warning" -> "WARNING"
208 2002-07-02 Werner Koch <wk@gnupg.org>
210 * rndw32.c (slow_gatherer_windowsNT): Use a simple array for the
211 disk performance structure and increase it to the size required by
214 2002-06-29 Werner Koch <wk@gnupg.org>
216 * rndlinux.c: Removed HAVE_LINUX_RANDOM_H conditional because it
217 was never used and the configure test did set the wrong macro
220 2002-05-07 Stefan Bellon <sbellon@sbellon.de>
222 * md.c (md_start_debug): Use EXTSEP_S instead of ".".
224 2002-04-24 Werner Koch <wk@gnupg.org>
226 * tiger.c (tiger_final): Removed superfluous token pasting operators.
227 * md5.c (md5_final): Ditto.
229 2002-04-22 Stefan Bellon <sbellon@sbellon.de>
231 * rndriscos.c (func_table): Made func a function pointer.
232 (init_device): Improved loading of CryptRandom module.
234 2002-04-18 Werner Koch <wk@gnupg.org>
236 * rndlinux.c, rndegd.c, rndunix.c (func_table): Made func a
237 function pointer. Note that we still need to change the module
238 interface to cope with data vs function pointer problems. Hmmm,
239 even dlsym has a problem with this.
241 2002-04-10 David Shaw <dshaw@jabberwocky.com>
243 * cipher.c (setup_cipher_table, cipher_open, cipher_encrypt,
244 cipher_decrypt, dummy_setkey, dummy_encrypt_block,
245 dummy_decrypt_block): the dummy cipher should only be built on
246 development versions.
248 2002-04-06 Werner Koch <wk@gnupg.org>
250 * rijndael.c (rijndael_get_info): We do only support a 128 bit
251 blocksize so it makes sense to change the algorithm strings to
253 * cipher.c (string_to_cipher_algo): Map "RIJNDAEL" to "AES".
255 2002-02-14 Werner Koch <wk@gnupg.org>
257 * random.c (mix_pool): Removed the failsafe stuff again. It makes
258 the code more complicate and may give the path to more bugs.
260 2002-02-10 Werner Koch <wk@gnupg.org>
262 * random.c (mix_pool): Carry an extra failsafe_digest buffer
263 around to make the function more robust.
265 2002-02-08 Werner Koch <wk@gnupg.org>
267 * random.c (add_randomness): Xor new data into the pool and not
268 just copy it. This avoids any choosen input attacks which are not
269 serious in our setting because an outsider won't be able to mix
270 data in and even then we keep going with a PRNG. Thanks to Stefan
271 Keller for pointing this out.
273 2002-01-02 Stefan Bellon <sbellon@sbellon.de>
275 * rndriscos.c [__riscos__]: Updated include file name.
277 2001-12-21 Werner Koch <wk@gnupg.org>
279 * Makefile.am (DISCLEANFILES): Add construct.c
281 2001-12-19 Werner Koch <wk@gnupg.org>
283 * rndw32.c [CYGWIN32]: Include winioctl.h. By Disastry.
285 2001-11-08 Werner Koch <wk@gnupg.org>
287 * primegen.c (gen_prime): Set 2 high order bits for secret primes.
288 * rsa.c (generate): Loop until we find the exact modulus size.
289 Changed the exponent to 41.
291 2001-10-22 Werner Koch <wk@gnupg.org>
293 * Makefile.am: Need to use $(EXEEXT) where approriate.
295 2001-09-09 Werner Koch <wk@gnupg.org>
297 * rsa.c (rsa_get_info): s/usage/r_usage/ to avoid shadow warnings.
299 2001-08-24 Werner Koch <wk@gnupg.org>
301 * md.c (md_write): Made buf arg const.
303 2001-08-22 Werner Koch <wk@gnupg.org>
305 * random.c (fast_random_poll): Don't use gethrtime if it is broken.
307 2001-08-20 Werner Koch <wk@gnupg.org>
309 Applied patches from Stefan Bellon <sbellon@sbellon.de> to support
310 RISC OS. Nearly all of these patches are identified by the
312 * blowfish.c, twofish.c: Added pragmas for use with a Norcraft
314 * dynload.c, md5.c, rmd160.c, sha1.c: Minor patches for RISC OS.
316 * rnd-internal.h: Added prototype.
317 * random.c (fast_random_poll): Use '#if defined' instead of just
318 'defined'; needed for RISC OS.
319 * primegen.c (gen_prime): count? are now ints for consistence
322 2001-08-08 Werner Koch <wk@gnupg.org>
324 * rndw32.c (gather_random): Use toolhelp in addition to the NT
325 gatherer for Windows2000. Suggested by Sami Tolvanen.
327 * random.c (read_pool): Fixed length check, this used to be one
328 byte to strict. Made an assert out of it because the caller has
329 already made sure that only poolsize bytes are requested.
330 Reported by Marcus Brinkmann.
332 2001-07-18 Werner Koch <wk@gnupg.org>
334 * rndlinux.c (gather_random): casted a size_t arg to int so that
335 the format string is correct. Casting is okay here and avoids
338 2001-06-12 Werner Koch <wk@gnupg.org>
340 * cipher.c (string_to_cipher_algo): Use ascii_strcasecmp().
341 * md.c (string_to_digest_algo): Ditto.
342 * pubkey.c (string_to_pubkey_algo): Ditto.
343 * rndw32.c (slow_gatherer_windowsNT): Ditto. Not really needed
346 2001-04-29 Werner Koch <wk@gnupg.org>
348 * random.c (fast_random_poll): Do not check the return code of
351 2001-04-17 Werner Koch <wk@gnupg.org>
353 * rndunix.c: Add a signal.h header to avoid warnings on Solaris 7
356 2001-04-16 Werner Koch <wk@gnupg.org>
358 * dynload.c [__MINGW32__]: Applied patch from Timo Schulz to make
359 it work under W32. This patches is based on the one from
362 2001-04-06 Werner Koch <wk@gnupg.org>
364 * rijndael.c, des.c, blowfish.c, twofish.c, cast5.c (burn_stack):
365 New. Add wrappers for most functions to be able to call
366 burn_stack after the function invocation. This methods seems to be
367 the most portable way to zeroise the stack used. It does only work
368 on stack frame based machines but it is highly portable and has no
369 side effects. Just setting the automatic variables at the end of
370 a function to zero does not work well because the compiler will
371 optimize them away - marking them as volatile would be bad for
373 * md5.c, sha1.c, rmd160.c, tiger.c (burn_stack): Likewise.
374 * random.c (burn_stack): New.
375 (mix_pool): Use it here to burn the stack of the mixblock function.
377 2001-04-02 Werner Koch <wk@gnupg.org>
379 * primegen.c (generate_elg_prime): I was not initialized for mode
380 != 1. Freed q at 3 places. Thanks to Tommi Komulainen.
382 2001-03-28 Werner Koch <wk@gnupg.org>
384 * md5.c (md5_final): Fixed calculation of hashed length. Thanks
385 to disastry@saiknes.lv for pointing out that it was horrible wrong
386 for more than 512MB of input.
387 * sha1.c (sha1_final): Ditto.
388 * rmd160.c (rmd160_final): Ditto.
389 * tiger.c (tiger_final): Ditto.
391 2001-03-19 Werner Koch <wk@gnupg.org>
393 * blowfish.c (encrypt,do_encrypt): Changed name to do_encrypt to
394 avoid name clahses with an encrypt function in stdlib.h of
395 Dynix/PIX. Thanks to Gene Carter.
396 * elgamal.c (encrypt,do_encrypt): Ditto.
398 2001-03-12 Werner Koch <wk@gnupg.org>
400 * twofish.c (gnupgext_enum_func): Add some static when comnpiled
403 * tiger.c (tiger_get_info): Return "TIGER192" and not just
404 "TIGER". By Edwin Woudt.
406 2001-03-08 Werner Koch <wk@gnupg.org>
408 * random.c: Always include time.h - standard requirement. Thanks
411 2001-01-18 Werner Koch <wk@gnupg.org>
413 * rndw32.c: Fixed typo and wrong ifdef for VER_PLATFORM* macro
415 2001-01-12 Werner Koch <wk@gnupg.org>
417 * cipher.c (cipher_encrypt,cipher_encrypt): Use blocksize and
418 not 8 for CBC mode (However: we don't use CBS in OpenPGP).
420 2000-11-22 Werner Koch <wk@gnupg.org>
422 * rndegd.c (gather_random): Fixed default socket to be '=entropy'.
423 Thanks to Tomasz Kozlowski.
425 2000-10-12 Werner Koch <wk@gnupg.org>
428 * cipher.c: Add Rijndael support.
430 Wed Oct 4 15:50:18 CEST 2000 Werner Koch <wk@openit.de>
432 * sha1.c (transform): Use rol() macro. Actually this is not needed
433 for a newer gcc but there are still aoter compilers.
435 Thu Sep 14 14:20:38 CEST 2000 Werner Koch <wk@openit.de>
437 * random.c (fast_random_poll): Check ENOSYS for getrusage.
438 * rndunix.c: Add 2 sources for QNX. By Sam Roberts.
440 Wed Sep 13 18:12:34 CEST 2000 Werner Koch <wk@openit.de>
442 * rsa.c (secret): Speed up by using the CRT. For a 2k keys this
443 is about 3 times faster.
444 (stronger_key_check): New but unused code to check the secret key.
446 Wed Sep 6 17:55:47 CEST 2000 Werner Koch <wk@openit.de>
448 * rsa.c: Changed the comment about the patent.
449 * Makefile.am: Included rsa.[ch].
450 * pubkey.c: Enabled RSA support.
451 (pubkey_get_npkey): Removed RSA workaround.
453 Fri Aug 25 16:05:38 CEST 2000 Werner Koch <wk@openit.de>
455 * rndlinux.c (open_device): Loose random device checking.
458 * rndegd.c (gather_random): Name of socket is nom configurable.
460 Wed Jun 28 11:54:44 CEST 2000 Werner Koch <wk@>
462 * rsa.c, rsa.h: New based on the old module version (only in CVS for now).
463 * pubkey.c (setup_pubkey_table): Added commented support for RSA.
465 Fri Jun 9 10:09:52 CEST 2000 Werner Koch <wk@openit.de>
467 * rndunix.c (waitpid): New. For UTS 2.1. All by Dave Dykstra.
468 (my_popen): Do the FD_CLOEXEC only if it is available
469 (start_gatherer): Cope with missing _SC_OPEN_MAX
471 Sun May 28 13:55:17 CEST 2000 Werner Koch <wk@openit.de>
473 * random.c (read_seed_file): Binary open for DOSish system
474 (update_random_seed_file): Ditto.
476 * rndw32.c: Add some debuging code enabled by an environment variable.
478 Tue May 23 09:19:00 CEST 2000 Werner Koch <wk@openit.de>
480 * rndw32.c: Started with alternative code to replace entropy.dll
482 Thu May 18 11:38:54 CEST 2000 Werner Koch <wk@openit.de>
484 * primegen.c (register_primegen_progress): New.
485 * dsa.c (register_pk_dsa_progress): New.
486 * elgamal.c (register_pk_elg_progress): New.
488 Fri Apr 14 19:37:08 CEST 2000 Werner Koch <wk@openit.de>
490 * twofish.c (twofish_get_info): Fixed warning about cast.
492 Tue Mar 28 14:26:58 CEST 2000 Werner Koch <wk@openit.de>
494 * random.c [MINGW32]: Include process.h for getpid.
496 Thu Mar 2 15:37:46 CET 2000 Werner Koch <wk@gnupg.de>
498 * random.c (fast_random_poll): Add clock_gettime() as fallback for
499 system which support this POSIX.4 fucntion. By Sam Roberts.
501 * rndunix.c: Add some more headers for QNX. By Sam Roberts.
503 * random.c (read_seed_file): Removed the S_ISLNK test becuase it
504 is already covered by !S_ISREG and is not defined in Unixware.
505 Reported by Dave Dykstra.
507 * sha1.c (sha1_get_info): Removed those stupid double lines. Dave
508 is really a good lint.
510 Wed Feb 23 10:07:57 CET 2000 Werner Koch <wk@gnupg.de>
512 * twofish.c (twofish_get_info): Add some const to the casts. By Martin
515 Mon Feb 14 14:30:20 CET 2000 Werner Koch <wk@gnupg.de>
517 (update_random_seed_file): Silently ignore update request when pool
520 Fri Feb 11 17:44:40 CET 2000 Werner Koch <wk@gnupg.de>
522 * random.c (read_seed_file): New.
523 (set_random_seed_file): New.
524 (read_pool): Try to read the seeding file.
525 (update_random_seed_file): New.
527 (read_pool): Do an initial extra seeding when level 2 quality random
528 is requested the first time. This requestes at least POOLSIZE/2 bytes
529 of entropy. Compined with the seeding file this should make normal
530 random bytes cheaper and increase the quality of the random bytes
531 used for key generation.
533 * rndegd.c (gather_random): Shortcut level 0.
534 * rndunix.c (gather_random): Ditto.
535 * rndw32.c (gather_random): Ditto.
537 Fri Jan 14 18:32:01 CET 2000 Werner Koch <wk@gnupg.de>
539 * rmd160.c (rmd160_get_info): Moved casting to the left side due to a
540 problem with UTS4.3. Suggested by Dave Dykstra.
541 * sha1.c (sha1_get_info): Ditto.
542 * tiger.c (tiger_get_info): Ditto.
543 * md5.c (md5_get_info): Ditto
544 * des.c (des_get_info): Ditto.
545 * blowfish.c (blowfish_get_info): Ditto.
546 * cast5.c (cast5_get_info): Ditto.
547 * twofish.c (twofish_get_info): Ditto.
549 Thu Jan 13 19:31:58 CET 2000 Werner Koch <wk@gnupg.de>
551 * elgamal.c (wiener_map): New.
552 (gen_k): Use a much smaller k.
553 (generate): Calculate the qbits using the wiener map and
554 choose an x at a size comparable to the one choosen in gen_k
556 * random.c (read_pool): Print a more friendly error message in
557 cases when too much random is requested in one call.
559 * Makefile.am (tiger): Replaced -O1 by -O. Suggested by Alec Habig.
561 Sat Dec 4 12:30:28 CET 1999 Werner Koch <wk@gnupg.de>
563 * primegen.c (generate_elg_prime): All primes are now generated with
564 the lowest random quality level. Becuase they are public anyway we
565 don't need stronger random and by this we do not drain the systems
568 Thu Oct 28 16:08:20 CEST 1999 Werner Koch <wk@gnupg.de>
570 * random.c (fast_random_poll): Check whether RUSAGE_SELF is defined;
571 this is not the case for some ESIX and Unixware, although they have
574 * elgamal.c (sign): Hugh found strange code here. Replaced by BUG().
576 Mon Oct 11 09:24:12 CEST 1999 Werner Koch <wk@gnupg.de>
578 * rndw32.c (gather_random): Handle PCP_SEEDER_TOO_SMALL.
580 Sat Oct 9 20:34:41 CEST 1999 Werner Koch <wk@gnupg.de>
582 * Makefile.am: Tweaked module build and removed libtool
584 Fri Oct 8 20:32:01 CEST 1999 Werner Koch <wk@gnupg.de>
586 * rndw32.c (load_and_init_winseed): Use the Registry to locate the DLL
588 Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de>
590 * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
593 Sat Sep 18 12:51:51 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
595 * Makefile.am: Never compile mingw32 as module
597 Wed Sep 15 14:39:59 CEST 1999 Michael Roth <mroth@nessie.de>
599 * des.c: Various speed improvements: One bit pre rotation
600 trick after initial permutation (Richard Outerbridge).
601 Finished test of SSLeay Tripple-DES patterns.
603 Wed Sep 15 16:22:17 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
607 Mon Sep 13 10:51:29 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
610 * rmd160.h, sha1.h, md5.h: Use the rol macro from bithelp.h
612 Tue Sep 7 16:23:36 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
614 * Makefile.am: Fixed seds for latest egcc. By Ollivier Robert.
616 Mon Sep 6 19:59:08 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
618 * des.c (selftest): Add some testpattern
620 Mon Aug 30 20:38:33 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
622 * cipher.c (do_cbc_encrypt): Fixed serious bug occuring when not using
623 in place encryption. Pointed out by Frank Stajano.
625 Mon Jul 26 09:34:46 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
627 * md5.c (md5_final): Fix for a SCO cpp bug.
629 Thu Jul 15 10:15:35 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
631 * elgamal.c (elg_check_secret_key,elg_encrypt
632 elg_decrypt,elg_sign,elg_verify): Sanity check on the args.
633 * dsa.c (dsa_check_secret_key,dsa_sign,dsa_verify): Ditto.
635 * pubkey.c (disable_pubkey_algo): New.
636 (check_pubkey_algo2): Look at disabled algo table.
637 * cipher.c (disable_cipher_algo): New.
638 (check_cipher_algo): Look at disabled algo table.
640 Wed Jul 7 13:08:40 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
642 * Makefile.am: Support for libtool.
644 Fri Jul 2 11:45:54 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
646 * dsa.c (gen_k): Changed algorithm to consume less random bytes
647 * elgamal.c (gen_k): Ditto.
649 * random.c (random_dump_stats): New.
651 Thu Jul 1 12:47:31 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
653 * primegen.c, elgamal.c, dsa.c (progess): New and replaced all
654 fputc with a call to this function.
656 Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
658 * rndegd.c (do_write): s/ssize_t/int/ due to SunOS 4.1 probs.
660 * cipher.c (do_cbc_encrypt, do_cbc_decrypt): New.
662 * dynload.c (HAVE_DL_SHL_LOAD): Map hpux API to dlopen (Dave Dykstra).
663 * Makefile.am (install-exec-hook): Removed.
665 Sun May 23 14:20:22 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
667 * cipher.c (setup_cipher_table): Enable Twofish
669 * random.c (fast_random_poll): Disable use of times() for mingw32.
671 Mon May 17 21:54:43 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
673 * dynload.c (register_internal_cipher_extension): Minor init fix.
675 Tue May 4 15:47:53 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
677 * primegen.c (gen_prime): Readded the Fermat test. Fixed the bug
678 that we didn't correct for step when passing the prime to the
679 Rabin-Miller test which led to bad performance (Stefan Keller).
680 (check_prime): Add a first Fermat test.
682 Sun Apr 18 10:11:28 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
684 * cipher.c (cipher_setiv): Add ivlen arg, changed all callers.
686 * random.c (randomize_buffer): alway use secure memory because
687 we can't use m_is_secure() on a statically allocated buffer.
689 * twofish.c: Replaced some macros by a loop to reduce text size.
690 * Makefile.am (twofish): No more need for sed editing.
692 Fri Apr 9 12:26:25 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
694 * cipher.c (cipher_open): Reversed the changes for AUTO_CFB.
696 * blowfish.c: Dropped the Blowfish 160 mode.
697 * cipher.c (cipher_open): Ditto.
698 (setup_cipher_table): Ditto. And removed support of twofish128
700 Wed Apr 7 20:51:39 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
702 * random.c (get_random_bits): Can now handle requests > POOLSIZE
704 * cipher.c (cipher_open): Now uses standard CFB for automode if
705 the blocksize is gt 8 (according to rfc2440).
707 * twofish.c: Applied Matthew Skala's patches for 256 bit key.
709 Tue Apr 6 19:58:12 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
711 * random.c (get_random_bits): Can now handle requests > POOLSIZE
713 * cipher.c (cipher_open): Now uses standard CFB for automode if
714 the blocksize is gt 8 (according to rfc2440).
716 Sat Mar 20 11:44:21 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
718 * rndlinux.c (tty_printf) [IS_MODULE]: Removed.
720 * rndegd.c (gather_random): Some fixes.
722 Wed Mar 17 13:09:03 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
724 * rndegd.c (do_read): New.
725 (gather_random): Changed the implementation.
727 Mon Mar 8 20:47:17 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
729 * dynload.c (DLSYM_NEEDS_UNDERSCORE): Renamed.
731 Fri Feb 26 17:55:41 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
733 * md.c: Nearly a total rewrote.
735 Wed Feb 24 11:07:27 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
737 * cipher.c (context): Fixed alignment
742 Mon Feb 22 20:04:00 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
746 Wed Feb 10 17:15:39 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
748 * Makefile.am: Modules are now figured out by configure
749 * construct.c: New. Generated by configure. Changed all modules
754 * twofish.c: Changed interface to allow Twofish/256
756 * rndunix.c (start_gatherer): Die on SIGPIPE.
758 Wed Jan 20 18:59:49 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
760 * rndunix.c (gather_random): Fix to avoid infinite loop.
762 Sun Jan 17 11:04:33 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
764 * des.c (is_weak_key): Replace system memcmp due to bugs
766 (des_get_info): Return error on failed selftest.
767 * twofish.c (twofish_setkey): Return error on failed selftest or
769 * cast5.c (cast_setkey): Ditto.
770 * blowfish.c (bf_setkey): Return error on failed selftest.
772 Tue Jan 12 11:17:18 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
774 * random.c (random_is_faked): New.
776 * tiger.c: Only compile if we have the u64 type
778 Sat Jan 9 16:02:23 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
780 * rndunix.c (gather_random): check for setuid.
782 * Makefile.am: Add a way to staically link random modules
784 Thu Jan 7 18:00:58 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
786 * md.c (md_stop_debug): Do a flush first.
787 (md_open): size of buffer now depends on the secure parameter
789 Sun Jan 3 15:28:44 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
791 * rndunix.c (start_gatherer): Fixed stupid ==/= bug
793 1998-12-31 Geoff Keating <geoffk@ozemail.com.au>
795 * des.c (is_weak_key): Rewrite loop end condition.
797 Tue Dec 29 14:41:47 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
799 * random.c: add unistd.h for getpid().
800 (RAND_MAX): Fallback value for Sun.
802 Wed Dec 23 17:12:24 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
804 * md.c (md_copy): Reset debug.
806 Mon Dec 14 21:18:49 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
808 * random.c (read_random_source): Changed the interface to the
809 random gathering function.
810 (gather_faked): Use new interface.
811 * dynload.c (dynload_getfnc_fast_random_poll): Ditto.
812 (dynload_getfnc_gather_random): Ditto.
813 * rndlinux.c (gather_random): Ditto.
814 * rndunix.c (gather_random): Ditto.
816 Sat Dec 12 18:40:32 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
818 * dynload.c (SYMBOL_VERSION): New to cope with system which needs
821 * rndunix.c: Rewrote large parts
823 Thu Dec 10 20:15:36 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
825 * dynload.c (load_extension): increased needed verbosity level.
827 * random.c (fast_random_poll): Fallback to a default fast random
829 (read_random_source): Always use the faked entroy gatherer if no
830 gather module is available.
831 * rndlinux.c (fast_poll): Removed.
832 * rndunix.c (fast_poll): Removed.
835 Wed Nov 25 12:33:41 1998 Werner Koch (wk@isil.d.shuttle.de)
840 * random.c : Restructured the interface to the gather modules.
841 (intialize): Call constructor functions
842 (read_radnom_source): Moved to here.
843 * dynload.c (dynload_getfnc_gather_random): New.
844 (dynload_getfnc_fast_random_poll): New.
845 (register_internal_cipher_extension): New.
846 (register_cipher_extension): Support of internal modules.
848 Sun Nov 8 17:44:36 1998 Werner Koch (wk@isil.d.shuttle.de)
850 * rand-unix.c (read_random_source): Removed the assert.
852 Mon Oct 19 18:34:30 1998 me,,, (wk@tobold)
854 * pubkey.c: Hack to allow us to give some info about RSA keys back.
856 Thu Oct 15 11:47:57 1998 Werner Koch (wk@isil.d.shuttle.de)
858 * dynload.c: Support for DLD
860 Wed Oct 14 12:13:07 1998 Werner Koch (wk@isil.d.shuttle.de)
862 * rand-unix.c: Now uses names from configure for /dev/random.
864 1998-10-10 SL Baur <steve@altair.xemacs.org>
866 * Makefile.am: fix sed -O substitutions to catch -O6, etc.
868 Tue Oct 6 10:06:32 1998 Werner Koch (wk@isil.d.shuttle.de)
870 * rand-unix.c (HAVE_GETTIMEOFDAY): Fixed (was ..GETTIMEOFTIME :-)
871 * rand-dummy.c (HAVE_GETTIMEOFDAY): Ditto.
873 Mon Sep 28 13:23:09 1998 Werner Koch (wk@isil.d.shuttle.de)
875 * md.c (md_digest): New.
878 Wed Sep 23 12:27:02 1998 Werner Koch (wk@isil.d.shuttle.de)
880 * tiger.c (TIGER_CONTEXT): moved "buf", so that it is 64 bit aligned.
882 Mon Sep 21 06:22:53 1998 Werner Koch (wk@(none))
884 * des.c: Some patches from Michael.
886 Thu Sep 17 19:00:06 1998 Werner Koch (wk@(none))
888 * des.c : New file from Michael Roth <mroth@nessie.de>
890 Mon Sep 14 11:10:55 1998 Werner Koch (wk@(none))
892 * blowfish.c (bf_setkey): Niklas Hernaeus patch to detect weak keys.
894 Mon Sep 14 09:19:25 1998 Werner Koch (wk@(none))
896 * dynload.c (RTLD_NOW): Now defined to 1 if it is undefined.
898 Mon Sep 7 17:04:33 1998 Werner Koch (wk@(none))
900 * Makefile.am: Fixes to allow a different build directory
902 Thu Aug 6 17:25:38 1998 Werner Koch,mobil,,, (wk@tobold)
904 * random.c (get_random_byte): Removed and changed all callers
905 to use get_random_bits()
907 Mon Jul 27 10:30:22 1998 Werner Koch (wk@(none))
909 * cipher.c : Support for other blocksizes
910 (cipher_get_blocksize): New.
912 * Makefile.am: Add twofish module.
914 Mon Jul 13 21:30:52 1998 Werner Koch (wk@isil.d.shuttle.de)
916 * random.c (read_pool): Simple alloc if secure_alloc is not set.
917 (get_random_bits): Ditto.
919 Thu Jul 9 13:01:14 1998 Werner Koch (wk@isil.d.shuttle.de)
921 * dynload.c (load_extension): Function now nbails out if
922 the program is run setuid.
924 Wed Jul 8 18:58:23 1998 Werner Koch (wk@isil.d.shuttle.de)
926 * rmd160.c (rmd160_hash_buffer): New.
928 Thu Jul 2 10:50:30 1998 Werner Koch (wk@isil.d.shuttle.de)
930 * cipher.c (cipher_open): algos >=100 use standard CFB
932 Thu Jun 25 11:18:25 1998 Werner Koch (wk@isil.d.shuttle.de)
934 * Makefile.am: Support for extensions
936 Thu Jun 18 12:09:38 1998 Werner Koch (wk@isil.d.shuttle.de)
938 * random.c (mix_pool): simpler handling for level 0
940 Mon Jun 15 14:40:48 1998 Werner Koch (wk@isil.d.shuttle.de)
942 * tiger.c: Removed from dist, will reappear as dynload module
944 Sat Jun 13 14:16:57 1998 Werner Koch (wk@isil.d.shuttle.de)
946 * pubkey.c: Major changes to allow extensions. Changed the inteface
947 of all public key ciphers and added the ability to load extensions
952 Wed Jun 10 07:52:08 1998 Werner Koch,mobil,,, (wk@tobold)
955 * cipher.c: Major changes to allow extensions.
957 Mon Jun 8 22:43:00 1998 Werner Koch (wk@isil.d.shuttle.de)
959 * cipher.c: Major internal chnages to support extensions.
960 * blowfish.c (blowfish_get_info): New and made all internal
961 functions static, changed heder.
962 * cast5.c (cast5_get_info): Likewise.
964 Mon Jun 8 12:27:52 1998 Werner Koch (wk@isil.d.shuttle.de)
966 * tiger.c (transform): Fix for big endian
968 * cipher.c (do_cfb_decrypt): Big endian fix.
970 Fri May 22 07:30:39 1998 Werner Koch (wk@isil.d.shuttle.de)
972 * md.c (md_get_oid): Add a new one for TIGER.
974 Thu May 21 13:24:52 1998 Werner Koch (wk@isil.d.shuttle.de)
976 * cipher.c: Add support for a dummy cipher
978 Thu May 14 15:40:36 1998 Werner Koch (wk@isil.d.shuttle.de)
980 * rmd160.c (transform): fixed sigbus - I should better
981 add Christian von Roques's new implemenation of rmd160_write.
983 Fri May 8 18:07:44 1998 Werner Koch (wk@isil.d.shuttle.de)
985 * rand-internal.h, rand-unix.c, rand-w32.c, rand_dummy.c: New
986 * random.c: Moved system specific functions to rand-****.c
988 Fri May 8 14:01:17 1998 Werner Koch (wk@isil.d.shuttle.de)
990 * random.c (fast_random_poll): add call to gethrtime.
992 Tue May 5 21:28:55 1998 Werner Koch (wk@isil.d.shuttle.de)
994 * elgamal.c (elg_generate): choosing x was not correct, could
995 yield 6 bytes which are not from the random pool, tsss, tsss..
997 Tue May 5 14:09:06 1998 Werner Koch (wk@isil.d.shuttle.de)
999 * primegen.c (generate_elg_prime): Add arg mode, changed all
1000 callers and implemented mode 1.
1002 Mon Apr 27 14:41:58 1998 Werner Koch (wk@isil.d.shuttle.de)
1004 * cipher.c (cipher_get_keylen): New.
1006 Sun Apr 26 14:44:52 1998 Werner Koch (wk@isil.d.shuttle.de)
1008 * tiger.c, tiger.h: New.
1010 Wed Apr 8 14:57:11 1998 Werner Koch (wk@isil.d.shuttle.de)
1012 * misc.c (check_pubkey_algo2): New.
1014 Tue Apr 7 18:46:49 1998 Werner Koch (wk@isil.d.shuttle.de)
1017 * misc.c (check_cipher_algo): Moved to cipher.c
1018 * cast5.c: Moved many functions to cipher.c
1019 * blowfish.c: Likewise.
1021 Sat Apr 4 19:52:08 1998 Werner Koch (wk@isil.d.shuttle.de)
1023 * cast5.c: Implemented and tested.
1025 Wed Apr 1 16:38:27 1998 Werner Koch (wk@isil.d.shuttle.de)
1027 * elgamal.c (elg_generate): Faster generation of x in some cases.
1029 Thu Mar 19 13:54:48 1998 Werner Koch (wk@isil.d.shuttle.de)
1031 * blowfish.c (blowfish_decode_cfb): changed XOR operation
1032 (blowfish_encode_cfb): Ditto.
1034 Thu Mar 12 14:04:05 1998 Werner Koch (wk@isil.d.shuttle.de)
1036 * sha1.c (transform): Rewrote
1038 * blowfish.c (encrypt): Unrolled for rounds == 16
1041 Tue Mar 10 16:32:08 1998 Werner Koch (wk@isil.d.shuttle.de)
1043 * rmd160.c (transform): Unrolled the loop.
1045 Tue Mar 10 13:05:14 1998 Werner Koch (wk@isil.d.shuttle.de)
1047 * random.c (read_pool): Add pool_balance stuff.
1048 (get_random_bits): New.
1050 * elgamal.c (elg_generate): Now uses get_random_bits to generate x.
1053 Tue Mar 10 11:33:51 1998 Werner Koch (wk@isil.d.shuttle.de)
1055 * md.c (md_digest_length): New.
1057 Tue Mar 10 11:27:41 1998 Werner Koch (wk@isil.d.shuttle.de)
1059 * dsa.c (dsa_verify): Works.
1061 Mon Mar 9 12:59:08 1998 Werner Koch (wk@isil.d.shuttle.de)
1063 * dsa.c, dsa.h: Removed some unused code.
1065 Wed Mar 4 10:39:22 1998 Werner Koch (wk@isil.d.shuttle.de)
1067 * md.c (md_open): Add call to fast_random_poll.
1068 blowfish.c (blowfish_setkey): Ditto.
1070 Tue Mar 3 13:32:54 1998 Werner Koch (wk@isil.d.shuttle.de)
1072 * rmd160.c (rmd160_mixblock): New.
1073 * random.c: Restructured to start with a new RNG implementation.
1076 Mon Mar 2 19:21:46 1998 Werner Koch (wk@isil.d.shuttle.de)
1078 * gost.c, gost.h: Removed because they did only conatin trash.
1080 Sun Mar 1 16:42:29 1998 Werner Koch (wk@isil.d.shuttle.de)
1082 * random.c (fill_buffer): removed error message if n == -1.
1084 Fri Feb 27 16:39:34 1998 Werner Koch (wk@isil.d.shuttle.de)
1086 * md.c (md_enable): No init if called twice.
1088 Thu Feb 26 07:57:02 1998 Werner Koch (wk@isil.d.shuttle.de)
1090 * primegen.c (generate_elg_prime): Changed the progress printing.
1093 Tue Feb 24 12:28:42 1998 Werner Koch (wk@isil.d.shuttle.de)
1095 * md5.c, md.5 : Replaced by a modified version of md5.c from
1098 Wed Feb 18 14:08:30 1998 Werner Koch (wk@isil.d.shuttle.de)
1100 * md.c, md.h : New debugging support
1102 Mon Feb 16 10:08:47 1998 Werner Koch (wk@isil.d.shuttle.de)
1104 * misc.c (cipher_algo_to_string): New
1105 (pubkey_algo_to_string): New.
1106 (digest_algo_to_string): New.
1110 Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
1112 This file is free software; as a special exception the author gives
1113 unlimited permission to copy and/or distribute it, with or without
1114 modifications, as long as this notice is preserved.
1116 This file is distributed in the hope that it will be useful, but
1117 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1118 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.