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