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