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