b174db32e75da589942c9421bf7f2cdfcae0c21b
[libgcrypt.git] / cipher / ChangeLog
1 2001-12-17  Werner Koch  <wk@gnupg.org>
2
3         * pubkey.c (gcry_pk_get_keygrip): New - experimental.
4
5 2001-12-11  Werner Koch  <wk@gnupg.org>
6
7         * cipher.c: Added OIDs for AES.
8         (gcry_cipher_mode_from_oid): New.
9         (gcry_cipher_map_name): Moved OID search code to ..
10         (search_oid): .. new function.
11
12 2001-12-10  Werner Koch  <wk@gnupg.org>
13
14         * pubkey.c (gcry_pk_encrypt): Find the signature algorithm by name
15         and not by number.
16         
17         * pubkey.c (gcry_pk_encrypt,gcry_pk_decrypt,gcry_pk_sign)
18         (gcry_pk_verify,gcry_pk_testkey, gcry_pk_genkey)
19         (gcry_pk_get_nbits): Release the arrays.  Noted by Nikos
20         Mavroyanopoulos.
21
22 2001-12-06  Werner Koch  <wk@gnupg.org>
23
24         * cipher.c (gcry_cipher_map_name): Look also for OIDs prefixed
25         with "oid."  or "OID.".
26
27 2001-12-05  Werner Koch  <wk@gnupg.org>
28
29         * pubkey.c (algo_info_table): Fixed entry for openpgp-rsa. 
30
31 2001-11-24  Werner Koch  <wk@gnupg.org>
32
33         * pubkey.c: Added the rsaEncryption OID to the tables.
34         (sexp_to_key): Add an arg to return the index of the algorithm,
35         changed all callers.
36         (gcry_pk_sign): Find the signature algorithm by name and not by
37         number.
38         (gcry_pk_get_nbits): Fixed so that we can now really pass a secret
39         key to get the result.
40         
41         * md.c (gcry_md_map_name): Look also for OIDs prefixed with "oid."
42         or "OID." so that an OID string can be used as an S-Exp token.
43
44 2001-11-20  Werner Koch  <wk@gnupg.org>
45
46         * md.c (gcry_md_map_name): Lookup by OID if the the name begins
47         with a digit.
48         (oid_table): New.
49         
50 2001-11-16  Werner Koch  <wk@gnupg.org>
51
52         * md.c (gcry_md_info): New operator GCRYCTL_IS_ALGO_ENABLED.
53
54 2001-11-07  Werner Koch  <wk@gnupg.org>
55
56         * md.c (gcry_md_hash_buffer): Close the handle which was left open
57         for algorithms other than rmd160.
58
59 2001-08-08  Werner Koch  <wk@gnupg.org>
60
61         * rndw32.c (gather_random): Use toolhelp in addition to the NT
62         gatherer for Windows2000.  Suggested by Sami Tolvanen.
63
64         * random.c (read_pool): Fixed length check, this used to be one
65         byte to strict.  Made an assert out of it because the caller has
66         already made sure that only poolsize bytes are requested.
67         Reported by Marcus Brinkmann.
68
69 2001-08-03  Werner Koch  <wk@gnupg.org>
70
71         * cipher.c (cipher_encrypt, cipher_decrypt): Prepare to return
72         errors. We have to change the interface to all ciphers to make
73         this really work but we should do so to prepare for hardware
74         encryption modules.
75         (gcry_cipher_encrypt, gcry_cipher_decrypt): Return the error and
76         set lasterr. 
77         (gcry_cipher_ctl): Make sure that errors from setkey are returned.
78
79 2001-08-02  Werner Koch  <wk@gnupg.org>
80
81         * rndlinux.c (gather_random): casted a size_t arg to int so that
82         the format string is correct.  Casting is okay here and avoids
83         translation changes. 
84
85         * random.c (fast_random_poll): Do not check the return code of
86         getrusage.
87
88         * rndunix.c: Add a signal.h header to avoid warnings on Solaris 7
89         and 8.
90
91         * tiger.c (print_abc,print_data): Removed.
92
93         * rijndael.c, des.c, blowfish.c, twofish.c, cast5.c, arcfour.c
94         (burn_stack): New.  Add wrappers for most functions to be able to
95         call burn_stack after the function invocation. This methods seems
96         to be the most portable way to zeroise the stack used. It does
97         only work on stack frame based machines but it is highly portable
98         and has no side effects.  Just setting the automatic variables at
99         the end of a function to zero does not work well because the
100         compiler will optimize them away - marking them as volatile would
101         be bad for performance.
102         * md5.c, sha1.c, rmd160.c, tiger.c (burn_stack): Likewise.
103         * random.c (burn_stack): New.
104         (mix_pool): Use it here to burn the stack of the mixblock function.
105
106         * primegen.c (_gcry_generate_elg_prime): Freed q at 3 places.
107         Thanks to Tommi Komulainen.
108
109         * arcfour.c (arcfour_setkey): Check the minimim keylength against
110         bytes and not bits.
111         (selftest): Must reset the key before decryption. 
112
113 2001-05-31  Werner Koch  <wk@gnupg.org>
114
115         * sha1.c (sha1_init): Made static.
116
117         Changed all g10_ prefixed function names as well as some mpi_
118         function names to cope with the introduced naming changes.
119         
120         * md.c (prepare_macpads): Made key const.
121
122 2001-05-28  Werner Koch  <wk@gnupg.org>
123
124         * rndegd.c (gather_random): Removed the use of tty_printf.
125
126 2001-03-29  Werner Koch  <wk@gnupg.org>
127
128         * md5.c (md5_final): Fixed calculation of hashed length.  Thanks
129         to disastry@saiknes.lv for pointing out that it was horrible wrong
130         for more than 512MB of input.
131         * sha1.c (sha1_final): Ditto.
132         * rmd160.c (rmd160_final): Ditto.
133         * tiger.c (tiger_final): Ditto.
134
135         * blowfish.c (encrypt,do_encrypt): Changed name to do_encrypt to
136         avoid name clashes with an encrypt function in stdlib.h of
137         Dynix/PIX.  Thanks to Gene Carter.
138         * elgamal.c (encrypt,do_encrypt): Ditto.
139
140         * twofish.c (gnupgext_enum_func): Use only when when compiled as a
141         module.
142         * rijndael.c (gnupgext_enum_func): Ditto.
143
144         * tiger.c (tiger_get_info): Return "TIGER192" and not just
145         "TIGER".  By Edwin Woudt.
146         
147         * random.c: Always include time.h - standard requirement.  Thanks
148         to James Troup.
149
150         * rndw32.c: Fixes to the macros.
151
152 2001-01-11  Werner Koch  <wk@gnupg.org>
153
154         * cipher.c (cipher_encrypt,gcry_cipher_encrypt): Use blocksize and
155         not 8.
156
157 2000-12-19  Werner Koch  <wk@gnupg.org>
158
159         Major change:
160         Removed all GnuPG stuff and renamed this piece of software
161         to gcrypt. 
162
163 2000-11-14  Werner Koch  <wk@gnupg.org>
164
165         * dsa.c (test_keys): Replaced mpi_alloc by gcry_mpi_new and
166         mpi_free by gcry_mpi_release.
167         * elgamal.c (test_keys,generate): Ditto, also for mpi_alloc_secure.
168         * rsa.c (test_keys,generate,rsa_verify): Ditto.
169         * primegen.c (generate_elg_prime): Ditto.
170         (gen_prime): Ditto and removed nlimbs.
171
172         * rsa.c (generate): Allocate 2 more vars in secure memory.
173
174         * Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency
175         problems.
176
177 2000-10-09  Werner Koch  <wk@gnupg.org>
178
179         * arcfour.c, arcfour.h: New.
180         * cipher.c (cipher_encrypt, cipher_decrypt): Add stream mode.
181         (setup_cipher_table): Add Arcfour.
182         (gcry_cipher_open): Kludge to allow stream mode.
183
184 Wed Oct  4 13:16:18 CEST 2000  Werner Koch  <wk@openit.de>
185
186         * sha1.c (transform): Use rol() macro.  Actually this is not needed
187         for a newer gcc but there are still aoter compilers.
188
189         * rsa.c (test_keys): Use new random function. 
190
191         * md.c (gcry_md_setkey): New function to overcome problems with
192         const conflics.  
193         (gcry_md_ctl): Pass set key to the new functions.
194
195         * rijndael.c: New.
196         * cipher.c: Add Rijndael support.
197
198 Mon Sep 18 16:35:45 CEST 2000  Werner Koch  <wk@openit.de>
199
200         * rndlinux.c (open_device): Loose random device checking.
201         By Nils Ellmenreich.
202
203         * random.c (fast_random_poll): Check ENOSYS for getrusage.
204         * rndunix.c:  Add 2 sources for QNX. By Sam Roberts.
205
206         * pubkey.c (gcry_pk_algo_info): Add GCRYCTL_GET_ALGO_USAGE.
207
208         * rsa.c: Changed the comment about the patent.
209         (secret): Speed up by using the CRT.  For a 2k keys this
210         is about 3 times faster.
211         (stronger_key_check): New but unused code to check the secret key.
212         * Makefile.am: Included rsa.[ch].
213         * pubkey.c: Enabled RSA support.
214         (pubkey_get_npkey): Removed RSA workaround.
215
216 Mon Jul 31 10:04:47 CEST 2000  Werner Koch  <wk@openit.de>
217
218   * pubkey.c: Replaced all gcry_sexp_{car,cdr}_{data,mpi} by the new
219   gcry_sexp_nth_{data,mpi} functions.
220
221 Tue Jul 25 17:44:15 CEST 2000  Werner Koch  <wk@openit.de>
222
223   * pubkey.c (exp_to_key,sexp_to_sig,sexp_to_enc,gcry_pk_encrypt,
224     gcry_pk_decrypt,gcry_pk_sign,gcry_pk_genkey): Changed to work with
225     the new S-Exp interface.
226
227 Mon Jul 17 16:35:47 CEST 2000  Werner Koch  <wk@>
228
229   * random.c (gather_faked): Replaced make_timestamp by time(2) again.
230
231 Fri Jul 14 19:38:23 CEST 2000  Werner Koch  <wk@>
232
233   * md.c (gcry_md_ctl): Support GCRYCTL_{START,STOP}_DUMP.
234
235   * Makefile.am: Never compile mingw32 as module.
236
237   * Makefile.am: Tweaked module build and removed libtool
238
239   * Makefile.am:  Replaced -O1 by -O. Suggested by Alec Habig.
240
241   * elgamal.c (sign): Removed inactive code.
242
243   * rsa.c, rsa.h: New based on the old module version (only in CVS for now).
244   * pubkey.c (setup_pubkey_table): Added commented support for RSA.
245
246   * rndunix.c (waitpid): New. For UTS 2.1.  All by Dave Dykstra.
247   (my_popen): Do the FD_CLOEXEC only if it is available
248   (start_gatherer): Cope with missing _SC_OPEN_MAX
249
250   * rndunix.c: Add some more headers for QNX. By Sam Roberts.
251
252   * rndegd.c (gather_random): Shortcut level 0.
253   * rndunix.c (gather_random): Ditto.
254   * rndw32.c (gather_random): Ditto.
255
256   * rndw32.c: Replaced with code from Cryptlib and commented the old stuff.
257   * rndw32.c: Add some debuging code enabled by an environment variable.
258
259   * random.c (read_seed_file): Binary open for DOSish system
260   (update_random_seed_file): Ditto.
261   * random.c [MINGW32]: Include process.h for getpid.
262   * random.c (fast_random_poll): Add clock_gettime() as fallback for
263   system which support this POSIX.4 fucntion. By Sam Roberts.
264
265   * random.c (read_seed_file): Removed the S_ISLNK test becuase it
266   is already covered by !S_ISREG and is not defined in Unixware.
267   Reported by Dave Dykstra.
268   (update_random_seed_file): Silently ignore update request when pool
269   is not filled.
270
271   * random.c (read_seed_file): New.
272   (set_random_seed_file): New.
273   (read_pool): Try to read the seeding file.
274   (update_random_seed_file): New.
275
276   (read_pool): Do an initial extra seeding when level 2 quality random
277   is requested the first time.  This requestes at least POOLSIZE/2 bytes
278   of entropy.  Compined with the seeding file this should make normal
279   random bytes cheaper and increase the quality of the random bytes
280   used for key generation.
281
282   * random.c (read_pool): Print a more friendly error message in
283   cases when too much random is requested in one call.
284
285   * random.c (fast_random_poll): Check whether RUSAGE_SELF is defined;
286   this is not the case for some ESIX and Unixware, although they have
287   getrusage().
288
289   * primegen.c (generate_elg_prime): All primes are now generated with
290   the lowest random quality level.  Because they are public anyway we
291   don't need stronger random and by this we do not drain the systems
292   entropy so much.
293
294   * primegen.c (register_primegen_progress): New.
295   * dsa.c (register_pk_dsa_progress): New.
296   * elgamal.c (register_pk_elg_progress): New.
297
298   * elgamal.c (wiener_map): New.
299   (gen_k): Use a much smaller k.
300   (generate): Calculate the qbits using the wiener map and
301   choose an x at a size comparable to the one choosen in gen_k
302
303   * rmd160.c (rmd160_get_info): Moved casting to the left side due to a
304   problem with UTS4.3.  Suggested by Dave Dykstra.
305   * sha1.c (sha1_get_info): Ditto.
306   * tiger.c (tiger_get_info): Ditto.
307   * md5.c (md5_get_info): Ditto
308   * des.c (des_get_info): Ditto.
309   * blowfish.c (blowfish_get_info): Ditto.
310   * cast5.c (cast5_get_info): Ditto.
311   * twofish.c (twofish_get_info): Ditto.
312
313 Fri Mar 24 11:25:45 CET 2000  Werner Koch  <wk@openit.de>
314
315         * md.c (md_open): Add hmac arg and allocate space for the pads.
316         (md_finalize): Add HMAC support.
317         (md_copy): Ditto.
318         (md_close): Ditto.
319         (gcry_md_reset): Ditto.
320         (gcry_md_ctl): Ditto.
321         (prepare_macpdas): New.
322
323 Mon Mar 13 19:22:46 CET 2000  Werner Koch  <wk@openit.de>
324
325         * md.c (gcry_md_hash_buffer): Add support for the other algorithms.
326
327 Mon Jan 31 16:37:34 CET 2000  Werner Koch  <wk@gnupg.de>
328
329         * genprime.c (generate_elg_prime): Fixed returned factors which never
330         worked for non-DSA keys.
331
332 Thu Jan 27 18:00:44 CET 2000  Werner Koch  <wk@gnupg.de>
333
334         * pubkey.c (sexp_to_key): Fixed mem leaks in case of errors.
335
336 Mon Jan 24 22:24:38 CET 2000  Werner Koch  <wk@gnupg.de>
337
338         * pubkey.c (gcry_pk_decrypt): Implemented.
339         (gcry_pk_encrypt): Implemented.
340         (gcry_pk_testkey): New.
341         (gcry_pk_genkey): New.
342         (pubkey_decrypt): Made static.
343         (pubkey_encrypt): Ditto.
344         (pubkey_check_secret_key): Ditto.
345         (pubkey_generate): Ditto.
346
347 Mon Jan 24 13:04:28 CET 2000  Werner Koch  <wk@gnupg.de>
348
349         * pubkey.c (pubkey_nbits): Removed and replaced by ...
350         (gcry_pk_get_nbits): this new one.
351
352 Wed Dec  8 21:58:32 CET 1999  Werner Koch  <wk@gnupg.de>
353
354         * dsa.c: s/mpi_powm/gcry_mpi_powm/g
355         * elgamal.c: Ditto.
356         * primegen.c: Ditto.
357
358         * : Replaced g10_opt_verbose by g10_log_verbosity().
359
360         * Makefile.am (INCLUDES): removed intl, add ../gcrypt
361
362 Fri Nov 19 17:15:20 CET 1999  Werner Koch  <wk@gnupg.de>
363
364         * dynload.c (cmp_filenames): New to replaced compare_filename() in
365         module.
366         (register_cipher_extension): Removed the tilde expansion stuff.
367         * rndeg.c (my_make_filename): New.
368
369         * : Replaced header util.h by g10lib.h
370
371         * random.c (gather_faked): Replaced make_timestamp by time(2).
372         Disabled wrning printed with tty_printf.
373         * rndlinux.c (gather_random): Always use fprintf instead of tty_xxx;
374         this should be replaced by a callback function.
375
376         * primegen.c (gen_prime): Use gcry_mpi_randomize.
377         (is_prime): Ditto.
378         * elgamal.c (test_keys): Ditto.
379         * dsa.c (test_keys): Ditto.
380
381         * cipher.c (gcry_cipher_close): Die on invalid handle.
382
383 Mon Nov 15 21:36:02 CET 1999  Werner Koch  <wk@gnupg.de>
384
385         * elgamal.c (gen_k): Use the new random API.
386         (generate): Ditto.
387         * dsa.c (gen_k): Ditto.
388         (generate): Ditto.
389
390 Sat Nov 13 17:44:23 CET 1999  Werner Koch  <wk@gnupg.de>
391
392         * pubkey.c (disable_pubkey_algo): Made static.
393         (gcry_pk_ctl): New.
394
395         * random.c (get_random_bits): Renamed to ...
396         (get_random_bytes): ... this and made static.
397         (gcry_random_bytes): New.
398         (gcry_random_bytes_secure): New.
399         (randomize_buffer): Renamed to ...
400         (gcry_randomize): ...this.
401
402         * md.c (gcry_md_hash_buffer): New.
403
404         * pubkey.c (gcry_pk_algo_info): 4 new commands.
405         (pubkey_get_npkey): Made static.
406         (pubkey_get_nskey): Made static.
407         (pubkey_get_nsig): Made static.
408         (pubkey_get_nenc): Made static.
409
410         * pubkey.c: Removed all G10ERR_xxx.
411         * cipher.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_CIPHER_ALGO.
412         * md.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_MD_ALGO.
413         * cast5.c (cast_setkey): Changed errocodes to GCRYERR_xxx.
414         * blowfish.c: Ditto.
415         * des.c: Ditto.
416         * twofish.c: Ditto.
417         * dsa.c: Ditto.
418         * elgamal.c: Ditto.
419
420         * g10c.c: Removed
421
422         * cipher.c (gcry_cipher_open): Replaced alloc functions and return NULL
423         if we are out of core.
424         * dynload.c: Replaced all memory allocation functions.
425         * md.c: Ditto.
426         * primegen.c: Ditto.
427         * pubkey.c: Ditto.
428         * random.c: Ditto.
429         * rndw32.c: Ditto.
430         * elgamal.c: Ditto.
431         * dsa.c: Ditto.
432
433 Tue Oct 26 14:10:21 CEST 1999  Werner Koch  <wk@gnupg.de>
434
435         * elgamal.c (sign): Hugh found strange code here. Replaced by BUG().
436
437         * cipher.c: Merged with gcrypt/symapi.c.
438
439         * pubkey.c (string_to_pubkey_algo): Renamed function to ...
440         (gcry_pk_map_name): ... this.
441         (pubkey_algo_to_string): Renamed function to ...
442         (gcry_pk_algo_name): ... this.
443         (gcry_pk_algo_info): New.
444         * pubkey.c: Merged with gcrypt/pkapi.c.
445
446         * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
447         fixing this bug.
448
449         * md.c: Merged with gcrypt/mdapi.c
450
451 Wed Sep 15 14:39:59 CEST 1999  Michael Roth <mroth@nessie.de>
452
453         * des.c: Various speed improvements: One bit pre rotation
454           trick after initial permutation (Richard Outerbridge).
455           Finished test of SSLeay Tripple-DES patterns.
456
457 Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
458
459         * rndw32.c: New.
460
461 Mon Sep 13 10:51:29 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
462
463         * bithelp.h: New.
464         * rmd160.h, sha1.h, md5.h: Use the rol macro from bithelp.h
465
466 Tue Sep  7 16:23:36 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
467
468         * Makefile.am: Fixed seds for latest egcc. By Ollivier Robert.
469
470 Mon Sep  6 19:59:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
471
472         * des.c (selftest): Add some testpattern
473
474 Mon Aug 30 20:38:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
475
476         * cipher.c (do_cbc_encrypt): Fixed serious bug occuring when not using
477         in place encryption. Pointed out by Frank Stajano.
478
479 Mon Jul 26 09:34:46 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
480
481         * md5.c (md5_final): Fix for a SCO cpp bug.
482
483 Thu Jul 15 10:15:35 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
484
485         * elgamal.c (elg_check_secret_key,elg_encrypt
486         elg_decrypt,elg_sign,elg_verify): Sanity check on the args.
487         * dsa.c (dsa_check_secret_key,dsa_sign,dsa_verify): Ditto.
488
489         * pubkey.c (disable_pubkey_algo): New.
490         (check_pubkey_algo2): Look at disabled algo table.
491         * cipher.c (disable_cipher_algo): New.
492         (check_cipher_algo): Look at disabled algo table.
493
494 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
495
496         * Makefile.am: Support for libtool.
497
498 Fri Jul  2 11:45:54 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
499
500         * dsa.c (gen_k): Changed algorithm to consume less random bytes
501         * elgamal.c (gen_k): Ditto.
502
503         * random.c (random_dump_stats): New.
504
505 Thu Jul  1 12:47:31 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
506
507         * primegen.c, elgamal.c, dsa.c (progess): New and replaced all
508         fputc with a call to this function.
509
510 Sat Jun 26 12:15:59 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
511
512         * rndegd.c (do_write): s/ssize_t/int/ due to SunOS 4.1 probs.
513
514         * cipher.c (do_cbc_encrypt, do_cbc_decrypt): New.
515
516         * dynload.c (HAVE_DL_SHL_LOAD): Map hpux API to dlopen (Dave Dykstra).
517         * Makefile.am (install-exec-hook): Removed.
518
519 Sun May 23 14:20:22 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
520
521         * cipher.c (setup_cipher_table): Enable Twofish
522
523         * random.c (fast_random_poll): Disable use of times() for mingw32.
524
525 Mon May 17 21:54:43 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
526
527         * dynload.c (register_internal_cipher_extension): Minor init fix.
528
529 Tue May  4 15:47:53 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
530
531         * primegen.c (gen_prime): Readded the Fermat test. Fixed the bug
532         that we didn't correct for step when passing the prime to the
533         Rabin-Miller test which led to bad performance (Stefan Keller).
534         (check_prime): Add a first Fermat test.
535
536 Sun Apr 18 10:11:28 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
537
538         * cipher.c (cipher_setiv): Add ivlen arg, changed all callers.
539
540         * random.c (randomize_buffer): alway use secure memory because
541         we can't use m_is_secure() on a statically allocated buffer.
542
543         * twofish.c: Replaced some macros by a loop to reduce text size.
544         * Makefile.am (twofish): No more need for sed editing.
545
546 Fri Apr  9 12:26:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
547
548         * cipher.c (cipher_open): Reversed the changes for AUTO_CFB.
549
550         * blowfish.c: Dropped the Blowfish 160 mode.
551         * cipher.c (cipher_open): Ditto.
552         (setup_cipher_table): Ditto.  And removed support of twofish128
553
554 Wed Apr  7 20:51:39 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
555
556         * random.c (get_random_bits): Can now handle requests > POOLSIZE
557
558         * cipher.c (cipher_open): Now uses standard CFB for automode if
559         the blocksize is gt 8 (according to rfc2440).
560
561         * twofish.c: Applied Matthew Skala's patches for 256 bit key.
562
563 Tue Apr  6 19:58:12 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
564
565         * random.c (get_random_bits): Can now handle requests > POOLSIZE
566
567         * cipher.c (cipher_open): Now uses standard CFB for automode if
568         the blocksize is gt 8 (according to rfc2440).
569
570 Sat Mar 20 11:44:21 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
571
572         * rndlinux.c (tty_printf) [IS_MODULE]: Removed.
573
574         * rndegd.c (gather_random): Some fixes.
575
576 Wed Mar 17 13:09:03 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
577
578         * rndegd.c (do_read): New.
579         (gather_random): Changed the implementation.
580
581 Mon Mar  8 20:47:17 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
582
583         * dynload.c (DLSYM_NEEDS_UNDERSCORE): Renamed.
584
585 Fri Feb 26 17:55:41 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
586
587         * md.c: Nearly a total rewrote.
588
589 Wed Feb 24 11:07:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
590
591         * cipher.c (context): Fixed alignment
592         * md.c: Ditto.
593
594         * rndegd.c: New
595
596 Mon Feb 22 20:04:00 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
597
598         * rndegd.c: New.
599
600 Wed Feb 10 17:15:39 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
601
602         * Makefile.am: Modules are now figured out by configure
603         * construct.c: New. Generated by configure. Changed all modules
604         to work with that.
605         * sha1.h: Removed.
606         * md5.h: Removed.
607
608         * twofish.c: Changed interface to allow Twofish/256
609
610         * rndunix.c (start_gatherer): Die on SIGPIPE.
611
612 Wed Jan 20 18:59:49 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
613
614         * rndunix.c (gather_random): Fix to avoid infinite loop.
615
616 Sun Jan 17 11:04:33 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
617
618         * des.c (is_weak_key): Replace system memcmp due to bugs
619         in SunOS's memcmp.
620         (des_get_info): Return error on failed selftest.
621         * twofish.c (twofish_setkey): Return error on failed selftest or
622         invalid keylength.
623         * cast5.c (cast_setkey): Ditto.
624         * blowfish.c (bf_setkey): Return error on failed selftest.
625
626 Tue Jan 12 11:17:18 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
627
628         * random.c (random_is_faked): New.
629
630         * tiger.c: Only compile if we have the u64 type
631
632 Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
633
634         * rndunix.c (gather_random): check for setuid.
635
636         * Makefile.am: Add a way to staically link random modules
637
638 Thu Jan  7 18:00:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
639
640         * md.c (md_stop_debug): Do a flush first.
641         (md_open): size of buffer now depends on the secure parameter
642
643 Sun Jan  3 15:28:44 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
644
645         * rndunix.c (start_gatherer): Fixed stupid ==/= bug
646
647 1998-12-31  Geoff Keating  <geoffk@ozemail.com.au>
648
649         * des.c (is_weak_key): Rewrite loop end condition.
650
651 Tue Dec 29 14:41:47 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
652
653         * random.c: add unistd.h for getpid().
654         (RAND_MAX): Fallback value for Sun.
655
656 Wed Dec 23 17:12:24 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
657
658         * md.c (md_copy): Reset debug.
659
660 Mon Dec 14 21:18:49 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
661
662         * random.c (read_random_source): Changed the interface to the
663         random gathering function.
664         (gather_faked): Use new interface.
665         * dynload.c (dynload_getfnc_fast_random_poll): Ditto.
666         (dynload_getfnc_gather_random): Ditto.
667         * rndlinux.c (gather_random): Ditto.
668         * rndunix.c (gather_random): Ditto.
669
670 Sat Dec 12 18:40:32 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
671
672         * dynload.c (SYMBOL_VERSION): New to cope with system which needs
673         underscores.
674
675         * rndunix.c: Rewrote large parts
676
677 Thu Dec 10 20:15:36 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
678
679         * dynload.c (load_extension): increased needed verbosity level.
680
681         * random.c (fast_random_poll): Fallback to a default fast random
682         poll function.
683         (read_random_source): Always use the faked entroy gatherer if no
684         gather module is available.
685         * rndlinux.c (fast_poll): Removed.
686         * rndunix.c (fast_poll): Removed.
687
688
689 Wed Nov 25 12:33:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
690
691         * rand-*.c: Removed.
692         * rndlinux.c : New.
693         * rndunix.c : New.
694         * random.c : Restructured the interface to the gather modules.
695         (intialize): Call constructor functions
696         (read_radnom_source): Moved to here.
697         * dynload.c (dynload_getfnc_gather_random): New.
698         (dynload_getfnc_fast_random_poll): New.
699         (register_internal_cipher_extension): New.
700         (register_cipher_extension): Support of internal modules.
701
702 Sun Nov  8 17:44:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
703
704         * rand-unix.c (read_random_source): Removed the assert.
705
706 Mon Oct 19 18:34:30 1998  me,,,  (wk@tobold)
707
708         * pubkey.c: Hack to allow us to give some info about RSA keys back.
709
710 Thu Oct 15 11:47:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
711
712         * dynload.c: Support for DLD
713
714 Wed Oct 14 12:13:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
715
716         * rand-unix.c: Now uses names from configure for /dev/random.
717
718 1998-10-10  SL Baur  <steve@altair.xemacs.org>
719
720         * Makefile.am: fix sed -O substitutions to catch -O6, etc.
721
722 Tue Oct  6 10:06:32 1998  Werner Koch  (wk@isil.d.shuttle.de)
723
724         * rand-unix.c (HAVE_GETTIMEOFDAY): Fixed (was ..GETTIMEOFTIME :-)
725         * rand-dummy.c (HAVE_GETTIMEOFDAY): Ditto.
726
727 Mon Sep 28 13:23:09 1998  Werner Koch  (wk@isil.d.shuttle.de)
728
729         * md.c (md_digest): New.
730         (md_reset): New.
731
732 Wed Sep 23 12:27:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
733
734         * tiger.c (TIGER_CONTEXT): moved "buf", so that it is 64 bit aligned.
735
736 Mon Sep 21 06:22:53 1998  Werner Koch  (wk@(none))
737
738         * des.c: Some patches from Michael.
739
740 Thu Sep 17 19:00:06 1998  Werner Koch  (wk@(none))
741
742         * des.c : New file from Michael Roth <mroth@nessie.de>
743
744 Mon Sep 14 11:10:55 1998  Werner Koch  (wk@(none))
745
746         * blowfish.c (bf_setkey): Niklas Hernaeus patch to detect weak keys.
747
748 Mon Sep 14 09:19:25 1998  Werner Koch  (wk@(none))
749
750         * dynload.c (RTLD_NOW): Now defined to 1 if it is undefined.
751
752 Mon Sep  7 17:04:33 1998  Werner Koch  (wk@(none))
753
754         * Makefile.am: Fixes to allow a different build directory
755
756 Thu Aug  6 17:25:38 1998  Werner Koch,mobil,,,  (wk@tobold)
757
758         * random.c (get_random_byte): Removed and changed all callers
759         to use get_random_bits()
760
761 Mon Jul 27 10:30:22 1998  Werner Koch  (wk@(none))
762
763         * cipher.c : Support for other blocksizes
764         (cipher_get_blocksize): New.
765         * twofish.c: New.
766         * Makefile.am: Add twofish module.
767
768 Mon Jul 13 21:30:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
769
770         * random.c (read_pool): Simple alloc if secure_alloc is not set.
771         (get_random_bits): Ditto.
772
773 Thu Jul  9 13:01:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
774
775         * dynload.c (load_extension): Function now nbails out if
776         the program is run setuid.
777
778 Wed Jul  8 18:58:23 1998  Werner Koch  (wk@isil.d.shuttle.de)
779
780         * rmd160.c (rmd160_hash_buffer): New.
781
782 Thu Jul  2 10:50:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
783
784         * cipher.c (cipher_open): algos >=100 use standard CFB
785
786 Thu Jun 25 11:18:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
787
788         * Makefile.am: Support for extensions
789
790 Thu Jun 18 12:09:38 1998  Werner Koch  (wk@isil.d.shuttle.de)
791
792         * random.c (mix_pool): simpler handling for level 0
793
794 Mon Jun 15 14:40:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
795
796         * tiger.c: Removed from dist, will reappear as dynload module
797
798 Sat Jun 13 14:16:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
799
800         * pubkey.c: Major changes to allow extensions. Changed the inteface
801         of all public key ciphers and added the ability to load extensions
802         on demand.
803
804         * misc.c: Removed.
805
806 Wed Jun 10 07:52:08 1998  Werner Koch,mobil,,,  (wk@tobold)
807
808         * dynload.c: New.
809         * cipher.c: Major changes to allow extensions.
810
811 Mon Jun  8 22:43:00 1998  Werner Koch  (wk@isil.d.shuttle.de)
812
813         * cipher.c: Major internal chnages to support extensions.
814         * blowfish.c (blowfish_get_info): New and made all internal
815         functions static, changed heder.
816         * cast5.c (cast5_get_info): Likewise.
817
818 Mon Jun  8 12:27:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
819
820         * tiger.c (transform): Fix for big endian
821
822         * cipher.c (do_cfb_decrypt): Big endian fix.
823
824 Fri May 22 07:30:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
825
826         * md.c (md_get_oid): Add a new one for TIGER.
827
828 Thu May 21 13:24:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
829
830         * cipher.c: Add support for a dummy cipher
831
832 Thu May 14 15:40:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
833
834         * rmd160.c (transform): fixed sigbus - I should better
835         add Christian von Roques's new implemenation of rmd160_write.
836
837 Fri May  8 18:07:44 1998  Werner Koch  (wk@isil.d.shuttle.de)
838
839         * rand-internal.h, rand-unix.c, rand-w32.c, rand_dummy.c: New
840         * random.c: Moved system specific functions to rand-****.c
841
842 Fri May  8 14:01:17 1998  Werner Koch  (wk@isil.d.shuttle.de)
843
844         * random.c (fast_random_poll): add call to gethrtime.
845
846 Tue May  5 21:28:55 1998  Werner Koch  (wk@isil.d.shuttle.de)
847
848         * elgamal.c (elg_generate): choosing x was not correct, could
849         yield 6 bytes which are not from the random pool, tsss, tsss..
850
851 Tue May  5 14:09:06 1998  Werner Koch  (wk@isil.d.shuttle.de)
852
853         * primegen.c (generate_elg_prime): Add arg mode, changed all
854         callers and implemented mode 1.
855
856 Mon Apr 27 14:41:58 1998  Werner Koch  (wk@isil.d.shuttle.de)
857
858         * cipher.c (cipher_get_keylen): New.
859
860 Sun Apr 26 14:44:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
861
862         * tiger.c, tiger.h: New.
863
864 Wed Apr  8 14:57:11 1998  Werner Koch  (wk@isil.d.shuttle.de)
865
866         * misc.c (check_pubkey_algo2): New.
867
868 Tue Apr  7 18:46:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
869
870         * cipher.c: New
871         * misc.c (check_cipher_algo): Moved to cipher.c
872         * cast5.c: Moved many functions to cipher.c
873         * blowfish.c: Likewise.
874
875 Sat Apr  4 19:52:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
876
877         * cast5.c: Implemented and tested.
878
879 Wed Apr  1 16:38:27 1998  Werner Koch  (wk@isil.d.shuttle.de)
880
881         * elgamal.c (elg_generate): Faster generation of x in some cases.
882
883 Thu Mar 19 13:54:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
884
885         * blowfish.c (blowfish_decode_cfb): changed XOR operation
886         (blowfish_encode_cfb): Ditto.
887
888 Thu Mar 12 14:04:05 1998  Werner Koch  (wk@isil.d.shuttle.de)
889
890         * sha1.c (transform): Rewrote
891
892         * blowfish.c (encrypt): Unrolled for rounds == 16
893         (decrypt): Ditto.
894
895 Tue Mar 10 16:32:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
896
897         * rmd160.c (transform): Unrolled the loop.
898
899 Tue Mar 10 13:05:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
900
901         * random.c (read_pool): Add pool_balance stuff.
902         (get_random_bits): New.
903
904         * elgamal.c (elg_generate): Now uses get_random_bits to generate x.
905
906
907 Tue Mar 10 11:33:51 1998  Werner Koch  (wk@isil.d.shuttle.de)
908
909         * md.c (md_digest_length): New.
910
911 Tue Mar 10 11:27:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
912
913         * dsa.c (dsa_verify): Works.
914
915 Mon Mar  9 12:59:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
916
917         * dsa.c, dsa.h: Removed some unused code.
918
919 Wed Mar  4 10:39:22 1998  Werner Koch  (wk@isil.d.shuttle.de)
920
921         * md.c (md_open): Add call to fast_random_poll.
922         blowfish.c (blowfish_setkey): Ditto.
923
924 Tue Mar  3 13:32:54 1998  Werner Koch  (wk@isil.d.shuttle.de)
925
926         * rmd160.c (rmd160_mixblock): New.
927         * random.c: Restructured to start with a new RNG implementation.
928         * random.h: New.
929
930 Mon Mar  2 19:21:46 1998  Werner Koch  (wk@isil.d.shuttle.de)
931
932         * gost.c, gost.h: Removed because they did only conatin trash.
933
934 Sun Mar  1 16:42:29 1998  Werner Koch  (wk@isil.d.shuttle.de)
935
936         * random.c (fill_buffer): removed error message if n == -1.
937
938 Fri Feb 27 16:39:34 1998  Werner Koch  (wk@isil.d.shuttle.de)
939
940         * md.c (md_enable): No init if called twice.
941
942 Thu Feb 26 07:57:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
943
944         * primegen.c (generate_elg_prime): Changed the progress printing.
945         (gen_prime): Ditto.
946
947 Tue Feb 24 12:28:42 1998  Werner Koch  (wk@isil.d.shuttle.de)
948
949         * md5.c, md.5 : Replaced by a modified version of md5.c from
950         GNU textutils 1.22.
951
952 Wed Feb 18 14:08:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
953
954         * md.c, md.h : New debugging support
955
956 Mon Feb 16 10:08:47 1998  Werner Koch  (wk@isil.d.shuttle.de)
957
958         * misc.c (cipher_algo_to_string): New
959         (pubkey_algo_to_string): New.
960         (digest_algo_to_string): New.
961
962