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