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