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