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