025fbb26013a5530b710c4f2e6eca3fa4ba3fc83
[libgcrypt.git] / cipher / ChangeLog
1 2007-03-14  Werner Koch  <wk@g10code.com>
2
3         * random.c (MASK_LEVEL): Removed macro as it was used only at one
4         place.  Open coded it there.
5         (gcry_randomize, _gcry_update_random_seed_file)
6         (_gcry_fast_random_poll): Factor lock code out to ..
7         (lock_pool, unlock_pool): .. new.
8         (initialize): Look the pool while allocating. 
9         (read_random_source, do_fast_random_poll): Moved intialization to ...
10         (initialize): .. here.
11         (_gcry_enable_quick_random_gen): No more need for initialization.
12         (is_initialized):  Moved this global flag to ..
13         (initialize): .. here and changed all users to unconditionally call
14         initialize.
15         (add_randomness): Remove initalization here.  It simply can't
16         happen. 
17
18         * random.c (enum random_origins): Moved to ..
19         * rand-internal.h: .. here.
20         * rndunix.c (_gcry_rndunix_gather_random): Use enum in prototype
21         for ORIGIN and renamed REQUESTOR to ORIGIN.
22         * rndegd.c (_gcry_rndegd_gather_random): Ditto.
23         * rndlinux.c (_gcry_rndlinux_gather_random): Ditto.
24         * rndw32.c (_gcry_rndw32_gather_random): Ditto.
25         (_gcry_rndw32_gather_random_fast): Ditto.
26
27 2007-03-13  Werner Koch  <wk@g10code.com>
28
29         * random.c (enum random_origins): New.
30         (add_randomness): Renamed arg SOURCE to ORIGIN.
31         (read_random_source): Renamed arg REQUESTOR to ORIGIN.
32         (getfnc_gather_random): Removed static variable because this
33         function is only called one and thus we don't need this
34         optimization.
35         (_gcry_quick_random_gen): Removed and replaced by..
36         (_gcry_enable_quick_random_gen): .. this.  It is onlyu used to
37         enable it and it does not make sense to disable it later. Changed
38         the only one caller too.
39         (get_random_bytes): Removed.
40         (gcry_random_bytes, gcry_random_bytes_secure): Implement in terms
41         of gcry_randomize.
42         * random-daemon.c (_gcry_daemon_get_random_bytes): Removed.
43
44 2007-02-23  Werner Koch  <wk@g10code.com>
45
46         * elgamal.c (generate): Removed unused variable TEMP.
47         (test_keys): New arg NODIE.
48         (generate_using_x, _gcry_elg_generate_using_x): New.
49         * pubkey.c (pubkey_generate): New arg XVALUE and direct call to
50         the new elgamal generate fucntion.
51         (gcry_pk_genkey): Parse the new "xvalue" tag.
52
53 2007-02-22  Werner Koch  <wk@g10code.com>
54
55         * pubkey.c (sexp_data_to_mpi): Handle dynamically allocated
56         algorithms.  Suggested by Neil Dunbar.  Fixes bug#596.
57
58         * rndw32.c (_gcry_rndw32_gather_random_fast): Make it return void.
59
60         * cipher.c (gcry_cipher_algo_name): Simplified.
61
62         * random.c: Use the daemon only if compiled with USE_RANDOM_DAEMON. 
63
64         * Makefile.am (libcipher_la_SOURCES): Build random-daemon support
65         only if requested.
66
67 2007-02-21  Werner Koch  <wk@g10code.com>
68
69         * random.c (rndpool, keypool): Make unsigned.
70         (mix_pool): Change char* variables to unsigned char*.
71         (gcry_randomize): Make arg BUFFER a void*.
72         (gcry_create_nonce): Ditto.
73
74         * rmd160.c (gcry_rmd160_mixblock): Make BUFFER a void*.
75         (_gcry_rmd160_hash_buffer): Make OUTBUF and BUFFER void*.
76         * sha1.c (_gcry_sha1_hash_buffer): Ditto.
77
78         * cipher.c (gcry_cipher_encrypt, cry_cipher_decrypt): Change
79         buffer args to void*.
80         (gcry_cipher_register): Make ALGORITHM_ID a int *.
81
82         * md.c (md_start_debug): Make SUFFIX a const char*.  Use snprintf.
83         (gcry_md_debug): New.
84         (gcry_md_ctl): Changed arg BUFFER from unsigned char*.
85
86         * md.c (md_write): Make INBUF a const void*.
87         (gcry_md_write): Remove needless cast.
88         * crc.c (crc32_write): Make INBUF a const void*
89         (update_crc32, crc24rfc2440_write): Ditto.
90         * sha512.c (sha512_write, transform): Ditto.
91         * sha256.c (sha256_write, transform): Ditto.
92         * rmd160.c (rmd160_write, transform): Ditto.
93         * md5.c (md5_write, transform): Ditto.
94         * md4.c (md4_write, transform): Ditto.
95         * sha1.c (sha1_write, transform): Ditto.
96
97         * tiger.c (tiger_write, transform): Ditto.
98         * whirlpool.c (whirlpool_write, whirlpool_add, transform): Ditto.
99
100         * elgamal.c (elg_names): Change to a const*.
101         * dsa.c (dsa_names): Ditto.
102         * rsa.c (rsa_names): Ditto.
103         * pubkey.c (gcry_pk_lookup_func_name): Make ALIASES a const.
104
105 2007-02-20  Werner Koch  <wk@g10code.com>
106
107         * rndlinux.c (open_device): Remove unsused arg MINOR.
108
109 2007-01-30  Werner Koch  <wk@g10code.com>
110
111         * sha256.c (oid_spec_sha256): Add alias from pkcs#1.
112         * sha512.c (oid_spec_sha512): Ditto.
113         (oid_spec_sha384): Ditto.
114
115 2006-12-18  Werner Koch  <wk@g10code.com>
116
117         * rndlinux.c (set_cloexec_flag): New.
118         (open_device): Set close-on-exit flags.  Suggested by Max
119         Kellermann.  Fixes Debian#403613.
120
121         * Makefile.am (AM_CPPFLAGS, AM_CFLAGS): Splitted and merged
122         Moritz' changes.
123         (INCLUDES): Removed.
124
125 2006-11-30  Werner Koch  <wk@g10code.com>
126
127         * serpent.c (byte_swap_32): Remove trailing semicolon.
128
129 2006-11-15  Werner Koch  <wk@g10code.com>
130
131         * Makefile.am (INCLUDES): Include ../src/
132
133 2006-11-03  Werner Koch  <wk@g10code.com>
134
135         * random.c [HAVE_GETTIMEOFDAY]: Included sys/time.h and not
136         sys/times.h.  Reported by Rafaël Carré.
137
138 2006-11-05  Moritz Schulte  <moritz@g10code.com>
139
140         * Makefile.am (AM_CFLAGS): Added -I$(top_builddir)/src so that the
141         new gcrypt.h is used, not the one installed in the system.
142
143 2006-10-25  Werner Koch  <wk@g10code.com>
144
145         * primegen.c (prime_generate_internal): Tweaked use of secure
146         memory and entropy use. Safe unused primes from the pool. Allocate
147         at least a pool of 30.
148         (save_pool_prime, get_pool_prime): New.
149
150 2006-10-23  Werner Koch  <wk@g10code.com>
151
152         * ac.c (_gcry_ac_data_from_sexp): Reset sexp_tmp for failsafe
153         means.  Release sexp_cur if needed.  Reported by Dirk Stoecker.
154
155         * pubkey.c (pubkeys_registered_lock): Intialized it.  It is not
156          realy needed because this is a mere initialization to 0 anyway.
157          Noted by Victor Stinner.
158
159 2006-10-17  Werner Koch  <wk@g10code.com>
160
161         * dsa.c (_gcry_dsa_generate2): New.
162         (generate): New arg QBITS.  Add sanity checks for reasonable qbits
163         and nbits.
164         * pubkey.c (gcry_pk_genkey): Parse an qbits element.
165         (pubkey_generate): New arg QBITS.  Pass it to the DSA generation.
166
167 2006-10-05  Werner Koch  <wk@g10code.com>
168
169         * md.c (gcry_md_algo_info) <get_asnoid>: Check that the algo is
170         available.
171
172 2006-10-04  David Shaw  <dshaw@jabberwocky.com>  (wk)
173  
174         * tiger.c (round): Rename to tiger_round as gcc 4 has a built-in
175         round function that this conflicts with.
176  
177 2006-09-11  Werner Koch  <wk@g10code.com>
178
179         * rndw32.c (slow_gatherer_windowsNT): While adding data use the
180         size of the diskPerformance and not its address. Has been fixed in
181         GnuPG more than a year ago.  Noted by Lee Fisher.
182
183 2006-08-30  Werner Koch  <wk@g10code.com>
184
185         * pubkey.c (sexp_data_to_mpi): Need to allow "ripemd160" here as
186         this is the canonical name.
187
188 2006-08-29  Hye-Shik Chang <perky@FreeBSD.org>  (wk)
189
190         * seed.c: New.
191
192 2006-08-03  Werner Koch  <wk@g10code.com>
193
194         * random-daemon.c (_gcry_daemon_initialize_basics): Don't
195         initialize the socket.  Remove arg SOCKETNAME.
196         (connect_to_socket): Make sure that daemon is set to -1 on error.
197         (call_daemon): Initialize the socket on the first call.
198         (_gcry_daemon_randomize, _gcry_daemon_get_random_bytes) 
199         (_gcry_daemon_create_nonce): New arg SOCKETNAME.
200         * random.c (initialize): Call new daemon initializator.
201         (get_random_bytes, gcry_randomize, gcry_create_nonce): Pass socket
202         name to daemon call and reset allow_daemon on failure.
203
204 2006-07-26  Werner Koch  <wk@g10code.com>
205
206         * rmd160.c (_gcry_rmd160_mixblock): Add cast to transform call.
207
208         * blowfish.c (selftest): Cast string to usnigned char*.
209
210         * primegen.c (prime_generate_internal): Cast unsigned/char*
211         mismatch in calling m_out_of_n.
212         (is_prime): Changed COUNT to unsigned int *.
213
214         * ac.c (_gcry_ac_data_copy): Initialize DATA_MPIS.
215
216         * random.c (gcry_create_nonce): Update the pid after a fork.
217         Reported by Uoti Urpala.
218
219 2006-07-04  Marcus Brinkmann  <marcus@g10code.de>
220
221         * sha512.c: Fix typo in copyright notice.
222
223 2006-06-21  Werner Koch  <wk@g10code.com>
224
225         * rsa.c (_gcry_rsa_generate): Replace xcalloc by calloc.
226         * pubkey.c (gcry_pk_encrypt, gcry_pk_sign): Ditto.
227         (sexp_to_key, sexp_to_sig, sexp_to_enc, gcry_pk_encrypt) 
228         (gcry_pk_sign, gcry_pk_genkey, gcry_pk_get_keygrip): Ditto. 
229         * md.c (md_copy): Ditto.
230         
231 2006-04-22  Moritz Schulte  <moritz@g10code.com>
232
233         * random-daemon.c (_gcry_daemon_initialize_basics): New argument:
234         SOCKETNAME.  Passing on to connect_to_socket() if non-NULL.
235         (connect_to_socket, writen, readn, call_daemon): New functions.
236         (_gcry_daemon_randomize, _gcry_daemon_get_random_bytes) 
237         (_gcry_daemon_create_nonce): Call call_daemon().
238         (RANDOM_DAEMON_SOCKET): New symbol.
239         (daemon_socket): New static variable.
240
241         * random.h (_gcry_daemon_initialize_basics): New parameter:
242         SOCKETNAME.
243         (_gcry_set_random_daemon_socket): New declaration.
244
245         * random.c (initialize_basics): Pass DAEMON_SOCKET_NAME to
246         _gcry_daemon_initialize_basics.
247         (_gcry_set_random_daemon_socket): New function, setting
248         DAEMON_SOCKET_NAME.
249
250 2006-04-01  Moritz Schulte  <moritz@g10code.com>
251
252         * ac.c (eme_pkcs_v1_5_encode): Use KEY_SIZE directly, no need to
253         call gcry_ac_key_get_nbits.
254         (eme_pkcs_v1_5_decode): Likewise.
255         (ac_es_dencode_prepare_pkcs_v1_5): Fill options_em structure with
256         key_size.
257         (_gcry_ac_data_dump, gcry_ac_data_dump): New functions.
258         (_gcry_ac_data_to_sexp, _gcry_ac_data_from_sexp): More or less
259         rewritten; changed S-Expression format so that it matches the one
260         used in pubkey.c.
261
262 2006-03-15  Werner Koch  <wk@g10code.com>
263
264         * random-daemon.c: New.
265         * random.c (_gcry_use_random_daemon): New.
266         (get_random_bytes, gcry_randomize, gcry_create_nonce): Try
267         diverting to the daemon functions.
268
269 2006-03-14  Werner Koch  <wk@g10code.com>
270
271         * random.c (lock_seed_file): New.
272         (read_seed_file, _gcry_update_random_seed_file): Use it.
273
274         * random.c (gcry_create_nonce):  Detect a fork and re-seed.
275         (read_pool): Fixed the fork detection; it used to work only for
276         multi-threaded processes.
277
278 2006-03-12  Brad Hards  <bradh@frogmouth.net>  (wk)
279
280         * md.c (md_open): Use new variable macpads_Bsize instead of
281         hardwiring the block size.  Changed at all places.
282
283 2006-03-10  Brad Hards  <bradh@frogmouth.net>  (wk, patch 2005-04-22)
284
285         * md.c, sha256.c:  Add support for SHA-224.
286         (sha224_init): New.
287         
288 2006-01-18  Brad Hards  <bradh@frogmouth.net>  (wk 2006-03-07)
289
290         * cipher.c (cipher_encrypt, cipher_decrypt, do_ofb_encrypt)
291         (do_ofb_decrypt, gcry_cipher_open): Implement Output Feedback Mode.
292
293 2005-11-02  Moritz Schulte  <moritz@g10code.com>
294
295         * pubkey.c (gcry_pk_algo_name): Return "?" instead of NULL for
296         unknown algorithm IDs.
297         * cipher.c (cipher_algo_to_string): Likewise.
298
299 2005-11-01  Moritz Schulte  <moritz@g10code.com>
300
301         * pubkey.c (gcry_pk_algo_info): Don't forget to break after switch
302         case.
303
304 2005-09-19  Werner Koch  <wk@g10code.com>
305
306         * dsa.c (generate): Add preliminary support for 2 and 4 keys.
307         Return an error code if the key size is not supported.
308         (_gcry_dsa_generate): Return an error.
309
310 2005-08-22  Werner Koch  <wk@g10code.com>
311
312         * primegen.c (check_prime): New arg RM_ROUNDS.
313         (prime_generate_internal): Call it here with 5 rounds as used
314         before.
315         (gcry_prime_check): But here with 64 rounds.
316         (is_prime): Make sure never to use less than 5 rounds.
317
318 2005-04-16  Moritz Schulte  <moritz@g10code.com>
319
320         * ac.c (_gcry_ac_init): New function.
321
322 2005-04-12  Moritz Schulte  <moritz@g10code.com>
323
324         * ac.c (_gcry_ac_io_write, _gcry_ac_io_read): Initialize err to
325         make the compiler happy.
326         Always use errno, now that gcry_malloc() is guaranteed to set
327         errno on failure.
328         (_gcry_ac_data_to_sexp): Don't forget to goto out after error in
329         loop.
330         (_gcry_ac_data_to_sexp): Remove unused variable: mpi_list;
331         (_gcry_ac_data_to_sexp): Always deallocate sexp_buffer.
332         (_gcry_ac_data_from_sexp): Don't forget to initialize data_set_new.
333         (_gcry_ac_data_from_sexp): Handle special case, which is
334         necessary, since gcry_sexp_nth() does not distinguish between
335         "element does not exist" and "element is the empty list".
336         (_gcry_ac_io_init_va): Use assert to make sure that mode and type
337         are correct.
338         Use gcry_error_t types where gcry_err_code_t types have been used
339         before.
340
341 2005-04-11  Moritz Schulte  <moritz@g10code.com>
342
343         * ac.c (_gcry_ac_data_sign_scheme): Don't forget to initialize
344         buffer.
345
346         * whirlpool.c: New file.
347         * md.c (digest_table): Add whirlpool.
348         * Makefile.am (EXTRA_libcipher_la_SOURCES): Added: whirlpool.c.
349
350 2005-03-30  Moritz Schulte  <moritz@g10code.com>
351
352         * ac.c (_gcry_ac_data_from_sexp): Use length of SEXP_CUR, not
353         length of SEXP; do not forget to set SEXP_TMP to NULL after it has
354         been released.
355
356         (struct gcry_ac_mpi): New member: name_provided.
357         (_gcry_ac_data_set): Rename variable `name_final' to `name_cp';
358         remove const qualifier; change code to not cast away const
359         qualifiers; use name_provided member as well.
360         (_gcry_ac_data_set, _gcry_ac_data_get_name): Use name_provided
361         member of named mpi structure.
362
363         (gcry_ac_name_to_id): Do not forget to initialize err.
364         (_gcry_ac_data_get_index): Do not forget to initialize mpi_return;
365         use gcry_free() instead of free(); remove unnecessary cast; rename
366         mpi_return and name_return to mpi_cp and name_cp; adjust code.
367         (ac_data_mpi_copy): Do not cast away const qualifier.
368         (ac_data_values_destroy): Likewise.
369         (ac_data_construct): Likewise.
370
371         (ac_data_mpi_copy): Initialize flags to GCRY_AC_FLAG_DEALLOC.
372         (ac_data_extract): Use GCRY_AC_FLAG_DEALLOC instead of
373         GCRY_AC_FLAG_COPY.
374
375         (_gcry_ac_io_init_va, _gcry_ac_io_init, gcry_ac_io_init)
376         (gcry_ac_io_init_va, _gcry_ac_io_write, _gcry_ac_io_read)
377         (_gcry_ac_io_read_all, _gcry_ac_io_process): New functions.
378         (gry_ac_em_dencode_t): Use gcry_ac_io_t in prototype instead of
379         memroy strings directly; adjust encode/decode functions to use io
380         objects.
381         (emsa_pkcs_v1_5_encode_data_cb): New function ...
382         (emsa_pkcs_v1_5_encode): ... use it here.
383         (ac_data_dencode): Use io objects.
384         (_gcry_ac_data_encode, _gcry_ac_data_decode, gcry_ac_data_encode)
385         (gcry_ac_data_decode): Likewise.
386         (_gcry_ac_data_encrypt_scheme, gcry_ac_data_encrypt_scheme)
387         (_gcry_ac_data_decrypt_scheme, gcry_ac_data_decrypt_scheme)
388         (_gcry_ac_data_sign_scheme, gcry_ac_data_sign_scheme)
389         (_gcry_ac_data_verify_scheme, gcry_ac_data_verify_scheme):
390         Likewise.
391
392 2005-03-23  Werner Koch  <wk@g10code.com>
393
394         * rndw32.c (_gcry_rndw32_gather_random_fast): While adding data
395         use the size of the object and not the one of its address.  Bug
396         reported by Sascha Kiefer.
397
398 2005-03-19  Moritz Schulte  <moritz@g10code.com>
399
400         * cipher.c (do_cbc_encrypt): Be careful to not overwrite data,
401         which is to be used later on.  This happend, in case CTS is
402         enabled and OUTBUF is equal to INBUF.
403
404 2005-02-25  Werner Koch  <wk@g10code.com>
405
406         * pubkey.c (gcry_pk_get_keygrip): Allow for shadowed-private-key.
407
408 2005-02-13  Moritz Schulte  <moritz@g10code.com>
409
410         * serpent.c: Updated from 1.2 branch:
411
412         s/u32_t/u32/ and s/byte_t/byte/.  Too match what we have always
413         used and are using in all other files too
414         (serpent_test): Moved prototype out of a fucntion.
415
416 2005-02-07  Moritz Schulte  <moritz@g10code.com>
417
418         * ac.c: Major parts rewritten.
419         * pubkey.c (_gcry_pk_get_elements): New function.
420
421 2004-12-09  Werner Koch  <wk@g10code.com>
422
423         * serpent.c (serpent_setkey): Moved prototype of serpent_test to
424         outer scope.
425
426 2004-09-11  Moritz Schulte  <moritz@g10code.com>
427
428         * pubkey.c (pubkey_table): Added an alias entry for GCRY_PK_ELG_E.
429
430 2004-08-23  Moritz Schulte  <moritz@g10code.com>
431
432         * ac.c: Do not include <assert.h>.
433         * rndegd.c: Likewise.
434         * sha1.c: Likewise.
435         * rndunix.c: Likewise.
436         * rndlinux.c: Likewise.
437         * rmd160.c: Likewise.
438         * md5.c: Likewise.
439         * md4.c: Likewise.
440         * cipher.c: Likewise.
441         * crc.c: Likewise.
442         * blowfish.c: Likewise.
443
444         * pubkey.c (dummy_generate, dummy_check_secret_key)
445         (dummy_encrypt, dummy_decrypt, dummy_sign, dummy_verify): Return
446         err code GPG_ERR_NOT_IMPLEMENTED instead of aborting through
447         log_bug().
448         (dummy_get_nbits): Return 0 instead of aborting though log_bug().
449
450 2004-08-19  Werner Koch  <wk@g10code.de>
451
452         * pubkey.c (sexp_data_to_mpi): Changed the zero random byte
453         substituting code to actually do clever things.  Thanks to
454         Matthias Urlichs for noting the implementation problem.
455
456 2004-08-09  Moritz Schulte  <moritz@g10code.com>
457
458         * pubkey.c (gcry_pk_sign): Fixed memory leak; fix provided by
459         Modestas Vainius.
460
461 2004-07-16  Werner Koch  <wk@gnupg.org>
462
463         * rijndael.c (do_encrypt): Fix alignment problem.  Bugs found by
464         Matthias Urlichs.
465         (do_decrypt): Ditto.
466         (keySched, keySched2): Use 2 macros along with unions in the key
467         schedule context.
468
469 2004-07-14  Moritz Schulte  <moritz@g10code.com>
470
471         * rsa.c (_gcry_rsa_decrypt): Don't forget to free "a".  Thanks to
472         Nikos Mavroyanopoulos.
473
474 2004-05-09  Werner Koch  <wk@gnupg.org>
475
476         * random.c (read_pool): Mix the PID in to better protect after a
477         fork.
478
479 2004-07-04  Moritz Schulte  <moritz@g10code.com>
480
481         * serpent.c: Use "u32_t" instead of "unsigned long", do not
482         declare S-Box variables as "register".  Fixes failure on
483         OpenBSD/sparc64, reported by Nikolay Sturm.
484
485 2004-05-07  Werner Koch  <wk@gnupg.org>
486
487         * random.c (initialize): Factored out some code to ..
488         (initialize_basics): .. new function.
489         (_gcry_random_initialize): Just call initialize_basics unless the
490         new arg FULL is set to TRUE.
491         (_gcry_fast_random_poll): Don't do anything unless the random
492         system has been really initialized.
493
494 2004-05-07  Moritz Schulte  <moritz@g10code.de>
495
496         * ac.c (gcry_ac_open): Do not dereference NULL pointer.  Reported
497         by Umberto Salsi.
498
499 2004-02-20  Werner Koch  <wk@gnupg.org>
500
501         * primegen.c (check_prime): New args CB_FUNC and CB_ARG; call them
502         at different stages.  Pass these arguments through all callers.
503
504 2004-02-06  Werner Koch  <wk@gnupg.org>
505
506         * des.c: Add a new OID as used by pkcs#12.
507
508         * rfc2268.c: New. Taken from libgcrypt. 
509         * cipher.c: Setup the rfc2268 algorithm.
510
511 2004-01-25  Moritz Schulte  <mo@g10code.com>
512
513         * primegen.c (prime_generate_internal): Do not forget to free
514         `q_factor'; fixed by Brieuc Jeunhomme.
515         (prime_generate_internal): Do not forget to free `prime'.
516
517 2004-01-14  Moritz Schulte  <mo@g10code.com>
518
519         * ac.c (gcry_ac_data_set): New argument: flags; slightly
520         rewritten.
521         (gcry_ac_data_get_name, gcry_ac_data_get_index): Likewise.
522         (gcry_ac_key_pair_generate): New argument: misc_data; modified
523         order of arguments.
524         (gcry_ac_key_test): New argument: handle.
525         (gcry_ac_key_get_nbits, gcry_ac_key_get_grip): Likewise.
526         Use GCRY_AC_FLAG_NO_BLINDING instead of
527         GCRY_AC_DATA_FLAG_NO_BLINDING.
528         (gcry_ac_mpi): New member: flags.
529         (gcry_ac_data_search, gcry_ac_data_add): Removed functions.
530
531 2003-12-22  Werner Koch  <wk@gnupg.org>
532
533         * primegen.c (is_prime): Release A2.
534
535 2003-12-19  Werner Koch  <wk@gnupg.org>
536
537         * md.c: Moved a couple of functions down below the data structure
538         definitions.
539         (struct gcry_md_context): New field ACTUAL_HANDLE_SIZE.
540         (md_open): Set it here.
541         (strcut gcry_md_list): New field ACTUAL_STRUCT_SIZE.
542         (md_enable): Set it here.
543         (md_close): Wipe the context memory.
544         secure memory.
545         * cipher.c (struct gcry_cipher_handle): New field ACTUAL_HANDLE_SIZE.
546         (gcry_cipher_open): Set it here.
547         (gcry_cipher_close): Use it to always wipe out the handle data.
548
549         * ac.c (gcry_ac_open): Make sure HANDLE gets initialized even when
550         the function is not successful.
551         (gcry_ac_close): Allow a NULL handle.
552         (gcry_ac_key_destroy, gcry_ac_key_pair_destroy): Ditto.
553         (gcry_ac_key_get_grip): Return INV_OBJ on error.
554
555         * primegen.c (prime_generate_internal): Fixed error code for
556         failed malloc.  Replaced the !err if chain by gotos.
557         (gcry_prime_group_generator): Remove the extra sanity check.
558
559         * md.c: Minor code and comment cleanups.
560
561 2003-12-16  Werner Koch  <wk@gnupg.org>
562
563         * primegen.c (gen_prime): Doc fix.  Thanks to Newton Hammet.
564
565 2003-12-11  Werner Koch  <wk@gnupg.org>
566
567         * rndunix.c (slow_poll): Don't use #warning but #error.
568
569         * rndegd.c: Changed indentation.
570         (my_make_filename): Removd the var_arg cruft becuase we
571         don't need it here.  Changed caller.  
572
573         * rndlinux.c: Changed indentation.
574         (open_device): Remove the superfluous stat call and clarify
575         comment.
576
577         * rsa.c: Changed indentation.
578         (secret): Use the standard algorithm if p, q and u are not
579         available.
580         (rsa_blind, rsa_unblind): Renamed from _gcry_rsa_blind,
581         _gcry_rsa_unblind and moved more to the top.
582
583         * md4.c: Changed indentation.  Removed unnecessary casts.
584         * md5.c, rmd160.c, sha1.c, tiger.c: Ditto.
585         * rijndael.c, twofish.c: Ditto.
586         * serpent.c: Removed unnecessary casts.
587         * sha256.c, sha512.c: Ditto.
588
589 2003-12-09  Werner Koch  <wk@gnupg.org>
590
591         * dsa.c: Unified indentation style.
592         * elgamal.c: Ditto. 
593         * des.c (des_key_schedule): Code beautifications.
594         * blowfish.c: Changed indentation style.
595         * cast5.c (do_cast_setkey): Ditto.
596
597         * pubkey.c (gcry_pk_encrypt): Replaced the chain of if(!err) tests
598         by straightforward gotos. Other cleanups.
599         (gcry_pk_decrypt): Ditto.
600         (gcry_pk_sign): Ditto.
601         (gcry_pk_verify): Ditto.
602         (gcry_pk_genkey): Ditto.  Use strtoul instead of strtol.
603         (gcry_pk_ctl): Use GPG_ERR_INV_ARG to indicate bad arguments.
604
605 2003-12-07  Werner Koch  <wk@gnupg.org>
606
607         * pubkey.c (gcry_pk_register_default): Undef the helper macro.
608         (gcry_pk_map_name): Allow NULL for string.
609         (sexp_to_key): Use memcpy and not strncpy.  Use gcry_free and not
610         free.
611         (sexp_to_sig): Ditto.
612         (sexp_to_enc): Ditto.  Replaced the chain of if(!err) tests by
613         straightforward gotos.
614
615 2003-12-05  Werner Koch  <wk@gnupg.org>
616
617         * cipher.c: Documentation cleanups.
618         (gcry_cipher_mode_from_oid): Allow NULL for STRING.
619
620 2003-12-03  Werner Koch  <wk@gnupg.org>
621
622         * elgamal.c (sign, do_encrypt, gen_k): Make sure that a small K is
623         only used for encryption.
624
625 2003-11-18  Werner Koch  <wk@gnupg.org>
626
627         * random.h (rndw32_set_dll_name): Removed unused prototype.
628
629         * Makefile.am (EXTRA_DIST): Added Manifest.
630
631 2003-11-11  Werner Koch  <wk@gnupg.org>
632
633         * Manifest: New.
634
635 2003-11-04  Werner Koch  <wk@gnupg.org>
636
637         * md.c (gcry_md_hash_buffer): Use shortcut for SHA1
638         * sha1.c (_gcry_sha1_hash_buffer): New.
639
640         * random.c: Reformatted most functions.
641         (mix_pool): Moved the failsafe_digest from global
642         scope to here.
643         (do_fast_random_poll): Use the generic fucntions even if a fast
644         gathering function has been used.
645         (read_pool): Detect a fork and retry.
646         (gcry_randomize, get_random_bytes): Don't distinguish anymore
647         between weak and strong random.
648         (gcry_create_nonce): New.
649
650 2003-10-31  Werner Koch  <wk@gnupg.org>
651
652         * rndw32.c (slow_gatherer_windowsNT): Use a plain buffer for the
653         disk performance values and not the W32 API structure.
654
655         * dsa.c (verify): s/exp/ex/ due to shadowing of a builtin.
656         * elgamal.c (verify): Ditto.
657
658         * ac.c (gcry_ac_data_get_index): s/index/idx/
659         (gcry_ac_data_copy_internal): Remove the cast in _gcry_malloc.
660         (gcry_ac_data_add): Must use gcry_realloc instead of realloc.
661         * pubkey.c (sexp_elements_extract): s/index/idx/ as tribute to the
662         forehackers.
663         (gcry_pk_encrypt): Removed shadowed definition of I. Reordered
664         arguments to malloc for clarity.
665         (gcry_pk_sign, gcry_pk_genkey): Ditto.
666         * primegen.c (prime_generate_internal): s/random/randomlevel/.
667
668 2003-10-27  Moritz Schulte  <mo@g10code.com>
669
670         * pubkey.c (gcry_pk_encrypt): Don't forget to deallocate pkey.
671
672 2003-10-27  Werner Koch  <wk@gnupg.org>
673
674         * random.c (gcry_random_add_bytes): Return if buflen is zero to
675         avoid gcc warning about unsed parameter.
676         (MASK_LEVEL): Simplified; does now work for signed and unsigned
677         w/o warnings.
678
679         * md.c (md_start_debug): Removed the const from SUFFIX, because
680         this function is called from the control fucntion which does not
681         require const.
682
683         Prefixed all (pubkey,digest,cipher}_spec_* globale variables with
684         _gcry_.
685
686         * ac.c (ac_key_identifiers): Made static.
687
688         * random.c (getfnc_gather_random,getfnc_fast_random_poll): Move
689         prototypes to ..
690         * rand-internal.h: .. here 
691         * random.c (getfnc_gather_random): Include rndw32 gatherer.
692         * rndunix.c, rndw32.c, rndegd.c: Include them here.
693         * rndlinux.c (_gcry_rndlinux_gather_random): Prepend the _gcry_
694         prefix.  Changed all callers.
695         * rndegd.c (_gcry_rndegd_gather_random): Likewise.
696         (_gcry_rndegd_connect_socket): Likewise.
697         * rndunix.c (_gcry_rndunix_gather_random): Likewise.
698         (waitpid): Made static.
699         * rndw32.c: Removed the old and unused winseed.dll cruft.
700         (_gcry_rndw32_gather_random_fast): Renamed from
701         gather_random_fast.
702         (_gcry_rndw32_gather_random): Renamed from gather_random.  Note,
703         that the changes 2003-04-08 somehow got lost.
704
705         * sha512.c (sha512_init, sha384_init): Made static.
706
707         * cipher.c (do_ctr_decrypt): Removed "return" from this void
708         function.
709
710 2003-10-24  Moritz Schulte  <mo@g10code.com>
711
712         * serpent.c: Fix an issue on big-endian systems.
713
714         * rndw32.c: Removed IS_MODULE -cruft.
715         * rndlinux.c (rndlinux_gather_random): Likewise.
716
717 2003-10-10  Werner Koch  <wk@gnupg.org>
718
719         * primegen.c (gen_prime): Bail out if NBITS is less than 16.
720         (prime_generate_internal): Initialize prime variable to suppress
721         compiler warning.  Check pbits, initialize qbits when passed as
722         zero.
723
724         * primegen.c (prime_generate_internal): New arg
725         ALL_FACTORS. Changed all callers.
726         (gcry_prime_generate): Make the factors arg optional. Request
727         all_factors.  Make sure PRIME is set to NULL even on error.
728         (gcry_prime_group_generator): New.
729         (gcry_prime_release_factors): New.
730
731 2003-10-06  Werner Koch  <wk@gnupg.org>
732
733         * primegen.c (gen_prime): Assert that NBITS is never zero, it
734         would cause a segv.
735
736 2003-09-28  Moritz Schulte  <mo@g10code.com>
737
738         * ac.c: Include "cipher.h".
739
740 2003-09-27  Moritz Schulte  <mo@g10code.com>
741
742         * rndegd.c (do_read): Return nread instead of nbytes; thanks to
743         Michael Caerwyn.
744
745 2003-09-04  Werner Koch  <wk@gnupg.org>
746
747         * pubkey.c (_gcry_pk_aliased_algo_name): New.
748         * ac.c (gcry_ac_open): Use it here.
749
750         * Makefile.am (EXTRA_libcipher_la_SOURCES): Add serpent.c
751
752 2003-09-02  Moritz Schulte  <mo@g10code.com>
753
754         * primegen.c (gcry_prime_check, gcry_prime_generate): New
755         functions.
756         (prime_generate_internal): New function, based on
757         _gcry_generate_elg_prime.
758         (_gcry_generate_elg_prime): Rewritten as a wrapper for
759         prime_generate_internal.
760
761 2003-08-28  Werner Koch  <wk@gnupg.org>
762
763         * pubkey.c (gcry_pk_encrypt): Don't include the flags list in the
764         return value.  This does not make sense and breaks any programs
765         parsing the output strictly (e.g. current gpgsm).
766         (gcry_pk_encrypt): If aliases for the algorithm name exists, take
767         the first one instead of the regular name to adhere to SPKI
768         conventions.
769         (gcry_pk_genkey): Ditto.
770         (gcry_pk_sign): Ditto. Removed unused KEY_ALGO_NAME.
771
772 2003-08-19  Moritz Schulte  <mo@g10code.com>
773
774         * cipher.c: Add support for Serpent
775         * serpent.c: New file.
776
777 2003-08-10  Moritz Schulte  <moritz@g10code.com>
778
779         * rsa.c (_gcry_rsa_blind, _gcry_rsa_unblind): Declare static.
780
781 2003-08-09  Timo Schulz  <twoaday@freakmail.de>
782
783         * random.c (getfnc_gather_random): Don't check NAME_OF_DEV_RANDOM
784         two times, but also the NAME_OF_DEV_URANDOM device.
785         
786 2003-08-08  Moritz Schulte  <moritz@g10code.com>
787
788         * pubkey.c (sexp_to_enc): Fixed extraction of S-Expression: do not
789         fail if no `flags' sub S-Expression is found.
790
791 2003-07-27  Werner Koch  <wk@gnupg.org>
792
793         * md.c (gcry_md_lookup_func_oid): Allow for empty OID lists.
794
795 2003-07-23  Moritz Schulte  <moritz@g10code.com>
796
797         * ac.c (gcry_ac_data_construct): New argument: include_flags, only
798         include `flags' S-expression, if include_flags is true.  Adjust
799         callers.  Thanks for triggering a bug caused by `flags'
800         sub-S-expression where they are not expected to Ralf Schneider.
801
802 2003-07-21  Moritz Schulte  <moritz@g10code.com>
803
804         * pubkey.c (gcry_pk_lookup_func_name): Use new member name
805         `aliases' instead of `sexp_names'.
806
807         * ac.c (gcry_ac_key_data_get): New function.
808
809         * cipher.c (gcry_cipher_lookup_func_name): Fix return value.
810
811 2003-07-20  Moritz Schulte  <moritz@g10code.com>
812
813         * blowfish.c: Adjusted for new gcry_cipher_spec_t structure.
814         * cast5.c: Likewise.
815         * twofish.c: Likewise.
816         * arcfour.c: Likewise.
817         * rijndael.c (rijndael_oids, rijndael192_oids, rijndael256_oids):
818         New variables, adjust for new gcry_cipher_spec_t structure.
819         * des.c (oids_tripledes): New variable, adjust for new
820         gcry_cipher_spec_t structure.
821
822         * md.c (oid_table): Removed.
823
824         * tiger.c (oid_spec_tiger): New variable.
825         (digest_spec_tiger): Adjusted for new gry_md_spec_t structure.
826
827         * sha512.c (oid_spec_sha512): New variable.
828         (digest_spec_sha512): Adjusted for new gry_md_spec_t structure.
829
830         * sha512.c (oid_spec_sha384): New variable.
831         (digest_spec_sha384): Adjusted for new gry_md_spec_t structure.
832
833         * sha256.c (oid_spec_sha256): New variable.
834         (digest_spec_sha256): Adjusted for new gry_md_spec_t structure.
835
836         * sha1.c (oid_spec_sha1): New variable.
837         (digest_spec_sha1): Adjusted for new gry_md_spec_t structure.
838
839         * rmd160.c (oid_spec_rmd160): New variable.
840         (digest_spec_rnd160): Adjusted for new gry_md_spec_t structure.
841
842         * md5.c (oid_spec_md5): New variable.
843         (digest_spec_md5): Adjusted for new gry_md_spec_t structure.
844
845         * md4.c (oid_spec_md4): New variable.
846         (digest_spec_md4): Adjusted for new gry_md_spec_t structure.
847
848         * crc.c (digest_spec_crc32, digest_spec_crc32_rfc1510,
849         digest_spec_crc32_rfc2440): Adjusted for new gry_md_spec_t
850         structure.
851
852 2003-07-19  Moritz Schulte  <moritz@g10code.com>
853
854         * md.c (gcry_md_lookup_func_oid): New function.
855         (search_oid): New function, copied from cipher.c.
856         (gcry_md_map_name): Adjust for new search_oid_interface.
857
858         * cipher.c (oid_table): Removed table.
859         (gcry_cipher_lookup_func_oid): New function.
860         (search_oid): Rewritten to use the module functions.
861         (gcry_cipher_map_name): Adjust for new search_oid interface.
862         (gcry_cipher_mode_from_oid): Likewise.
863
864 2003-07-18  Werner Koch  <wk@gnupg.org>
865
866         * md.c (gcry_md_hash_buffer): Convert ERR to gpg_error_t in
867         gpg_strerror.
868
869 2003-07-14  Moritz Schulte  <moritz@g10code.com>
870
871         * cipher.c (gcry_cipher_lookup_func_name): Also check the cipher
872         name aliases, not just the primary name.
873         (gcry_cipher_map_name): Remove kludge for aliasing Rijndael to
874         AES.
875
876         * arcfour.c, blowfish.c, cast5.c, des.c, twofish.c: Adjust cipher
877         specification structures.
878
879         * rijndael.c (rijndael_names, rijndael192_names,
880         rijndael256_names): New variables, use them in the cipher
881         specifications.
882
883         * rmd160test.c: Removed file.
884
885         * ac.c, arcfour.c, blowfish.c, cast5.c, cipher.c, des.c, dsa.c,
886         elgamal.c, md.c, pubkey.c, random.c, rijndael.c, rsa.c, twofish.c:
887         Used gcry_err* wrappers for libgpg symbols.
888
889         * primegen.c (gen_prime): Correct the order arguments to
890         extra_check.
891
892 2003-07-12  Moritz Schulte  <moritz@g10code.com>
893
894         * ac.c: Replaced all public occurences of gpg_error_t with
895         gcry_error_t.
896         * cipher.c: Likewise.
897         * md.c: Likewise.
898         * pubkey.c: Likewise.
899         * random.c: Likewise.
900
901         * cipher.c: Added support for TWOFISH128.
902
903 2003-07-08  Moritz Schulte  <moritz@g10code.com>
904
905         * ac.c (gcry_ac_data_copy_internal): New function, based on
906         gcry_ac_data_copy.
907         (gcry_ac_data_copy): Made public, use gcry_ac_data_copy_internal.
908         (gcry_ac_key_init): Use gcry_ac_data_copy_internal.
909
910 2003-07-07  Moritz Schulte  <moritz@g10code.com>
911
912         * ac.c (gcry_ac_data_set): Only release old MPI value if it is
913         different from the new value.  Bug reported by Simon Josefsson
914         <jas@extundo.com>.
915
916         * pubkey.c (gcry_pk_list): New function.
917         * md.c (gcry_md_list): New function.
918
919         * ac.c (gcry_ac_key_pair_generate): Fix calculation of format
920         string size.
921
922 2003-07-05  Moritz Schulte  <moritz@g10code.com>
923
924         * md.c: Named struct of digest_table `digest_table_entry'.
925         (digest_table_entry): New member: algorithm; filled in.
926         (digest_table_entry): Removed unused member: flags.
927         (gcry_md_register): New argument: algorithm_id, filled in.
928         (gcry_md_register_default): Used algorithm ID from module
929         structure.
930         (gcry_md_map_name): Likewise.
931         (md_enable): Likewise.
932         (md_read): Likewise.
933         (gcry_md_info): Likewise.
934
935         * pubkey.c: Named truct for pubkey_table `pubkey_table_entry'.
936         (pubkey_table_entry): New member: algorithm; filled in.
937         (gcry_pk_register_default): Used algorithm ID from pubkey_table.
938         (gcry_pk_register): New argument: algorithm_id, filled in.
939         (gcry_pk_map_name): Used algorithm ID from module structure.
940         (gcry_pk_decrypt): Likewise.
941         (gcry_pk_encrypt): Likewise.
942         (gcry_pk_verify): Likewise.
943         (gcry_pk_sign): Likewise.
944         (gcry_pk_testkey): Likewise.
945         (gcry_pk_genkey): Likewise.
946         (gcry_pk_get_nbits): Likewise.
947         (sexp_to_key): Removed unused variable: algo.
948         (sexp_to_sig): Likewise.
949
950         * cipher.c: Named struct for cipher_table `cipher_table_entry'.
951         (cipher_table_entry): New member: algorithm; filled in.
952         (gcry_cipher_register_default): Used algorithm ID from
953         cipher_table.
954         (gcry_cipher_register): New argument: algorithm_id, filled in.
955         (gcry_cipher_map_name): Used algorithm ID from module structure.
956
957         * arcfour.c (cipher_spec_arcfour): Removed algorithm ID.
958         * blowfish.c (cipher_spec_blowfish): Likewise.
959         * cast5.c (cipher_spec_cast5): Likewise.
960         * crc.c (digest_spec_crc32): Likewise.
961         * crc.c (digest_spec_crc32_rfc1510): Likewise.
962         * crc.c (digest_spec_crc32_rfc2440): Likewise.
963         * des.c (cipher_spec_des): Likewise.
964         * des.c (cipher_spec_tripledes): Likewise.
965         * dsa.c (pubkey_spec_dsa): Likewise.
966         * elgamal.c (pubkey_spec_elg): Likewise.
967         * md4.c (digest_spec_md4): Likewise.
968         * md5.c (digest_spec_md5): Likewise.
969         * aes.c (cipher_spec_aes): Likewise.
970         * aes.c (cipher_spec_aes192): Likewise.
971         * aes.c (cipher_spec_aes256): Likewise.
972         * rsa.c (pubkey_spec_rsa): Likewise.
973         * sha1.c (digest_spec_sha1): Likewise.
974         * sha256.c (digest_spec_sha256): Likewise.
975         * sha512.c (digest_spec_sha512): Likewise.
976         * tiger.c (digest_spec_tiger): Likewise.
977         * twofish.c (cipher_spec_twofish): Likewise.
978         * twofish.c (cipher_spec_twofish128): Likewise.
979
980         * Makefile.am (EXTRA_libcipher_la_SOURCES): Fix list of source
981         files; reported by Simon Josefsson <jas@extundo.com>.
982
983         * pubkey.c: Replaced all occurences of `id' with `algorithm',
984         since `id' is a keyword in obj-c.
985         * md.c: Likewise.
986         * cipher.c: Likewise.
987
988         * crc.c, md4.c, md5.c, rmd160.c, sha1.c, sha256.c, tiger.c:
989         Replaced all occurences of gcry_digest_spec_t with gcry_md_spec_t.
990
991         * dsa.c, rsa.c, elgamal.c: Replaced all occurencens of
992         gcry_pubkey_spec_t with gcry_pk_spec_t.
993
994         * md.c: Replaced all occurences of gcry_digest_spec_t with
995         gcry_md_spec_t.
996         (gcry_digest_register_default): Renamed to ...
997         (gcry_md_register_default): ... this; adjusted callers.
998         (gcry_digest_lookup_func_name): Renamed to ...
999         (gcry_md_lookup_func_name): ... this; adjusted callers.
1000         (gcry_digest_lookup_name): Renamed to ...
1001         (gcry_md_lookup_name): ... this; adjusted callers.
1002         (gcry_digest_register): Renamed to ...
1003         (gcry_md_register): ... this.
1004         (gcry_digest_unregister): Renamed to ...
1005         (gcry_md_unregister): ... this.
1006
1007         * pubkey.c (gcry_pubkey_register): Renamed to ...
1008         (gcry_pk_register): ... this.
1009         (gcry_pubkey_unregister): Renamed to ...
1010         (gcry_pk_unregister): ... this.
1011         Replaced all occurences of gcry_pubkey_spec_t with gcry_pk_spec_t.
1012         (gcry_pubkey_register_default): Renamed to ...
1013         (gcry_pk_register_default): ... this; adjusted callers.
1014         (gcry_pubkey_lookup_func_name): Renamed to ...
1015         (gcry_pk_lookup_func_name): ... this; adjusted callers.
1016         (gcry_pubkey_lookup_name): Renamed to ...
1017         (gcry_pk_lookup_name): ... this; adjusted callers.
1018
1019         * md.c (gcry_md_hash_buffer): Fix error checking.  Thanks to Simon
1020         Josefsson <jas@extunde.com>.
1021
1022 2003-07-04  Moritz Schulte  <moritz@g10code.com>
1023
1024         * cipher.c (gcry_cipher_list): New function.
1025
1026 2003-07-01  Moritz Schulte  <moritz@g10code.com>
1027
1028         * pubkey.c (sexp_to_sig): Accept a `flags' S-expression to be more
1029         consistent with sexp_to_enc.
1030
1031 2003-06-30  Moritz Schulte  <moritz@g10code.com>
1032
1033         * Makefile.am (libcipher_la_SOURCES): Added: ac.c.
1034
1035         * pubkey.c (_gcry_pk_module_lookup): New function.
1036         (_gcry_pk_module_release): New function.
1037
1038 2003-06-29  Moritz Schulte  <moritz@g10code.com>
1039
1040         * ac.c: New file.
1041
1042 2003-06-26  Werner Koch  <wk@gnupg.org>
1043
1044         * md.c (gcry_md_hash_buffer): Trigger BUG correcly with new API.
1045
1046 2003-06-19  Werner Koch  <wk@gnupg.org>
1047
1048         * md.c (gcry_md_is_enabled): Fixed. 
1049
1050 2003-06-18  Werner Koch  <wk@gnupg.org>
1051
1052         * cipher.c (gcry_cipher_get_algo_keylen): New.
1053         (gcry_cipher_get_algo_blklen): New.
1054
1055 2003-06-18  Moritz Schulte  <moritz@g10code.com>
1056
1057         * arcfour.c, cipher.c, blowfish.c, md.c, cast5.c, pubkey.c, crc.c,
1058         des.c, dsa.c, elgamal.c, md4.c, md5.c, random.c, rijndael.c,
1059         rmd160.c, rsa.c, sha1.c, sha256.c, sha512.c, tiger.c, twofish.c:
1060         Replaced older types GcryDigestSpec, GcryCipherSpec and
1061         GcryPubkeySpec with newer types: gcry_digest_spec_t,
1062         gcry_cipher_spec_t and gcry_pubkey_spec_t.
1063
1064         * md.c (gcry_digest_id_new): Removed function.
1065         (gcry_digest_register): Removed code for generating a new module
1066         ID.
1067
1068         * pubkey.c (gcry_pubkey_id_new): Removed function.
1069         (gcry_pubkey_register): Removed code for generating a new module
1070         ID.
1071
1072         * cipher.c, md.c, pubkey.c: Replace old type GcryModule with newer
1073         one: gcry_module_t.
1074         (gcry_cipher_id_new): Removed function.
1075         (gcry_cipher_register): Removed code for generating a new module
1076         ID.
1077
1078         * cipher.c (gcry_cipher_register): Adjust call to
1079         _gcry_module_add.
1080         (gcry_cipher_register_default): Likewise.
1081         * pubkey.c (gcry_pubkey_register_default): Likewise.
1082         (gcry_pubkey_register): Likewise.
1083         * md.c (gcry_digest_register_default): Likewise.
1084         (gcry_digest_register): Likewise.
1085
1086         * md.c (gcry_digest_lookup_func_id): Removed function.
1087         (gcry_digest_lookup_id): Likewise.
1088         (gcry_digest_id_new): Use _gcry_module_lookup_id instead of
1089         gcry_digest_lookup_id.
1090         (digest_algo_to_string): Likewise.
1091         (check_digest_algo): Likewise.
1092         (md_enable): Likewise.
1093         (md_digest_length): Likewise.
1094         (md_asn_oid): Likewise.
1095
1096         * pubkey.c (gcry_pubkey_lookup_id): Removed function.
1097         (gcry_pubkey_lookup_func_id): Likewise.
1098         (gcry_pubkey_id_new): Use _gcry_module_lookup_id instead of
1099         gcry_pubkey_id_new.
1100         (gcry_pk_algo_name): Likewise.
1101         (disable_pubkey_algo): Likewise.
1102         (check_pubkey_algo): Likewise.
1103         (pubkey_get_npkey): Likewise.
1104         (pubkey_get_nskey): Likewise.
1105         (pubkey_get_nsig): Likewise.
1106         (pubkey_get_nenc): Likewise.
1107         (pubkey_generate): Likewise.
1108         (pubkey_check_secret_key): Likewise.
1109         (pubkey_encrypt): Likewise.
1110         (pubkey_decrypt): Likewise.
1111         (pubkey_sign): Likewise.
1112         (pubkey_verify): Likewise.
1113         (gcry_pk_algo_info): Likewise.
1114
1115         * cipher.c (gcry_cipher_lookup_func_id): Removed function.
1116         (gcry_cipher_lookup_id): Likewise.
1117         (cipher_algo_to_string): use _gcry_module_lookup_id instead of
1118         gcry_cipher_lookup_id.
1119         (disable_cipher_algo): Likewise.
1120         (check_cipher_algo): Likewise.
1121         (cipher_get_blocksize): Likewise.
1122         (gcry_cipher_open): Likewise.
1123         (gcry_cipher_id_new): Likewise.
1124
1125 2003-06-17  Moritz Schulte  <moritz@g10code.com>
1126
1127         * Makefile.am (GCRYPT_MODULES): Set to @GCRYPT_CIPHERS@,
1128         @GCRYPT_PUBKEY_CIPHERS@, @GCRYPT_DIGESTS@ and @GCRYPT_RANDOM@.
1129         (libcipher_la_DEPENDENCIES): Set to $(GCRYPT_MODULES).
1130         (libcipher_la_LIBADD): Likewise.
1131         (AM_CFLAGS): Added: @GPG_ERROR_CFLAGS@.
1132         (EXTRA_libcipher_la_SOURCES): Added all conditional sources.
1133
1134         * md.c (md_open): Use _gcry_fast_random_poll instead of
1135         fast_random_poll.
1136         * cipher.c (gcry_cipher_open): Likewise.
1137
1138         * random.h (fast_random_poll): Removed macro.
1139
1140         * blowfish.c, md4.c, md5.c, rmd160.c, sha1.c, sha256.c, sha512.c,
1141         tiger.c: Use Autoconf's WORDS_BIGENDIAN instead of our own
1142         BIG_ENDIAN_HOST.
1143
1144 2003-06-16  Moritz Schulte  <moritz@g10code.com>
1145
1146         * random.c (getfnc_gather_random): Do not special-case
1147         USE_ALL_RANDOM_MODULES, make it the default.
1148
1149         * dsa.c: Replace last occurences of old type names with newer
1150         names (i.e. replace MPI with gcry_mpi_t).
1151         * elgamal.c: Likewise.
1152         * primegen.c: Likewise.
1153         * pubkey.c: Likewise.
1154         * rsa.c: Likewise.
1155
1156 2003-06-14  Moritz Schulte  <moritz@g10code.com>
1157
1158         * des.c (des_setkey): Add selftest check.
1159         (tripledes_set3keys): Likewise.
1160         (do_tripledes_setkey): Remove selftest check.
1161         (do_des_setkey): Likewise.
1162
1163 2003-06-11  Moritz Schulte  <moritz@g10code.com>
1164
1165         * md.c (_gcry_md_init): New function.
1166         * cipher.c (_gcry_cipher_init): New function.
1167         * pubkey.c (_gcry_pk_init): New function.
1168
1169 2003-06-13  Werner Koch  <wk@gnupg.org>
1170
1171         * md.c (gcry_md_get_algo): Reverted to old API.  This is a
1172         convenience function anyway and error checking is not approriate.
1173         (gcry_md_is_secure): New.
1174         (gcry_md_is_enabled): New.
1175
1176 2003-06-12  Werner Koch  <wk@gnupg.org>
1177
1178         * cipher.c (gcry_cipher_open): Make sure HANDLE is set to NULL on
1179         error.
1180
1181 2003-06-11  Werner Koch  <wk@gnupg.org>
1182
1183         * md.c (gcry_md_open): Make sure H receives either NULL or an
1184         valid handle.
1185         (gcry_md_copy): Swapped arguments so that it is more in lione with
1186         md_open and most other API fucntions like memcpy (destination
1187         comes first).  Make sure HANDLE is set to NULL on error.
1188         
1189         * rijndael.c (do_encrypt): Hack to force correct alignment.  It
1190         seems not to be not sufficient, though.  We should rework this
1191         fucntions and remove all these ugly casts.  Let the compiler
1192         optimize or have an assembler implementation.
1193
1194 2003-06-09  Moritz Schulte  <moritz@g10code.com>
1195
1196         * Makefile.am: Removed rules serpent, since that is not commited
1197         yet.
1198
1199 2003-06-08  Moritz Schulte  <moritz@g10code.com>
1200
1201         * pubkey.c (gcry_pk_encrypt): Improve calculation for size of the
1202         format string.
1203
1204 2003-06-07  Moritz Schulte  <moritz@g10code.com>
1205
1206         * arcfour.c, bithelp.h, blowfish.c, cast5.c, cipher.c, crc.c,
1207         des.c, dsa.c, elgamal.c, md4.c, md5.c, md.c, primegen.c, pubkey.c,
1208         rand-internal.h, random.c, random.h, rijndael.c, rmd160.c,
1209         rmd160test.c, rmd.h, rndeged.c, rndlinux.c, rndunix.c, rndw32.c,
1210         rsa.c, sha1.c, sha256.c, sha512.c, tiger.c, twofish.c: Edited all
1211         preprocessor instructions to remove whitespace before the '#'.
1212         This is not required by C89, but there are some compilers out
1213         there that don't like it.  Replaced any occurence of the now
1214         deprecated type names with the new ones.
1215         
1216 2003-06-04  Moritz Schulte  <moritz@g10code.com>
1217
1218         * pubkey.c (gcry_pk_encrypt): Construct an arg_list and use
1219         gcry_sexp_build_array instead of gcry_sexp_build.
1220         (gcry_pk_sign): Likewise.
1221         (gcry_pk_genkey): Likewise.
1222
1223 2003-06-01  Moritz Schulte  <moritz@g10code.com>
1224
1225         * dsa.c (_gcry_dsa_generate): Do not check wether the algorithm ID
1226         does indeed belong to DSA.
1227         (_gcry_dsa_sign): Likewise.
1228         (_gcry_dsa_verify): Likewise.
1229         (_gcry_dsa_get_nbits): Likewise.
1230
1231         * elgamal.c (_gcry_elg_check_secret_key): Do not check wether the
1232         algorithm ID does indeed belong to ElGamal.
1233         (_gcry_elg_encrypt): Likewise.
1234         (_gcry_elg_decrypt): Likewise.
1235         (_gcry_elg_sign): Likewise.
1236         (_gcry_elg_verify): Likewise.
1237         (_gcry_elg_get_nbits): Likewise.
1238         (_gcry_elg_generate): Likewise.
1239
1240         * rsa.c (_gcry_rsa_generate): Do not check wether the algorithm ID
1241         does indeed belong to RSA.
1242         (_gcry_rsa_encrypt): Likewise.
1243         (_gcry_rsa_decrypt): Likewise.
1244         (_gcry_rsa_sign): Likewise.
1245         (_gcry_rsa_verify): Likewise.
1246         (_gcry_rsa_get_nbits): Likewise.
1247
1248 2003-05-30  Moritz Schulte  <moritz@g10code.com>
1249
1250         * md.c (md_get_algo): Return zero in case to algorithm is enabled.
1251
1252         * md.c (gcry_md_info): Adjusted for new no-errno-API.
1253         (md_final): Likewise.
1254         (gcry_md_get_algo): Likewise.
1255         * pubkey.c (gcry_pk_get_keygrip): Likewise.
1256         (gcry_pk_ctl): Likewise.
1257         (gcry_pk_algo_info): Likewise.
1258         * des.c (selftest): Likewise.
1259
1260 2003-05-29  Moritz Schulte  <moritz@g10code.com>
1261
1262         * md.c (md_enable): Do not forget to release module on error.
1263         (gcry_md_open): Adjusted for new no-errno-API.
1264         (md_open): Likewise.
1265         (md_copy): Likewise.
1266         (gcry_md_copy): Likewise.
1267         (gcry_md_setkey): Likewise.
1268         (gcry_md_algo_info): Likewise.
1269
1270         * cipher.c (gcry_cipher_open): Adjusted for new no-errno-API and
1271         also fixed a locking bug.
1272         (gcry_cipher_encrypt): Adjusted for new no-errno-API.
1273         (gcry_cipher_decrypt): Likewise.
1274         (gcry_cipher_ctl): Likewise.
1275         (gcry_cipher_info): Likewise.
1276         (gcry_cipher_algo_info): Likewise.
1277
1278 2003-05-28  Moritz Schulte  <moritz@g10code.com>
1279
1280         * md.c (md_enable): Adjusted for libgpg-error.
1281         (gcry_md_enable): Likewise.
1282         (gcry_digest_register_default): Likewise.
1283         (gcry_digest_register): Likewise.
1284         (check_digest_algo): Likewise.
1285         (prepare_macpads): Likewise.
1286         (gcry_md_setkey): Likewise.
1287         (gcry_md_ctl): Likewise.
1288         (gcry_md_get): Likewise.
1289         (gcry_md_algo_info): Likewise.
1290         (gcry_md_info): Likewise.
1291         * dsa.c (_gcry_dsa_generate): Likewise.
1292         (_gcry_dsa_check_secret_key): Likewise.
1293         (_gcry_dsa_sign): Likewie.
1294         (_gcry_dsa_verify): Likewise.
1295         * twofish.c (do_twofish_setkey): Likewise.
1296         (twofish_setkey): Likewise.
1297         * cipher.c (gcry_cipher_register): Likewise.
1298
1299 2003-05-25  Moritz Schulte  <moritz@g10code.com>
1300
1301         * rijndael.c (do_setkey): Adjusted for libgpg-error.
1302         (rijndael_setkey): Likewise.
1303         * random.c (gcry_random_add_bytes): Likewise.
1304         * elgamal.c (_gcry_elg_generate): Likewise.
1305         (_gcry_elg_check_secret_key): Likewise.
1306         (_gcry_elg_encrypt): Likewise.
1307         (_gcry_elg_decrypt): Likewise.
1308         (_gcry_elg_sign): Likewise.
1309         (_gcry_elg_verify): Likewise.
1310         * rsa.c (_gcry_rsa_generate): Likewise.
1311         (_gcry_rsa_check_secret_key): Likewise.
1312         (_gcry_rsa_encrypt): Likewise.
1313         (_gcry_rsa_decrypt): Likewise.
1314         (_gcry_rsa_sign): Likewise.
1315         (_gcry_rsa_verify): Likewise.
1316         * pubkey.c (dummy_generate, dummy_check_secret_key, dummy_encrypt,
1317         dummy_decrypt, dummy_sign, dummy_verify): Likewise.
1318         (gcry_pubkey_register): Likewise.
1319         (check_pubkey_algo): Likewise.
1320         (pubkey_generate): Likewise.
1321         (pubkey_check_secret_key): Likewise.
1322         (pubkey_encrypt): Likewise.
1323         (pubkey_decrypt): Likewise.
1324         (pubkey_sign): Likewise.
1325         (pubkey_verify): Likewise.
1326         (sexp_elements_extract): Likewise.
1327         (sexp_to_key): Likewise.
1328         (sexp_to_sig): Likewise.
1329         (sexp_to_enc): Likewise.
1330         (sexp_data_to_mpi): Likewise.
1331         (gcry_pk_encrypt): Likewise.
1332         (gcry_pk_decrypt): Likewise.
1333         (gcry_pk_sign): Likewise.
1334         (gcry_pk_verify): Likewise.
1335         (gcry_pk_testkey): Likewise.
1336         (gcry_pk_genkey): Likewise.
1337         (gcry_pk_ctl): Likewise.
1338         * cipher.c (dummy_setkey): Likewise.
1339         (check_cipher_algo): Likewise.
1340         (gcry_cipher_open): Likewise.
1341         (cipher_setkey): Likewise.
1342         (gcry_cipher_ctl): Likewise.
1343         (cipher_encrypt): Likewise.
1344         (gcry_cipher_encrypt): Likewise.
1345         (cipher_decrypt): Likewise.
1346         (gcry_cipher_decrypt): Likewise.
1347         (gcry_cipher_info): Likewise.
1348         (gcry_cipher_algo_info): Likewise.
1349         * cast5.c (cast_setkey): Likewise.
1350         (do_cast_setkey): Likewise.
1351         * arcfour.c (arcfour_setkey): Likewise.
1352         (do_arcfour_setkey): Likewise.
1353         * blowfish.c (do_bf_setkey): Likewise.
1354         (bf_setkey): Likewise.
1355         * des.c (do_des_setkey): Likewise.
1356         (do_tripledes_setkey): Likewise.
1357
1358 2003-05-22  Moritz Schulte  <moritz@g10code.com>
1359
1360         * tiger.c: Merged code ussing the U64_C macro from GnuPG.
1361
1362         * sha512.c: Likewise.
1363
1364 2003-05-17  Moritz Schulte  <moritz@g10code.com>
1365
1366         * pubkey.c (gcry_pk_genkey): Fix type: acquire a lock, instead of
1367         releasing it.
1368
1369 2003-05-11  Moritz Schulte  <moritz@g10code.com>
1370
1371         * pubkey.c (gcry_pk_testkey): Call REGISTER_DEFAULT_CIPHERS.
1372         (gcry_pk_ctl): Likewise.
1373
1374 2003-04-27  Moritz Schulte  <moritz@g10code.com>
1375
1376         * pubkey.c (gcry_pk_genkey): Release sexp after extracted data has
1377         been used.
1378
1379         * md.c (gcry_md_get_algo_dlen): Simplified, simply call
1380         md_digest_length to do the job.
1381
1382         * des.c (do_des_setkey): Check for selftest failure not only
1383         during initialization.
1384         (do_tripledes_setkey): Include check for selftest failure.
1385
1386         * pubkey.c (gcry_pubkey_register_default): New macro
1387         `pubkey_use_dummy', use it.
1388
1389         * elgamal.c (elg_names): New variable.
1390         (pubkey_spec_elg): Include elg_names.
1391
1392         * dsa.c (dsa_names): New variable.
1393         (pubkey_spec_dsa): Include dsa_names.
1394
1395         * rsa.c (rsa_names): New variable.
1396         (pubkey_spec_rsa): Include rsa_names.
1397
1398         * pubkey.c (gcry_pubkey_lookup_func_name): Compare name also with
1399         the names listed in `sexp_names'.
1400
1401 2003-04-24  Moritz Schulte  <moritz@g10code.com>
1402
1403         * pubkey.c (sexp_to_key): New variables: module, pubkey.  Adjusted
1404         to new module interface.
1405         (sexp_to_key): Changend type of argument `retalgo' from `int *' to
1406         `GcryModule **'.  Adjusted all callers.  Removed argument:
1407         r_algotblidx.
1408         (sexp_to_sig): Changend type of argument `retalgo' from `int *' to
1409         `GcryModule **'.  Adjusted all callers.
1410         (sexp_to_enc): Likewise.
1411
1412         (pubkey_get_npkey, pubkey_get_nskey, pubkey_get_nsig,
1413         pubkey_get_nenc): Use strlen to find out the number.
1414
1415         * rsa.c: Adjust pubkey_spec_rsa to new internal interface.
1416         * dsa.c: Likewise.
1417         * elgamal.c: Likewise.
1418
1419 2003-04-17  Moritz Schulte  <moritz@g10code.com>
1420
1421         * pubkey.c (sexp_elements_extract): New function.
1422         * pubkey.c (sexp_to_key): Removed variable `idx', added `err', use
1423         sexp_elements_extract.
1424         (sexp_to_sig): Likewise.
1425         (sexp_to_enc): Likewise.
1426
1427         * pubkey.c: Terminate list correctly.
1428         * md.c: Include sha512/sha384 in digest_table.
1429
1430 2003-04-16  Moritz Schulte  <moritz@g10code.com>
1431
1432         * Makefile.am: Include support for sha512.c.
1433
1434         * sha512.c: New file, merged from GnuPG, with few modifications
1435         for libgcrypt.
1436
1437         * rand-internal.h: Removed declarations for constructor functions.
1438
1439         * md.c (md_copy): Call _gcry_module_use for incrementing the usage
1440         counter of the digest modules.
1441
1442         * rsa.c: Do not include "rsa.h".
1443         * dsa.c: Do not include "dsa.h".
1444         * elgamal.c: Do not include "elgamal.h".
1445         * des.c: Do not include "des.h".
1446         * cast5.c: Do not include "cast5.h".
1447         * blowfish.c: Do not include "blowfish.h".
1448         * arcfour.c: Do not include "arcfour.h".
1449
1450         * Makefile.am (libcipher_la_DEPENDENCIES): Removed.
1451         (libcipher_la_LIBADD): Removed.
1452         Use Automake conditionals for conditional compilation.
1453
1454 2003-04-13  Moritz Schulte  <moritz@g10code.com>
1455
1456         * cipher.c (gcry_cipher_open): Call REGISTER_DEFAULT_CIPHERS.
1457
1458         * md.c (gcry_md_list): New member: module.
1459         (md_enable): New variable: module, changed use of module and
1460         digest.
1461         (md_enable): Initialize member: module.
1462         (md_close): Call _gcry_module_release.
1463
1464         * cipher.c (gcry_cipher_open): New variable: module, changed use of
1465         module and cipher.
1466         (struct gcry_cipher_handle): New member: module.
1467         (gcry_cipher_open): Initialize member: module.
1468         (gcry_cipher_close): Call _gcry_module_release.
1469
1470 2003-04-09  Moritz Schulte  <moritz@g10code.com>
1471         
1472         * cipher.c: Include "ath.h".
1473         * md.c: Likewise.
1474         * pubkey.c: Likewise.
1475
1476         * cipher.c (ciphers_registered_lock): New variable.
1477         * md.c (digests_registered_lock): New variable.
1478         * pubkey.c (pubkeys_registered_lock): New variable.
1479
1480         * rndlinux.c (gnupgext_version, func_table): Removed definitions.
1481         (gnupgext_enum_func): Removed function.
1482         (_gcry_rndlinux_constructor): Removed function.
1483
1484         * rndegd.c (gnupgext_version, func_table): Removed definitions.
1485         (gnupgext_enum_func): Removed function.
1486         (_gcry_rndegd_constructor): Removed function.
1487
1488         * rndunix.c (gnupgext_version, func_table): Removed definitions.
1489         (gnupgext_enum_func): Removed function.
1490         (_gcry_rndunix_constructor): Removed function.
1491
1492         * rndw32.c (gnupgext_version, func_table): Removed definitions.
1493         (gnupgext_enum_func): Removed function.
1494         (_gcry_rndw32_constructor): Removed function.
1495
1496         * rndegd.c (rndegd_connect_socket): Simplify code for creating the
1497         egd socket address.
1498         (rndegd_connect_socket): Call log_fatal use instead of
1499         g10_log_fatal.
1500         (egd_gather_random): Renamed to ...
1501         (rndegd_gather_random): ... here.
1502
1503 2003-04-08  Moritz Schulte  <moritz@g10code.com>
1504
1505         * rndlinux.c: Do not include "dynload.h".
1506         * rndunix.c: Likewise.
1507         * rndw32.c: Likewise.
1508
1509         * rndegd.c (rndegd_connect_socket): Factored out from ...
1510         (egd_gather_random): here; call it.
1511         (egd_socket): New variable.
1512         (egd_gather_random): Initialize fd with egd_socket, do not declare
1513         fd static.
1514         (do_read): Merged few changes from GnuPG. FIXME - not finished?
1515         Do not include "dynload.h".
1516
1517         * rndw32.c (gather_random): Renamed to rndw32_gather_random, do
1518         not declare static.
1519         (gather_random_fast): Renamed to rndw32_gather_random_fast, do not
1520         declare static.
1521
1522         * rndunix.c (gather_random): Renamed to rndunix_gather_random, do
1523         not declare static.
1524         * rndegd.c (gather_random): Renamed to rndegd_gather_random, do
1525         not declare static.
1526         * rndlinux.c (gather_random): Renamed to rndlinux_gather_random,
1527         do not declare static.
1528
1529 2003-04-07  Moritz Schulte  <moritz@g10code.com>
1530
1531         * Makefile.am (libcipher_la_SOURCES): Removed construct.c.
1532         (libcipher_la_SOURCES): Added sha1.c, sha256.c, rmd160.c, md4.c,
1533         md5.c, tiger.c and crc.c
1534         (EXTRA_PROGRAMS): Removed sha1, sha256, rmd160, md4, md5, tiger
1535         and crc.  Removed definitions: EXTRA_md4_SOURCES,
1536         EXTRA_md5_SOURCES, EXTRA_rmd160_SOURCES, EXTRA_sha1_SOURCES,
1537         EXTRA_sha256_SOURCES, EXTRA_tiger_SOURCES and EXTRA_crc_SOURCES,
1538         BUILT_SOURCES, DISTCLEANFILES.
1539
1540         * pubkey.c: Do not include "elgamal.h", "dsa.h" and "rsa.h".
1541
1542         * Makefile.am (libcipher_la_SOURCES): Removed rsa.h, elgamal.h,
1543         dsa.h, des.h, cast5.h, arcfour.h and blowfish.h.
1544
1545         * rsa.h: Removed file.
1546         * elgamal.h: Removed file.
1547         * dsa.h: Removed file.
1548         * des.h: Removed file.
1549         * cast5.h: Removed file.
1550         * arcfour.h: Removed file.
1551         * blowfish.h: Removed file.
1552
1553         * Makefile.am (libcipher_la_SOURCES): Removed dynload.c and
1554         dynload.h.
1555
1556         * rsa.c (pubkey_spec_rsa): New variable.
1557         * dsa.c (pubkey_spec_rsa): New variable.
1558         * elgamal.c (pubkey_spec_elg): New variable.
1559         
1560         * rsa.c (_gcry_rsa_get_info): Removed function.
1561         * elgamal.c (_gcry_elg_get_info): Removed function.
1562         * dsa.c (_gcry_dsa_get_info): Removed function.
1563
1564         * tiger.c (tiger_get_info): Removed function.
1565         (gnupgext_version, func_table): Removed definitions.
1566         (gnupgext_enum_func): Removed function.
1567         (_gcry_tiger_constructor): Removed function.
1568         
1569         * sha1.c (sha1_get_info): Removed function.
1570         (gnupgext_version, func_table): Removed definitions.
1571         (gnupgext_enum_func): Removed function.
1572         (_gcry_sha1_constructor): Removed function.
1573
1574         * sha256.c (sha256_get_info): Removed function.
1575         (gnupgext_version, func_table): Removed definitions.
1576         (gnupgext_enum_func): Removed function.
1577         (_gcry_sha256_constructor): Removed function.
1578
1579         * rmd160.c (rmd160_get_info): Removed function.
1580         (gnupgext_version, func_table): Removed definitions.
1581         (gnupgext_enum_func): Removed function.
1582         (_gcry_rmd160_constructor): Removed function.
1583
1584         * md5.c (md5_get_info): Removed function.
1585         (gnupgext_version, func_table): Removed definitions.
1586         (gnupgext_enum_func): Removed function.
1587         (_gcry_md5_constructor): Removed function.
1588
1589         * md4.c (md4_get_info): Removed function.
1590         (gnupgext_version, func_table): Removed definitions.
1591         (gnupgext_enum_func): Removed function.
1592         (_gcry_md4_constructor): Removed function.
1593
1594         * crc.c (crc_get_info): Removed function.
1595
1596         * arcfour.c (do_arcfour_setkey): Changed type of context argument
1597         to `void *', added local variable for cast, adjusted callers.
1598         (arcfour_setkey): Likewise.
1599         (encrypt_stream): Likewise.
1600         * cast5.c (cast_setkey): Likewise.
1601         (encrypt_block): Likewise.
1602         * rijndael.c (rijndael_setkey): Likewise.
1603         (rijndael_encrypt): Likewise.
1604         (rijndael_decrypt): Likewise.
1605         * twofish.c (twofish_setkey): Likewise.
1606         (twofish_encrypt): Likewise.
1607         (twofish_decrypt): Likewise.
1608         * des.c (do_des_setkey): Likewise.
1609         (do_des_encrypt): Likewise.
1610         (do_des_encrypt): Likewise.
1611         (do_tripledes_encrypt): Likewise.
1612         (do_tripledes_encrypt): Likewise.
1613         * blowfish.c (bf_setkey: Likewise.
1614         (encrypt_block): Likewise.
1615         (decrypt_block): Likewise.
1616         
1617         * arcfour.c (encrypt_stream): Likewise.
1618
1619         * rijndael.c (gnupgext_version, func_table): Removed definitions.
1620         (gnupgext_enum_func) Removed function.  
1621         
1622         * twofish.c (gnupgext_version, func_table): Removed definitions.
1623         (gnupgext_enum_func) Removed function.  
1624
1625         * cast5.c (CIPHER_ALGO_CAST5): Removed.
1626
1627         * blowfish.c (FNCCAST_SETKEY, FNCCAST_CRYPT): Removed macros.
1628         (CIPHER_ALGO_BLOWFISH): Removed symbol.
1629         * cast5.c (FNCCAST_SETKEY, FNCCAST_CRYPT): Likewise.
1630         * des.c (selftest_failed): Removed.
1631         (initialized): New variable.
1632         (do_des_setkey): Run selftest, if not yet done.
1633         (FNCCAST_SETKEY, FNCCAST_CRYPT): Removed macros.
1634
1635         * arcfour.c (_gcry_arcfour_get_info): Removed function.
1636         * blowfish.c (_gcry_blowfish_get_info): Removed function.
1637         * cast5.c (_gcry_cast5_get_info): Removed function.
1638         * des.c (_gcry_des_get_info): Removed function.
1639         * rijndael.c (_gcry_rijndael_get_info): Removed function.
1640         * twofish.c (_gcry_twofish_get_info): Removed function.
1641
1642         * arcfour.c (cipher_spec_arcfour): New variable.
1643         * twofish.c (cipher_spec_twofish, cipher_spec_twofish128): New
1644         variables.
1645         * rijndael.c (cipher_spec_aes, cipher_spec_aes192,
1646         cipher_spec256): New variables.
1647         * des.c (cipher_spec_des, cipher_spec_tripledes): New variables.
1648         * cast5.c (cipher_spec_cast5): New variable.
1649         * blowfish.c (cipher_spec_blowfish): Likewise.
1650         
1651         * twofish.c: Do not include "dynload.h".
1652         * rijndael.c: Likewise.
1653         * des.c: Likewise.
1654         * cast5.c: Likewise.
1655         * blowfish.c: Likewise.
1656         * cipher.c: Likewise.
1657         * crc.c: Likewise.
1658         * md4.c: Likewise.
1659         * md5.c: Likewise.
1660         * md.c: Likewise.
1661         * pubkey.c: Likewise.
1662         * rijndael.c: Likewise.
1663         * sha1.c: Likewise.
1664         * sha256.c: Likewise.
1665
1666         * arcfour.c: Include "cipher.h".
1667         * twofish.c: Likewise.
1668         * rijndael.c: Likewise.
1669         * des.c: Likewise.
1670         * cast5.c: Likewise.
1671         * blowfish.c: Likewise.
1672
1673         * twofish.c (twofish_setkey): Declared argument `key' const.
1674         (twofish_encrypt): Declared argument `inbuf' const.
1675         (twofish_decrypt): Likewise.
1676
1677         * rijndael.c (rijndael_setkey): Declared argument `key' const.
1678         (rijndael_encrypt): Declared argument `inbuf' const.
1679         (rijndael_decrypt): Likewise.
1680
1681         * des.c (do_des_setkey): Declared argument `key' const.
1682         (do_tripledes_setkey): Likewise.
1683         (do_des_encrypt): Declared argument `inbuf' const.
1684         (do_des_decrypt): Likewise.
1685         (do_tripledes_encrypt): Likewise.
1686         (do_tripledes_decrypt): Likewise.
1687
1688         * cast5.c (encrypt_block): Declared argument `inbuf' const.
1689         (decrypt_block): Likewise.
1690         (cast_setkey): Declared argument `key' const.
1691
1692         * blowfish.c (do_bf_setkey): Declared argument `key' const.
1693         (encrypt_block): Declared argument `inbuf' const.
1694         (encrypt_block): Likewise.
1695
1696         
1697
1698         * cipher.c: Remove CIPHER_ALGO_DUMMY related code.
1699         Removed struct cipher_table_s.
1700         Changed definition of cipher_table.
1701         Removed definition of disabled_algos.
1702         (ciphers_registered, default_ciphers_registered): New variables.
1703         (REGISTER_DEFAULT_CIPHERS): New macro.
1704         (dummy_setkey): Declared argument `key' const.
1705         (dummy_encrypt_block): Declared argument `inbuf' const.
1706         (dummy_encrypt_block): Likewise.
1707         (dummy_encrypt_stream): Likewise.
1708         (dummy_encrypt_stream): Likewise.
1709         (dummy_setkey): Use `unsigned char' instead of `byte'.
1710         (dummy_encrypt_block): Likewise.
1711         (dummy_decrypt_block): Likewise.
1712         (dummy_encrypt_stream): Likewise.
1713         (dummy_decrypt_stream): Likewise.
1714         (gcry_cipher_register_default): New function.
1715         (gcry_cipher_lookup_func_id): New function.
1716         (gcry_cipher_lookup_func_name): New function.
1717         (gcry_cipher_lookup_id): New function.
1718         (gcry_cipher_lookup_name): New function.
1719         (gcry_cipher_id_new): New function.
1720         (gcry_cipher_register): New function.
1721         (gcry_cipher_unregister): New function.
1722         (setup_cipher_table): Removed function.
1723         (load_cipher_modules): Removed function.
1724         (gcry_cipher_map_name): Adjusted to use new module management.
1725         (cipher_algo_to_string): Likewise.
1726         (disable_cipher_algo): Likewise.
1727         (check_cipher_algo): Likewise.
1728         (cipher_get_keylen): Likewise.
1729         (cipher_get_blocksize): Likewise.
1730         (gcry_cipher_open): Likewise.
1731         (struct gcry_cipher_handle): Replaced members algo, algo_index,
1732         blocksize, setkey, encrypt, decrypt, stencrypt, stdecrypt with one
1733         member: cipher.
1734         (gcry_cipher_open): Adjusted code for new handle structure.
1735         (cipher_setkey): Likewise.
1736         (cipher_setiv): Likewise.
1737         (cipher_reset): Likewise.
1738         (do_ecb_encrypt): Likewise.
1739         (do_ecb_decrypt): Likewise.
1740         (do_cbc_encrypt): Likewise.
1741         (do_cbc_decrypt): Likewise.
1742         (do_cfb_encrypt): Likewise.
1743         (do_cfb_decrypt): Likewise.
1744         (do_ctr_encrypt): Likewise.
1745         (cipher_encrypt): Likewise.
1746         (gcry_cipher_encrypt): Likewise.
1747         (cipher_decrypt): Likewise.
1748         (gcry_cipher_decrypt): Likewise.
1749         (cipher_sync): Likewise.
1750         (gcry_cipher_ctl): Likewise.
1751
1752         * pubkey.c: Removed struct pubkey_table_s.
1753         Changed definition of pubkey_table.
1754         Removed definition of disabled_algos.
1755         (pubkeys_registered, default_pubkeys_registered): New variables.
1756         (REGISTER_DEFAULT_PUBKEYS): New macro.
1757         (setup_pubkey_table): Removed function.
1758         (load_pubkey_modules): Removed function.
1759         (gcry_pubkey_register_default): New function.
1760         (gcry_pubkey_lookup_func_id): New function.
1761         (gcry_pubkey_lookup_func_name): New function.
1762         (gcry_pubkey_lookup_id): New function.
1763         (gcry_pubkey_lookup_name): New function.
1764         (gcry_pubkey_id_new): New function.
1765         (gcry_pubkey_register): New function.
1766         (gcry_pubkey_unregister): New function.
1767         (gcry_pk_map_name): Adjusted to use new module management.
1768         (gcry_pk_algo_name): Likewise.
1769         (disable_pubkey_algo): Likewise.
1770         (check_pubkey_algo): Likewise.
1771         (pubkey_get_npkey): Likewise.
1772         (pubkey_get_nskey): Likewise.
1773         (pubkey_get_nsig): Likewise.
1774         (pubkey_get_nenc): Likewise.
1775         (pubkey_generate): Likewise.
1776         (pubkey_check_secret_key): Likewise.
1777         (pubkey_encrypt): Likewise.
1778         (pubkey_decrypt): Likewise.
1779         (pubkey_sign): Likewise.
1780         (pubkey_verify): Likewise.
1781         (gcry_pk_get_nbits): Likewise.
1782         (gcry_pk_algo_info): Likewise.
1783
1784         * md.c: Removed struct md_digest_list_s.
1785         (digest_list): Changed definition.
1786         (digests_registered, default_digests_registered): New variables.
1787         (REGISTER_DEFAULT_DIGESTS): New macro.
1788         (new_list_item): Removed function.
1789         (setup_md_table): Removed function.
1790         (load_digest_module): Removed function.
1791         (gcry_digest_register_default): New function.
1792         (gcry_digest_lookup_func_id): New function.
1793         (gcry_digest_lookup_func_name): New function.
1794         (gcry_digest_lookup_id): New function.
1795         (gcry_digest_lookup_name): New function.
1796         (gcry_digest_id_new): New function.
1797         (gcry_digest_register): New function.
1798         (gcry_digest_unregister): New function.
1799         (GcryDigestEntry): New type.
1800         (struct gcry_md_context): Adjusted type of `list'.
1801         (gcry_md_map_name): Adjusted to use new module management.
1802         (digest_algo_to_string): Likewise.
1803         (check_digest_algo): Likewise.
1804         (md_enable): Likewise.
1805         (md_digest_length): Likewise.
1806         (md_asn_oid): Likewise.
1807
1808 2003-04-07  Moritz Schulte  <moritz@g10code.com>
1809
1810         * pubkey.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA,
1811         PUBKEY_ALGO_RSA with GCRY_PK_RSA and PUBKEY_ALGO_ELGAMAL with
1812         GCRY_PK_ELG.
1813
1814         * dsa.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA.
1815
1816 2003-04-01  Moritz Schulte  <moritz@g10code.com>
1817
1818         * des.c: Removed checks for GCRY_CIPHER_3DES and GCRY_CIPHER_DES.
1819
1820 2003-03-31  Moritz Schulte  <moritz@g10code.com>
1821
1822         * tiger.c (tiger_get_info): Do not declare static.
1823         * sha256.c (sha256_get_info): Likewise.
1824         * sha1.c (sha1_get_info): Likewise.
1825         * rmd160.c (rmd160_get_info): Likewise.
1826         * md5.c (md5_get_info): Likewise.
1827         * md4.c (md4_get_info): Likewise.
1828         * crc.c (crc_get_info): Likewise.
1829
1830         * md.c (load_digest_module): Call setup_md_table during
1831         initialization.
1832         (new_list_item): Link new element into digest_list.
1833
1834         * cipher.c (do_ctr_decrypt): Made do_ctr_encrypt act as a wrapper
1835         for do_ctr_encrypt, since these functions are identical.
1836
1837 2003-03-30  Simon Josefsson  <jas@extundo.com>
1838
1839         * cipher.c (struct gcry_cipher_handle): Add counter field.
1840         (gcry_cipher_open): Add CTR.
1841         (cipher_reset): Clear counter field.
1842         (do_ctr_encrypt, do_ctr_decrypt): New functions.
1843         (cipher_encrypt, cipher_decrypt): Call CTR functions.
1844         (gcry_cipher_ctl): Add SET_CTR to set counter.
1845
1846 2003-03-30  Moritz Schulte  <moritz@g10code.com>
1847
1848         * rsa.c (_gcry_rsa_blind): New function.
1849         (_gcry_rsa_unblind): New function.
1850         (_gcry_rsa_decrypt): Use _gcry_rsa_blind and _gcry_rsa_decrypt.
1851
1852 2003-03-26  Moritz Schulte  <moritz@g10code.com>
1853
1854         * dynload.c (_gcry_enum_gnupgext_pubkeys): Adjust `encrypt' and
1855         `decrypt' function arguments.
1856         (_gcry_enum_gnupgext_pubkeys): Likewise.
1857         * dynload.h: Likewise.
1858         
1859         * pubkey.c (dummy_decrypt): Add argument: int flags.
1860         (dummy_encrypt): Likewise.
1861
1862         * elgamal.c (_gcry_elg_encrypt): Add argument: int flags.
1863         (_gcry_elg_decrypt): Likewise.
1864
1865         * rsa.c (_gcry_rsa_encrypt): Add argument: int flags.
1866         (_gcry_rsa_decrypt): Likewise.
1867
1868         * pubkey.c: Add `flags' argument to members `encrypt' and
1869         `decrypt' of struct `pubkey_table_s'.
1870
1871         * rsa.h: Add `flags' argument to function declarations.
1872         * elgamal.h: Likewise.
1873
1874         * pubkey.c (sexp_data_to_mpi): New variable: int parsed_flags.
1875         (sexp_data_to_mpi): Set `parsed_flags'.
1876         (sexp_data_to_mpi): New argument: int *flags.
1877         (gcry_pk_encrypt): New variable: int flags.
1878         (gcry_pk_encrypt): Pass `flags' to pubkey_encrypt.
1879         (pubkey_encrypt): New variable: int flags.
1880         (pubkey_encrypt): Pass `flags' to pubkey encrypt function.
1881         (pubkey_decrypt): Likewise.
1882         (pubkey_decrypt): Pass `flags' to pubkey encrypt function.
1883         (gcry_pk_encrypt): Include `flags' s-exp in return list.
1884         (sexp_to_enc): New argument: int *flags.
1885         (gcry_pk_decrypt): New variable: int flags.
1886         (gcry_pk_decrypt): Pass `flags' to pubkey_decrypt.
1887         (sexp_to_enc): New variable: int parsed_flags.
1888         (sexp_to_enc): Set `parsed_flags'.
1889
1890 2003-03-22  Simon Josefsson  <jas@extundo.com>
1891
1892         * cipher.c (gcry_cipher_open, do_cbc_encrypt)
1893         (gcry_cipher_encrypt): Support GCRY_CIPHER_CBC_MAC.
1894         (gcry_cipher_ctl): Support GCRYCTL_SET_CBC_MAC.
1895
1896 2003-03-19  Werner Koch  <wk@gnupg.org>
1897
1898         * primegen.c (gen_prime): New args EXTRA_CHECK and EXTRA_CHECK_ARG
1899         to allow for a user callback.  Changed all callers.
1900         (_gcry_generate_secret_prime)
1901         (_gcry_generate_public_prime): Ditto, pass them to gen_prime.
1902         * rsa.c (check_exponent): New.
1903         (generate): Use a callback to ensure that a given exponent is
1904         actually generated.
1905
1906 2003-03-12  Moritz Schulte  <moritz@g10code.com>
1907
1908         * primegen.c: Initialize `no_of_small_prime_numbers' statically.
1909         (gen_prime): Remove calculation of `no_of_small_prime_numbers'.
1910
1911 2003-03-03  Moritz Schulte  <moritz@g10code.com>
1912
1913         * md.c (gcry_md_ctl): Rewritten to use same style like the other
1914         functions dispatchers.
1915
1916 2003-03-02  Moritz Schulte  <moritz@g10code.com>
1917
1918         * cipher.c (struct gcry_cipher_handle): New member: algo_index.
1919         (gcry_cipher_open): Allocate memory for two cipher contexts.
1920         Initialize algo_index.
1921         (cipher_setkey): Duplicate context into reserved memory.
1922         (cipher_reset): New function, which resets the context and clear
1923         the IV.
1924         (gcry_cipher_ctl): Call cipher_reset.
1925
1926 2003-02-23  Moritz Schulte  <moritz@g10code.com>
1927
1928         * cipher.c: Remove (bogus) `digitp' macro definition.
1929         * md.c: Likewise.
1930
1931         * blowfish.c (burn_stack): Removed.
1932         * arcfour.c (burn_stack): Likewise.
1933         * cast5.c (burn_stack): Likewise.
1934         * des.c (burn_stack): Likewise.
1935         * md4.c (burn_stack): Likewise.
1936         * md5.c (burn_stack): Likewise.
1937         * random.c (burn_stack): Likewise.
1938         * rijndael.c (burn_stack): Likewise.
1939         * rmd160.c (burn_stack): Likewise.
1940         * sha1.c (burn_stack): Likewise.
1941         * sha256.c (burn_stack): Likewise.
1942         * tiger.c (burn_stack): Likewise.
1943         * twofish.c (burn_stack): Likewise.
1944
1945         * blowfish.c: Changed all occurences of burn_stack to
1946         _gcry_burn_stack.
1947         * arcfour.c: Likewise.
1948         * cast5.c: Likewise.
1949         * des.c: Likewise.
1950         * md4.c: Likewise.
1951         * md5.c: Likewise.
1952         * random.c: Likewise.
1953         * rijndael.c: Likewise.
1954         * rmd160.c: Likewise.
1955         * sha1.c: Likewise.
1956         * sha256.c: Likewise.
1957         * tiger.c: Likewise.
1958         * twofish.c: Likewise.
1959
1960         * arcfour.c (_gcry_arcfour_get_info): Use GCRY_CIPHER_ARCFOUR
1961         instead of hard-coded value `301'.
1962
1963 2003-01-24  Werner Koch  <wk@gnupg.org>
1964
1965         * random.c (_gcry_register_random_progress): New.
1966         (_gcry_random_progress): New.
1967
1968         * rndlinux.c (gather_random): Call the random progress function. 
1969
1970 2003-01-23  Werner Koch  <wk@gnupg.org>
1971
1972         * rsa.c (generate): New arg USE_E to request a specific public
1973         exponent.
1974         (_gcry_rsa_generate): Ditto.
1975         * elgamal.c (_gcry_elg_generate): Must add an dummy argument
1976         instead of USE_E.
1977         * dsa.c (_gcry_dsa_generate): Ditto.
1978         * pubkey.c (dummy_generate): Ditto.
1979         (pubkey_generate): Add USE_E arg and pass it down.
1980         (gcry_pk_genkey): Detect "rsa-use-e" parameter and pass it to generate.
1981
1982         * pubkey.c (sexp_to_enc): New arg RET_MODERN.
1983         (gcry_pk_decrypt): Make use of it to return a real S-expression.
1984         Return better error codes.
1985         (gcry_pk_verify): Return better error codes.
1986
1987 2003-01-21  Werner Koch  <wk@gnupg.org>
1988
1989         * random.c (gcry_random_add_bytes): Add QUALITY argument, let
1990         function return an error code and disable its core for now.
1991
1992 2003-01-21  Timo Schulz  <twoaday@freakmail.de>
1993
1994         * random.c (gcry_random_add_bytes): New. Function to add external
1995         random to the pool.
1996         
1997 2003-01-20  Simon Josefsson  <jas@extundo.com>
1998
1999         * crc.c: New.
2000         * Makefile.am (EXTRA_PROGRAMS, EXTRA_crc_SOURCES): Add crc.c.
2001         * md.c (gcry_md_get_algo_dlen): Add values for CRC.
2002
2003 2003-01-20  Werner Koch  <wk@gnupg.org>
2004
2005         * sha256.c: New.
2006         * bithelp.h (ror): New.
2007         * Makfile.am: Add sha256.c.
2008         * md.c (oid_table): Add values for SHA256 et al.
2009         (gcry_md_get_algo_dlen): Likewise
2010
2011 2003-01-20  Werner Koch  <wk@gnupg.org>
2012
2013         * pubkey.c (gcry_pk_get_keygrip): Implemented keygrips for DSA
2014         and ElGamal.
2015
2016 2003-01-17  Werner Koch  <wk@gnupg.org>
2017
2018         * cipher.c (gcry_cipher_encrypt): Reworked so that the output will
2019         never contain the plaintext even if the caller did not checked the
2020         return value.
2021
2022         * md.c (gcry_md_get_algo): Changed error code to GCRYERR_GENERAL
2023         because we don't have an invalid md algo but no algorithm enabled.
2024
2025         * pubkey.c (gcry_pk_genkey): Changed error code for bounds check
2026         of table parameters to GCRYERR_INTERNAL.
2027
2028         * md.c (gcry_md_open): Partly reverted Timo's change from
2029         2002-10-10 by removing the check for the algorithm.  An algorithm
2030         of 0 is allowed and anyway we should not double check it or check
2031         it using a different function.  Also fixed the flags check.
2032
2033         * pubkey.c (gcry_pk_encrypt): Make sure that R_CIPH points to NULL
2034         on error.
2035         (gcry_pk_decrypt): Ditto for R_PLAIN.
2036         (gcry_pk_sign): Ditto for R_SIG.
2037         (gcry_pk_genkey): Ditto for R_KEY.
2038
2039 2003-01-16  Werner Koch  <wk@gnupg.org>
2040
2041         * md.c (gcry_md_write): Changed 2nd argument type to void*.
2042         (gcry_md_hash_buffer): Changed type of boths buffers to void*.
2043         (gcry_md_setkey): Changed 2nd argument type to void*.
2044
2045 2003-01-15  Werner Koch  <wk@gnupg.org>
2046
2047         * pubkey.c (sexp_data_to_mpi): New.  This handles pkcs1 padding.
2048         (gcry_pk_sign, gcry_pk_verify): Use it here.
2049         (gcry_pk_encrypt): And here.
2050         (pubkey_verify): Add debug code.
2051         (sexp_to_enc): Handle flags in the input and return the pkcs1 flag
2052         in a new parameter.
2053         (gcry_pk_decrypt): Prepare for future pkcs1 handling.
2054
2055 2002-12-19  Werner Koch  <wk@gnupg.org>
2056
2057         * random.c (_gcry_random_initialize): New.
2058
2059 2002-12-16  Werner Koch  <wk@gnupg.org>
2060
2061         * cipher.c: Added a Teletrust specific OID for 3DES.
2062
2063 2002-12-12  Werner Koch  <wk@gnupg.org>
2064
2065         * md.c: Added another oddball OIW OID (sha-1WithRSAEncryption).
2066
2067 2002-11-23  Werner Koch  <wk@gnupg.org>
2068
2069         * md.c (load_digest_module): Enlarged checked_algos bitmap.
2070         * md4.c (func_table):  Fixed entry for md4. 
2071         Both by Simon Josephson.
2072         (transform): Copy data to get the alignment straight. Tested only
2073         on i386.
2074
2075 2002-11-10  Simon Josefsson  <jas@extundo.com>
2076
2077         * cipher.c (gcry_cipher_open): Don't reject CTS flag.
2078         (do_cbc_encrypt, do_cbc_decrypt, cipher_encrypt) 
2079         (gcry_cipher_encrypt, cipher_decrypt)
2080         (gcry_cipher_decrypt): Support CTS flag.
2081         (gcry_cipher_ctl): Toggle CTS flag.
2082
2083 2002-11-10  Werner Koch  <wk@gnupg.org>
2084
2085         * md4.c: New. By Simon Josefsson.
2086         * Makefile.am (EXTRA_PROGRAMS): Add md4.c. 
2087         * md.c (oid_table,gcry_md_get_algo_dlen): MD4 support. 
2088
2089 2002-10-14  Werner Koch  <wk@gnupg.org>
2090
2091         * arcfour.c (do_encrypt_stream): Don't use increment op when
2092         assigning to the same variable.
2093
2094 2002-10-10  Timo Schulz  <ts@winpt.org>
2095
2096         * pubkey.c (gcry_pk_genkey): Check boundaries.
2097         
2098         * md.c (gcry_md_open): Check that algo is available and only
2099         valid flag values are used.
2100         (gcry_md_get_algo): Add error handling.
2101         
2102 2002-09-26  Werner Koch  <wk@gnupg.org>
2103
2104         * md.c: Include an OID for TIGER.
2105         * tiger.c (tiger_get_info): Use a regular OID.
2106
2107 2002-09-17  Werner Koch  <wk@gnupg.org>
2108
2109         * random.c: Replaced mutex.h by the new ath.h.  Changed all calls.
2110
2111 2002-09-16  Werner Koch  <wk@gnupg.org>
2112
2113         * arcfour.c (do_encrypt_stream): Use register modifier and modulo.
2114         According to Nikos Mavroyanopoulos this increases perfromace on
2115         i386 system noticable.  And I always tought gcc is clever enough.
2116         * md5.c (transform): Use register modifier.
2117         * rmd160.c (transform): Ditto.
2118         * sha1.c (transform): Ditto.  We hope that there are 6 free registers.
2119         * random.c (gcry_randomize): Rewrote to avoid malloc calls.
2120
2121         * rndlinux.c (gather_random): Replaced remaining fprintfs by log_*.
2122         * arcfour.c (do_arcfour_setkey): Ditto.
2123         * twofish.c (do_twofish_setkey): Ditto.
2124         * rndegd.c (gather_random): Ditto.
2125         * rijndael.c (do_setkey): Ditto.
2126         * random.c (_gcry_random_dump_stats): Ditto. 
2127         * primegen.c (_gcry_generate_elg_prime): Ditto.
2128         * des.c (_gcry_des_get_info): Ditto.
2129         * cast5.c (do_cast_setkey): Ditto.
2130         * blowfish.c (do_bf_setkey): Ditto.
2131
2132 2002-08-26  Werner Koch  <wk@gnupg.org>
2133
2134         * des.c (weak_keys): Fixed one entry in the table and compared
2135         all entries against the literature.
2136         (selftest): Checksum the weak key table.
2137
2138 2002-08-21  Werner Koch  <wk@gnupg.org>
2139
2140         * pubkey.c: Enable keygrip calculation for "openpgp-rsa".
2141
2142 2002-08-17  Werner Koch  <wk@gnupg.org>
2143
2144         * cipher.c (setup_cipher_table): Don't overwrite the DES entry
2145         with the entry for DUMMY.
2146
2147 2002-08-14  Werner Koch  <wk@gnupg.org>
2148
2149         * des.c (do_des_setkey,do_des_encrypt, do_des_decrypt): New.
2150         (_gcry_des_get_info): Support plain old DES.
2151         * cipher.c (setup_cipher_table): Put DES into the table.
2152
2153 2002-07-25  Werner Koch  <wk@gnupg.org>
2154
2155         * rndunix.c (_gcry_rndunix_constructor): Prefixed with _gcry_.
2156         Noted by Stephan Austermuehle.
2157
2158 2002-07-08  Timo Schulz  <ts@winpt.org>
2159
2160         * rndw32.c: Replaced the m_ memory functions with the real 
2161         gcry_ functions. Renamed all g10_ prefixed functions to log_.
2162         
2163 2002-06-12  Werner Koch  <wk@gnupg.org>
2164
2165         * rsa.c (generate): Use e = 65537 for now.
2166
2167 2002-06-11  Werner Koch  <wk@gnupg.org>
2168
2169         * pubkey.c (gcry_pk_get_keygrip): Allow a "protected-private-key".
2170
2171 2002-06-05  Timo Schulz  <ts@winpt.org>
2172
2173         * cipher.c (gcry_cipher_encrypt, gcry_cipher_decrypt):
2174         Check that the input size is a multiple of the blocksize.
2175         
2176 2002-05-23  Werner Koch  <wk@gnupg.org>
2177
2178         * md.c (oid_table): Add an rsadsi OID for MD5.
2179
2180 2002-05-21  Werner Koch  <wk@gnupg.org>
2181
2182         * primegen.c, elgamal.c, dsa.c (progress): Do not print anything
2183         by default.  Pass an extra identifying string to the callback and
2184         reserved 2 argumenst for current and total counters.  Changed the
2185         register function prototype.
2186
2187 2002-05-17  Werner Koch  <wk@gnupg.org>
2188
2189         * rndegd.c (rndegd_constructor): Fixed name of register function
2190         and prefixed the function name with _gcry_.
2191         * rndw32.c (rndw32_constructor): Ditto.
2192         * tiger.c (tiger_constructor): Ditto.
2193
2194         * Makefile.am: Removed all dynamic loading stuff.
2195         * dynload.c: Ditto. Now only used for the constructor system.
2196
2197 2002-05-15  Werner Koch  <wk@gnupg.org>
2198
2199         * random.c (gcry_random_bytes,gcry_random_bytes_secure)
2200         (gcry_randomize): Make sure we are initialized.
2201
2202 2002-05-14  Werner Koch  <wk@gnupg.org>
2203
2204         Changed license of most files to the LGPL.
2205
2206 2002-05-02  Werner Koch  <wk@gnupg.org>
2207
2208         * random.c (_gcry_fast_random_poll): Initialize the module so the
2209         mutex can be used.
2210
2211         * primegen.c (small_prime_numbers): Moved table from smallprime.c
2212         * smallprime.c: File removed.
2213
2214         * des.c (leftkey_swap, rightkey_swap, working_memcmp): Made static.
2215
2216         * cipher.c (gcry_cipher_map_name): Map "RIJNDAEL" to "AES".
2217         * rijndael.c (rijndael_get_info): We do only support a 128 bit
2218         blocksize so it makes sense to change the algorithm strings to
2219         AES.
2220
2221         * tiger.c (tiger_final): Removed superfluous token pasting operators.
2222         * md5.c (md5_final): Ditto.
2223
2224 2002-04-30  Werner Koch  <wk@gnupg.org>
2225
2226         * cipher.c: Fixed list of copyright years.
2227
2228 2002-03-18  Werner Koch  <wk@gnupg.org>
2229
2230         * random.c (initialize): Initialize the new pool lock mutex.
2231         (_gcry_fast_random_poll): Add locking and moved main
2232         code out to...
2233         (do_fast_random_poll): new function.
2234         (read_pool): Use the new function here.
2235         (get_random_bytes): Add locking.
2236         (_gcry_update_random_seed_file): Ditto.
2237
2238 2002-03-11  Werner Koch  <wk@gnupg.org>
2239
2240         * md.c: Add rsaSignatureWithripemd160 to OID table.
2241
2242 2002-02-20  Werner Koch  <wk@gnupg.org>
2243
2244         * sha1.c: Removed a left over comment note.  The code has been
2245         rewritten from scratch in 1998.  Thanks to Niels Möller for
2246         reporting this misleading comment.
2247
2248 2002-02-18  Werner Koch  <wk@gnupg.org>
2249
2250         * rndunix.c (rndunix_constructor): Use the the new prefixed
2251         function name.  Reported by Jordi Mallach.
2252
2253 2002-02-10  Werner Koch  <wk@gnupg.org>
2254
2255         * random.c (mix_pool): Carry an extra failsafe_digest buffer
2256         around to make the function more robust.
2257
2258 2002-02-08  Werner Koch  <wk@gnupg.org>
2259
2260         * random.c (add_randomness): Xor new data into the pool and not
2261         just copy it.  This avoids any choosen input attacks which are not
2262         serious in our setting because an outsider won't be able to mix
2263         data in and even then we keep going with a PRNG.  Thanks to Stefan
2264         Keller for pointing this out.
2265
2266 2002-01-04  Werner Koch  <wk@gnupg.org>
2267
2268         * pubkey.c (gcry_pk_genkey): Do not release skey - it is static.
2269
2270         * primegen.c (gen_prime): Of course we should use set_bit
2271         and not set_highbit to set the second high bit.
2272
2273 2001-12-18  Werner Koch  <wk@gnupg.org>
2274
2275         * rsa.c (generate): Loop until we find the exact modulus size.
2276         Changed the exponent to 41.
2277         (rsa_get_info): s/usage/r_usage/ to avoid shadow warnings.
2278         * primegen.c (gen_prime): Set 2 high order bits for secret primes.
2279
2280         * Makefile.am (DISTCLEANFILES): Include construct.c.
2281
2282 2001-12-17  Werner Koch  <wk@gnupg.org>
2283
2284         * pubkey.c (gcry_pk_get_keygrip): New - experimental.
2285
2286 2001-12-11  Werner Koch  <wk@gnupg.org>
2287
2288         * cipher.c: Added OIDs for AES.
2289         (gcry_cipher_mode_from_oid): New.
2290         (gcry_cipher_map_name): Moved OID search code to ..
2291         (search_oid): .. new function.
2292
2293 2001-12-10  Werner Koch  <wk@gnupg.org>
2294
2295         * pubkey.c (gcry_pk_encrypt): Find the signature algorithm by name
2296         and not by number.
2297         
2298         * pubkey.c (gcry_pk_encrypt,gcry_pk_decrypt,gcry_pk_sign)
2299         (gcry_pk_verify,gcry_pk_testkey, gcry_pk_genkey)
2300         (gcry_pk_get_nbits): Release the arrays.  Noted by Nikos
2301         Mavroyanopoulos.
2302
2303 2001-12-06  Werner Koch  <wk@gnupg.org>
2304
2305         * cipher.c (gcry_cipher_map_name): Look also for OIDs prefixed
2306         with "oid."  or "OID.".
2307
2308 2001-12-05  Werner Koch  <wk@gnupg.org>
2309
2310         * pubkey.c (algo_info_table): Fixed entry for openpgp-rsa. 
2311
2312 2001-11-24  Werner Koch  <wk@gnupg.org>
2313
2314         * pubkey.c: Added the rsaEncryption OID to the tables.
2315         (sexp_to_key): Add an arg to return the index of the algorithm,
2316         changed all callers.
2317         (gcry_pk_sign): Find the signature algorithm by name and not by
2318         number.
2319         (gcry_pk_get_nbits): Fixed so that we can now really pass a secret
2320         key to get the result.
2321         
2322         * md.c (gcry_md_map_name): Look also for OIDs prefixed with "oid."
2323         or "OID." so that an OID string can be used as an S-Exp token.
2324
2325 2001-11-20  Werner Koch  <wk@gnupg.org>
2326
2327         * md.c (gcry_md_map_name): Lookup by OID if the the name begins
2328         with a digit.
2329         (oid_table): New.
2330         
2331 2001-11-16  Werner Koch  <wk@gnupg.org>
2332
2333         * md.c (gcry_md_info): New operator GCRYCTL_IS_ALGO_ENABLED.
2334
2335 2001-11-07  Werner Koch  <wk@gnupg.org>
2336
2337         * md.c (gcry_md_hash_buffer): Close the handle which was left open
2338         for algorithms other than rmd160.
2339
2340 2001-08-08  Werner Koch  <wk@gnupg.org>
2341
2342         * rndw32.c (gather_random): Use toolhelp in addition to the NT
2343         gatherer for Windows2000.  Suggested by Sami Tolvanen.
2344
2345         * random.c (read_pool): Fixed length check, this used to be one
2346         byte to strict.  Made an assert out of it because the caller has
2347         already made sure that only poolsize bytes are requested.
2348         Reported by Marcus Brinkmann.
2349
2350 2001-08-03  Werner Koch  <wk@gnupg.org>
2351
2352         * cipher.c (cipher_encrypt, cipher_decrypt): Prepare to return
2353         errors. We have to change the interface to all ciphers to make
2354         this really work but we should do so to prepare for hardware
2355         encryption modules.
2356         (gcry_cipher_encrypt, gcry_cipher_decrypt): Return the error and
2357         set lasterr. 
2358         (gcry_cipher_ctl): Make sure that errors from setkey are returned.
2359
2360 2001-08-02  Werner Koch  <wk@gnupg.org>
2361
2362         * rndlinux.c (gather_random): casted a size_t arg to int so that
2363         the format string is correct.  Casting is okay here and avoids
2364         translation changes. 
2365
2366         * random.c (fast_random_poll): Do not check the return code of
2367         getrusage.
2368
2369         * rndunix.c: Add a signal.h header to avoid warnings on Solaris 7
2370         and 8.
2371
2372         * tiger.c (print_abc,print_data): Removed.
2373
2374         * rijndael.c, des.c, blowfish.c, twofish.c, cast5.c, arcfour.c
2375         (burn_stack): New.  Add wrappers for most functions to be able to
2376         call burn_stack after the function invocation. This methods seems
2377         to be the most portable way to zeroise the stack used. It does
2378         only work on stack frame based machines but it is highly portable
2379         and has no side effects.  Just setting the automatic variables at
2380         the end of a function to zero does not work well because the
2381         compiler will optimize them away - marking them as volatile would
2382         be bad for performance.
2383         * md5.c, sha1.c, rmd160.c, tiger.c (burn_stack): Likewise.
2384         * random.c (burn_stack): New.
2385         (mix_pool): Use it here to burn the stack of the mixblock function.
2386
2387         * primegen.c (_gcry_generate_elg_prime): Freed q at 3 places.
2388         Thanks to Tommi Komulainen.
2389
2390         * arcfour.c (arcfour_setkey): Check the minimim keylength against
2391         bytes and not bits.
2392         (selftest): Must reset the key before decryption. 
2393
2394 2001-05-31  Werner Koch  <wk@gnupg.org>
2395
2396         * sha1.c (sha1_init): Made static.
2397
2398         Changed all g10_ prefixed function names as well as some mpi_
2399         function names to cope with the introduced naming changes.
2400         
2401         * md.c (prepare_macpads): Made key const.
2402
2403 2001-05-28  Werner Koch  <wk@gnupg.org>
2404
2405         * rndegd.c (gather_random): Removed the use of tty_printf.
2406
2407 2001-03-29  Werner Koch  <wk@gnupg.org>
2408
2409         * md5.c (md5_final): Fixed calculation of hashed length.  Thanks
2410         to disastry@saiknes.lv for pointing out that it was horrible wrong
2411         for more than 512MB of input.
2412         * sha1.c (sha1_final): Ditto.
2413         * rmd160.c (rmd160_final): Ditto.
2414         * tiger.c (tiger_final): Ditto.
2415
2416         * blowfish.c (encrypt,do_encrypt): Changed name to do_encrypt to
2417         avoid name clashes with an encrypt function in stdlib.h of
2418         Dynix/PIX.  Thanks to Gene Carter.
2419         * elgamal.c (encrypt,do_encrypt): Ditto.
2420
2421         * twofish.c (gnupgext_enum_func): Use only when when compiled as a
2422         module.
2423         * rijndael.c (gnupgext_enum_func): Ditto.
2424
2425         * tiger.c (tiger_get_info): Return "TIGER192" and not just
2426         "TIGER".  By Edwin Woudt.
2427         
2428         * random.c: Always include time.h - standard requirement.  Thanks
2429         to James Troup.
2430
2431         * rndw32.c: Fixes to the macros.
2432
2433 2001-01-11  Werner Koch  <wk@gnupg.org>
2434
2435         * cipher.c (cipher_encrypt,gcry_cipher_encrypt): Use blocksize and
2436         not 8.
2437
2438 2000-12-19  Werner Koch  <wk@gnupg.org>
2439
2440         Major change:
2441         Removed all GnuPG stuff and renamed this piece of software
2442         to gcrypt. 
2443
2444 2000-11-14  Werner Koch  <wk@gnupg.org>
2445
2446         * dsa.c (test_keys): Replaced mpi_alloc by gcry_mpi_new and
2447         mpi_free by gcry_mpi_release.
2448         * elgamal.c (test_keys,generate): Ditto, also for mpi_alloc_secure.
2449         * rsa.c (test_keys,generate,rsa_verify): Ditto.
2450         * primegen.c (generate_elg_prime): Ditto.
2451         (gen_prime): Ditto and removed nlimbs.
2452
2453         * rsa.c (generate): Allocate 2 more vars in secure memory.
2454
2455         * Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency
2456         problems.
2457
2458 2000-10-09  Werner Koch  <wk@gnupg.org>
2459
2460         * arcfour.c, arcfour.h: New.
2461         * cipher.c (cipher_encrypt, cipher_decrypt): Add stream mode.
2462         (setup_cipher_table): Add Arcfour.
2463         (gcry_cipher_open): Kludge to allow stream mode.
2464
2465 Wed Oct  4 13:16:18 CEST 2000  Werner Koch  <wk@openit.de>
2466
2467         * sha1.c (transform): Use rol() macro.  Actually this is not needed
2468         for a newer gcc but there are still aoter compilers.
2469
2470         * rsa.c (test_keys): Use new random function. 
2471
2472         * md.c (gcry_md_setkey): New function to overcome problems with
2473         const conflics.  
2474         (gcry_md_ctl): Pass set key to the new functions.
2475
2476         * rijndael.c: New.
2477         * cipher.c: Add Rijndael support.
2478
2479 Mon Sep 18 16:35:45 CEST 2000  Werner Koch  <wk@openit.de>
2480
2481         * rndlinux.c (open_device): Loose random device checking.
2482         By Nils Ellmenreich.
2483
2484         * random.c (fast_random_poll): Check ENOSYS for getrusage.
2485         * rndunix.c:  Add 2 sources for QNX. By Sam Roberts.
2486
2487         * pubkey.c (gcry_pk_algo_info): Add GCRYCTL_GET_ALGO_USAGE.
2488
2489         * rsa.c: Changed the comment about the patent.
2490         (secret): Speed up by using the CRT.  For a 2k keys this
2491         is about 3 times faster.
2492         (stronger_key_check): New but unused code to check the secret key.
2493         * Makefile.am: Included rsa.[ch].
2494         * pubkey.c: Enabled RSA support.
2495         (pubkey_get_npkey): Removed RSA workaround.
2496
2497 Mon Jul 31 10:04:47 CEST 2000  Werner Koch  <wk@openit.de>
2498
2499   * pubkey.c: Replaced all gcry_sexp_{car,cdr}_{data,mpi} by the new
2500   gcry_sexp_nth_{data,mpi} functions.
2501
2502 Tue Jul 25 17:44:15 CEST 2000  Werner Koch  <wk@openit.de>
2503
2504   * pubkey.c (exp_to_key,sexp_to_sig,sexp_to_enc,gcry_pk_encrypt,
2505     gcry_pk_decrypt,gcry_pk_sign,gcry_pk_genkey): Changed to work with
2506     the new S-Exp interface.
2507
2508 Mon Jul 17 16:35:47 CEST 2000  Werner Koch  <wk@>
2509
2510   * random.c (gather_faked): Replaced make_timestamp by time(2) again.
2511
2512 Fri Jul 14 19:38:23 CEST 2000  Werner Koch  <wk@>
2513
2514   * md.c (gcry_md_ctl): Support GCRYCTL_{START,STOP}_DUMP.
2515
2516   * Makefile.am: Never compile mingw32 as module.
2517
2518   * Makefile.am: Tweaked module build and removed libtool
2519
2520   * Makefile.am:  Replaced -O1 by -O. Suggested by Alec Habig.
2521
2522   * elgamal.c (sign): Removed inactive code.
2523
2524   * rsa.c, rsa.h: New based on the old module version (only in CVS for now).
2525   * pubkey.c (setup_pubkey_table): Added commented support for RSA.
2526
2527   * rndunix.c (waitpid): New. For UTS 2.1.  All by Dave Dykstra.
2528   (my_popen): Do the FD_CLOEXEC only if it is available
2529   (start_gatherer): Cope with missing _SC_OPEN_MAX
2530
2531   * rndunix.c: Add some more headers for QNX. By Sam Roberts.
2532
2533   * rndegd.c (gather_random): Shortcut level 0.
2534   * rndunix.c (gather_random): Ditto.
2535   * rndw32.c (gather_random): Ditto.
2536
2537   * rndw32.c: Replaced with code from Cryptlib and commented the old stuff.
2538   * rndw32.c: Add some debuging code enabled by an environment variable.
2539
2540   * random.c (read_seed_file): Binary open for DOSish system
2541   (update_random_seed_file): Ditto.
2542   * random.c [MINGW32]: Include process.h for getpid.
2543   * random.c (fast_random_poll): Add clock_gettime() as fallback for
2544   system which support this POSIX.4 fucntion. By Sam Roberts.
2545
2546   * random.c (read_seed_file): Removed the S_ISLNK test becuase it
2547   is already covered by !S_ISREG and is not defined in Unixware.
2548   Reported by Dave Dykstra.
2549   (update_random_seed_file): Silently ignore update request when pool
2550   is not filled.
2551
2552   * random.c (read_seed_file): New.
2553   (set_random_seed_file): New.
2554   (read_pool): Try to read the seeding file.
2555   (update_random_seed_file): New.
2556
2557   (read_pool): Do an initial extra seeding when level 2 quality random
2558   is requested the first time.  This requestes at least POOLSIZE/2 bytes
2559   of entropy.  Compined with the seeding file this should make normal
2560   random bytes cheaper and increase the quality of the random bytes
2561   used for key generation.
2562
2563   * random.c (read_pool): Print a more friendly error message in
2564   cases when too much random is requested in one call.
2565
2566   * random.c (fast_random_poll): Check whether RUSAGE_SELF is defined;
2567   this is not the case for some ESIX and Unixware, although they have
2568   getrusage().
2569
2570   * primegen.c (generate_elg_prime): All primes are now generated with
2571   the lowest random quality level.  Because they are public anyway we
2572   don't need stronger random and by this we do not drain the systems
2573   entropy so much.
2574
2575   * primegen.c (register_primegen_progress): New.
2576   * dsa.c (register_pk_dsa_progress): New.
2577   * elgamal.c (register_pk_elg_progress): New.
2578
2579   * elgamal.c (wiener_map): New.
2580   (gen_k): Use a much smaller k.
2581   (generate): Calculate the qbits using the wiener map and
2582   choose an x at a size comparable to the one choosen in gen_k
2583
2584   * rmd160.c (rmd160_get_info): Moved casting to the left side due to a
2585   problem with UTS4.3.  Suggested by Dave Dykstra.
2586   * sha1.c (sha1_get_info): Ditto.
2587   * tiger.c (tiger_get_info): Ditto.
2588   * md5.c (md5_get_info): Ditto
2589   * des.c (des_get_info): Ditto.
2590   * blowfish.c (blowfish_get_info): Ditto.
2591   * cast5.c (cast5_get_info): Ditto.
2592   * twofish.c (twofish_get_info): Ditto.
2593
2594 Fri Mar 24 11:25:45 CET 2000  Werner Koch  <wk@openit.de>
2595
2596         * md.c (md_open): Add hmac arg and allocate space for the pads.
2597         (md_finalize): Add HMAC support.
2598         (md_copy): Ditto.
2599         (md_close): Ditto.
2600         (gcry_md_reset): Ditto.
2601         (gcry_md_ctl): Ditto.
2602         (prepare_macpdas): New.
2603
2604 Mon Mar 13 19:22:46 CET 2000  Werner Koch  <wk@openit.de>
2605
2606         * md.c (gcry_md_hash_buffer): Add support for the other algorithms.
2607
2608 Mon Jan 31 16:37:34 CET 2000  Werner Koch  <wk@gnupg.de>
2609
2610         * genprime.c (generate_elg_prime): Fixed returned factors which never
2611         worked for non-DSA keys.
2612
2613 Thu Jan 27 18:00:44 CET 2000  Werner Koch  <wk@gnupg.de>
2614
2615         * pubkey.c (sexp_to_key): Fixed mem leaks in case of errors.
2616
2617 Mon Jan 24 22:24:38 CET 2000  Werner Koch  <wk@gnupg.de>
2618
2619         * pubkey.c (gcry_pk_decrypt): Implemented.
2620         (gcry_pk_encrypt): Implemented.
2621         (gcry_pk_testkey): New.
2622         (gcry_pk_genkey): New.
2623         (pubkey_decrypt): Made static.
2624         (pubkey_encrypt): Ditto.
2625         (pubkey_check_secret_key): Ditto.
2626         (pubkey_generate): Ditto.
2627
2628 Mon Jan 24 13:04:28 CET 2000  Werner Koch  <wk@gnupg.de>
2629
2630         * pubkey.c (pubkey_nbits): Removed and replaced by ...
2631         (gcry_pk_get_nbits): this new one.
2632
2633 Wed Dec  8 21:58:32 CET 1999  Werner Koch  <wk@gnupg.de>
2634
2635         * dsa.c: s/mpi_powm/gcry_mpi_powm/g
2636         * elgamal.c: Ditto.
2637         * primegen.c: Ditto.
2638
2639         * : Replaced g10_opt_verbose by g10_log_verbosity().
2640
2641         * Makefile.am (INCLUDES): removed intl, add ../gcrypt
2642
2643 Fri Nov 19 17:15:20 CET 1999  Werner Koch  <wk@gnupg.de>
2644
2645         * dynload.c (cmp_filenames): New to replaced compare_filename() in
2646         module.
2647         (register_cipher_extension): Removed the tilde expansion stuff.
2648         * rndeg.c (my_make_filename): New.
2649
2650         * : Replaced header util.h by g10lib.h
2651
2652         * random.c (gather_faked): Replaced make_timestamp by time(2).
2653         Disabled wrning printed with tty_printf.
2654         * rndlinux.c (gather_random): Always use fprintf instead of tty_xxx;
2655         this should be replaced by a callback function.
2656
2657         * primegen.c (gen_prime): Use gcry_mpi_randomize.
2658         (is_prime): Ditto.
2659         * elgamal.c (test_keys): Ditto.
2660         * dsa.c (test_keys): Ditto.
2661
2662         * cipher.c (gcry_cipher_close): Die on invalid handle.
2663
2664 Mon Nov 15 21:36:02 CET 1999  Werner Koch  <wk@gnupg.de>
2665
2666         * elgamal.c (gen_k): Use the new random API.
2667         (generate): Ditto.
2668         * dsa.c (gen_k): Ditto.
2669         (generate): Ditto.
2670
2671 Sat Nov 13 17:44:23 CET 1999  Werner Koch  <wk@gnupg.de>
2672
2673         * pubkey.c (disable_pubkey_algo): Made static.
2674         (gcry_pk_ctl): New.
2675
2676         * random.c (get_random_bits): Renamed to ...
2677         (get_random_bytes): ... this and made static.
2678         (gcry_random_bytes): New.
2679         (gcry_random_bytes_secure): New.
2680         (randomize_buffer): Renamed to ...
2681         (gcry_randomize): ...this.
2682
2683         * md.c (gcry_md_hash_buffer): New.
2684
2685         * pubkey.c (gcry_pk_algo_info): 4 new commands.
2686         (pubkey_get_npkey): Made static.
2687         (pubkey_get_nskey): Made static.
2688         (pubkey_get_nsig): Made static.
2689         (pubkey_get_nenc): Made static.
2690
2691         * pubkey.c: Removed all G10ERR_xxx.
2692         * cipher.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_CIPHER_ALGO.
2693         * md.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_MD_ALGO.
2694         * cast5.c (cast_setkey): Changed errocodes to GCRYERR_xxx.
2695         * blowfish.c: Ditto.
2696         * des.c: Ditto.
2697         * twofish.c: Ditto.
2698         * dsa.c: Ditto.
2699         * elgamal.c: Ditto.
2700
2701         * g10c.c: Removed
2702
2703         * cipher.c (gcry_cipher_open): Replaced alloc functions and return NULL
2704         if we are out of core.
2705         * dynload.c: Replaced all memory allocation functions.
2706         * md.c: Ditto.
2707         * primegen.c: Ditto.
2708         * pubkey.c: Ditto.
2709         * random.c: Ditto.
2710         * rndw32.c: Ditto.
2711         * elgamal.c: Ditto.
2712         * dsa.c: Ditto.
2713
2714 Tue Oct 26 14:10:21 CEST 1999  Werner Koch  <wk@gnupg.de>
2715
2716         * elgamal.c (sign): Hugh found strange code here. Replaced by BUG().
2717
2718         * cipher.c: Merged with gcrypt/symapi.c.
2719
2720         * pubkey.c (string_to_pubkey_algo): Renamed function to ...
2721         (gcry_pk_map_name): ... this.
2722         (pubkey_algo_to_string): Renamed function to ...
2723         (gcry_pk_algo_name): ... this.
2724         (gcry_pk_algo_info): New.
2725         * pubkey.c: Merged with gcrypt/pkapi.c.
2726
2727         * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
2728         fixing this bug.
2729
2730         * md.c: Merged with gcrypt/mdapi.c
2731
2732 Wed Sep 15 14:39:59 CEST 1999  Michael Roth <mroth@nessie.de>
2733
2734         * des.c: Various speed improvements: One bit pre rotation
2735           trick after initial permutation (Richard Outerbridge).
2736           Finished test of SSLeay Tripple-DES patterns.
2737
2738 Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2739
2740         * rndw32.c: New.
2741
2742 Mon Sep 13 10:51:29 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2743
2744         * bithelp.h: New.
2745         * rmd160.h, sha1.h, md5.h: Use the rol macro from bithelp.h
2746
2747 Tue Sep  7 16:23:36 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2748
2749         * Makefile.am: Fixed seds for latest egcc. By Ollivier Robert.
2750
2751 Mon Sep  6 19:59:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2752
2753         * des.c (selftest): Add some testpattern
2754
2755 Mon Aug 30 20:38:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2756
2757         * cipher.c (do_cbc_encrypt): Fixed serious bug occuring when not using
2758         in place encryption. Pointed out by Frank Stajano.
2759
2760 Mon Jul 26 09:34:46 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2761
2762         * md5.c (md5_final): Fix for a SCO cpp bug.
2763
2764 Thu Jul 15 10:15:35 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2765
2766         * elgamal.c (elg_check_secret_key,elg_encrypt
2767         elg_decrypt,elg_sign,elg_verify): Sanity check on the args.
2768         * dsa.c (dsa_check_secret_key,dsa_sign,dsa_verify): Ditto.
2769
2770         * pubkey.c (disable_pubkey_algo): New.
2771         (check_pubkey_algo2): Look at disabled algo table.
2772         * cipher.c (disable_cipher_algo): New.
2773         (check_cipher_algo): Look at disabled algo table.
2774
2775 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2776
2777         * Makefile.am: Support for libtool.
2778
2779 Fri Jul  2 11:45:54 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2780
2781         * dsa.c (gen_k): Changed algorithm to consume less random bytes
2782         * elgamal.c (gen_k): Ditto.
2783
2784         * random.c (random_dump_stats): New.
2785
2786 Thu Jul  1 12:47:31 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2787
2788         * primegen.c, elgamal.c, dsa.c (progess): New and replaced all
2789         fputc with a call to this function.
2790
2791 Sat Jun 26 12:15:59 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2792
2793         * rndegd.c (do_write): s/ssize_t/int/ due to SunOS 4.1 probs.
2794
2795         * cipher.c (do_cbc_encrypt, do_cbc_decrypt): New.
2796
2797         * dynload.c (HAVE_DL_SHL_LOAD): Map hpux API to dlopen (Dave Dykstra).
2798         * Makefile.am (install-exec-hook): Removed.
2799
2800 Sun May 23 14:20:22 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2801
2802         * cipher.c (setup_cipher_table): Enable Twofish
2803
2804         * random.c (fast_random_poll): Disable use of times() for mingw32.
2805
2806 Mon May 17 21:54:43 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2807
2808         * dynload.c (register_internal_cipher_extension): Minor init fix.
2809
2810 Tue May  4 15:47:53 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2811
2812         * primegen.c (gen_prime): Readded the Fermat test. Fixed the bug
2813         that we didn't correct for step when passing the prime to the
2814         Rabin-Miller test which led to bad performance (Stefan Keller).
2815         (check_prime): Add a first Fermat test.
2816
2817 Sun Apr 18 10:11:28 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2818
2819         * cipher.c (cipher_setiv): Add ivlen arg, changed all callers.
2820
2821         * random.c (randomize_buffer): alway use secure memory because
2822         we can't use m_is_secure() on a statically allocated buffer.
2823
2824         * twofish.c: Replaced some macros by a loop to reduce text size.
2825         * Makefile.am (twofish): No more need for sed editing.
2826
2827 Fri Apr  9 12:26:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2828
2829         * cipher.c (cipher_open): Reversed the changes for AUTO_CFB.
2830
2831         * blowfish.c: Dropped the Blowfish 160 mode.
2832         * cipher.c (cipher_open): Ditto.
2833         (setup_cipher_table): Ditto.  And removed support of twofish128
2834
2835 Wed Apr  7 20:51:39 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2836
2837         * random.c (get_random_bits): Can now handle requests > POOLSIZE
2838
2839         * cipher.c (cipher_open): Now uses standard CFB for automode if
2840         the blocksize is gt 8 (according to rfc2440).
2841
2842         * twofish.c: Applied Matthew Skala's patches for 256 bit key.
2843
2844 Tue Apr  6 19:58:12 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2845
2846         * random.c (get_random_bits): Can now handle requests > POOLSIZE
2847
2848         * cipher.c (cipher_open): Now uses standard CFB for automode if
2849         the blocksize is gt 8 (according to rfc2440).
2850
2851 Sat Mar 20 11:44:21 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2852
2853         * rndlinux.c (tty_printf) [IS_MODULE]: Removed.
2854
2855         * rndegd.c (gather_random): Some fixes.
2856
2857 Wed Mar 17 13:09:03 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2858
2859         * rndegd.c (do_read): New.
2860         (gather_random): Changed the implementation.
2861
2862 Mon Mar  8 20:47:17 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2863
2864         * dynload.c (DLSYM_NEEDS_UNDERSCORE): Renamed.
2865
2866 Fri Feb 26 17:55:41 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2867
2868         * md.c: Nearly a total rewrote.
2869
2870 Wed Feb 24 11:07:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2871
2872         * cipher.c (context): Fixed alignment
2873         * md.c: Ditto.
2874
2875         * rndegd.c: New
2876
2877 Mon Feb 22 20:04:00 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2878
2879         * rndegd.c: New.
2880
2881 Wed Feb 10 17:15:39 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2882
2883         * Makefile.am: Modules are now figured out by configure
2884         * construct.c: New. Generated by configure. Changed all modules
2885         to work with that.
2886         * sha1.h: Removed.
2887         * md5.h: Removed.
2888
2889         * twofish.c: Changed interface to allow Twofish/256
2890
2891         * rndunix.c (start_gatherer): Die on SIGPIPE.
2892
2893 Wed Jan 20 18:59:49 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2894
2895         * rndunix.c (gather_random): Fix to avoid infinite loop.
2896
2897 Sun Jan 17 11:04:33 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2898
2899         * des.c (is_weak_key): Replace system memcmp due to bugs
2900         in SunOS's memcmp.
2901         (des_get_info): Return error on failed selftest.
2902         * twofish.c (twofish_setkey): Return error on failed selftest or
2903         invalid keylength.
2904         * cast5.c (cast_setkey): Ditto.
2905         * blowfish.c (bf_setkey): Return error on failed selftest.
2906
2907 Tue Jan 12 11:17:18 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2908
2909         * random.c (random_is_faked): New.
2910
2911         * tiger.c: Only compile if we have the u64 type
2912
2913 Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2914
2915         * rndunix.c (gather_random): check for setuid.
2916
2917         * Makefile.am: Add a way to staically link random modules
2918
2919 Thu Jan  7 18:00:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2920
2921         * md.c (md_stop_debug): Do a flush first.
2922         (md_open): size of buffer now depends on the secure parameter
2923
2924 Sun Jan  3 15:28:44 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2925
2926         * rndunix.c (start_gatherer): Fixed stupid ==/= bug
2927
2928 1998-12-31  Geoff Keating  <geoffk@ozemail.com.au>
2929
2930         * des.c (is_weak_key): Rewrite loop end condition.
2931
2932 Tue Dec 29 14:41:47 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2933
2934         * random.c: add unistd.h for getpid().
2935         (RAND_MAX): Fallback value for Sun.
2936
2937 Wed Dec 23 17:12:24 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2938
2939         * md.c (md_copy): Reset debug.
2940
2941 Mon Dec 14 21:18:49 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2942
2943         * random.c (read_random_source): Changed the interface to the
2944         random gathering function.
2945         (gather_faked): Use new interface.
2946         * dynload.c (dynload_getfnc_fast_random_poll): Ditto.
2947         (dynload_getfnc_gather_random): Ditto.
2948         * rndlinux.c (gather_random): Ditto.
2949         * rndunix.c (gather_random): Ditto.
2950
2951 Sat Dec 12 18:40:32 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2952
2953         * dynload.c (SYMBOL_VERSION): New to cope with system which needs
2954         underscores.
2955
2956         * rndunix.c: Rewrote large parts
2957
2958 Thu Dec 10 20:15:36 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2959
2960         * dynload.c (load_extension): increased needed verbosity level.
2961
2962         * random.c (fast_random_poll): Fallback to a default fast random
2963         poll function.
2964         (read_random_source): Always use the faked entroy gatherer if no
2965         gather module is available.
2966         * rndlinux.c (fast_poll): Removed.
2967         * rndunix.c (fast_poll): Removed.
2968
2969
2970 Wed Nov 25 12:33:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
2971
2972         * rand-*.c: Removed.
2973         * rndlinux.c : New.
2974         * rndunix.c : New.
2975         * random.c : Restructured the interface to the gather modules.
2976         (intialize): Call constructor functions
2977         (read_radnom_source): Moved to here.
2978         * dynload.c (dynload_getfnc_gather_random): New.
2979         (dynload_getfnc_fast_random_poll): New.
2980         (register_internal_cipher_extension): New.
2981         (register_cipher_extension): Support of internal modules.
2982
2983 Sun Nov  8 17:44:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
2984
2985         * rand-unix.c (read_random_source): Removed the assert.
2986
2987 Mon Oct 19 18:34:30 1998  me,,,  (wk@tobold)
2988
2989         * pubkey.c: Hack to allow us to give some info about RSA keys back.
2990
2991 Thu Oct 15 11:47:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
2992
2993         * dynload.c: Support for DLD
2994
2995 Wed Oct 14 12:13:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
2996
2997         * rand-unix.c: Now uses names from configure for /dev/random.
2998
2999 1998-10-10  SL Baur  <steve@altair.xemacs.org>
3000
3001         * Makefile.am: fix sed -O substitutions to catch -O6, etc.
3002
3003 Tue Oct  6 10:06:32 1998  Werner Koch  (wk@isil.d.shuttle.de)
3004
3005         * rand-unix.c (HAVE_GETTIMEOFDAY): Fixed (was ..GETTIMEOFTIME :-)
3006         * rand-dummy.c (HAVE_GETTIMEOFDAY): Ditto.
3007
3008 Mon Sep 28 13:23:09 1998  Werner Koch  (wk@isil.d.shuttle.de)
3009
3010         * md.c (md_digest): New.
3011         (md_reset): New.
3012
3013 Wed Sep 23 12:27:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
3014
3015         * tiger.c (TIGER_CONTEXT): moved "buf", so that it is 64 bit aligned.
3016
3017 Mon Sep 21 06:22:53 1998  Werner Koch  (wk@(none))
3018
3019         * des.c: Some patches from Michael.
3020
3021 Thu Sep 17 19:00:06 1998  Werner Koch  (wk@(none))
3022
3023         * des.c : New file from Michael Roth <mroth@nessie.de>
3024
3025 Mon Sep 14 11:10:55 1998  Werner Koch  (wk@(none))
3026
3027         * blowfish.c (bf_setkey): Niklas Hernaeus patch to detect weak keys.
3028
3029 Mon Sep 14 09:19:25 1998  Werner Koch  (wk@(none))
3030
3031         * dynload.c (RTLD_NOW): Now defined to 1 if it is undefined.
3032
3033 Mon Sep  7 17:04:33 1998  Werner Koch  (wk@(none))
3034
3035         * Makefile.am: Fixes to allow a different build directory
3036
3037 Thu Aug  6 17:25:38 1998  Werner Koch,mobil,,,  (wk@tobold)
3038
3039         * random.c (get_random_byte): Removed and changed all callers
3040         to use get_random_bits()
3041
3042 Mon Jul 27 10:30:22 1998  Werner Koch  (wk@(none))
3043
3044         * cipher.c : Support for other blocksizes
3045         (cipher_get_blocksize): New.
3046         * twofish.c: New.
3047         * Makefile.am: Add twofish module.
3048
3049 Mon Jul 13 21:30:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
3050
3051         * random.c (read_pool): Simple alloc if secure_alloc is not set.
3052         (get_random_bits): Ditto.
3053
3054 Thu Jul  9 13:01:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
3055
3056         * dynload.c (load_extension): Function now nbails out if
3057         the program is run setuid.
3058
3059 Wed Jul  8 18:58:23 1998  Werner Koch  (wk@isil.d.shuttle.de)
3060
3061         * rmd160.c (rmd160_hash_buffer): New.
3062
3063 Thu Jul  2 10:50:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
3064
3065         * cipher.c (cipher_open): algos >=100 use standard CFB
3066
3067 Thu Jun 25 11:18:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
3068
3069         * Makefile.am: Support for extensions
3070
3071 Thu Jun 18 12:09:38 1998  Werner Koch  (wk@isil.d.shuttle.de)
3072
3073         * random.c (mix_pool): simpler handling for level 0
3074
3075 Mon Jun 15 14:40:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
3076
3077         * tiger.c: Removed from dist, will reappear as dynload module
3078
3079 Sat Jun 13 14:16:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
3080
3081         * pubkey.c: Major changes to allow extensions. Changed the inteface
3082         of all public key ciphers and added the ability to load extensions
3083         on demand.
3084
3085         * misc.c: Removed.
3086
3087 Wed Jun 10 07:52:08 1998  Werner Koch,mobil,,,  (wk@tobold)
3088
3089         * dynload.c: New.
3090         * cipher.c: Major changes to allow extensions.
3091
3092 Mon Jun  8 22:43:00 1998  Werner Koch  (wk@isil.d.shuttle.de)
3093
3094         * cipher.c: Major internal chnages to support extensions.
3095         * blowfish.c (blowfish_get_info): New and made all internal
3096         functions static, changed heder.
3097         * cast5.c (cast5_get_info): Likewise.
3098
3099 Mon Jun  8 12:27:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
3100
3101         * tiger.c (transform): Fix for big endian
3102
3103         * cipher.c (do_cfb_decrypt): Big endian fix.
3104
3105 Fri May 22 07:30:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
3106
3107         * md.c (md_get_oid): Add a new one for TIGER.
3108
3109 Thu May 21 13:24:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
3110
3111         * cipher.c: Add support for a dummy cipher
3112
3113 Thu May 14 15:40:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
3114
3115         * rmd160.c (transform): fixed sigbus - I should better
3116         add Christian von Roques's new implemenation of rmd160_write.
3117
3118 Fri May  8 18:07:44 1998  Werner Koch  (wk@isil.d.shuttle.de)
3119
3120         * rand-internal.h, rand-unix.c, rand-w32.c, rand_dummy.c: New
3121         * random.c: Moved system specific functions to rand-****.c
3122
3123 Fri May  8 14:01:17 1998  Werner Koch  (wk@isil.d.shuttle.de)
3124
3125         * random.c (fast_random_poll): add call to gethrtime.
3126
3127 Tue May  5 21:28:55 1998  Werner Koch  (wk@isil.d.shuttle.de)
3128
3129         * elgamal.c (elg_generate): choosing x was not correct, could
3130         yield 6 bytes which are not from the random pool, tsss, tsss..
3131
3132 Tue May  5 14:09:06 1998  Werner Koch  (wk@isil.d.shuttle.de)
3133
3134         * primegen.c (generate_elg_prime): Add arg mode, changed all
3135         callers and implemented mode 1.
3136
3137 Mon Apr 27 14:41:58 1998  Werner Koch  (wk@isil.d.shuttle.de)
3138
3139         * cipher.c (cipher_get_keylen): New.
3140
3141 Sun Apr 26 14:44:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
3142
3143         * tiger.c, tiger.h: New.
3144
3145 Wed Apr  8 14:57:11 1998  Werner Koch  (wk@isil.d.shuttle.de)
3146
3147         * misc.c (check_pubkey_algo2): New.
3148
3149 Tue Apr  7 18:46:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
3150
3151         * cipher.c: New
3152         * misc.c (check_cipher_algo): Moved to cipher.c
3153         * cast5.c: Moved many functions to cipher.c
3154         * blowfish.c: Likewise.
3155
3156 Sat Apr  4 19:52:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
3157
3158         * cast5.c: Implemented and tested.
3159
3160 Wed Apr  1 16:38:27 1998  Werner Koch  (wk@isil.d.shuttle.de)
3161
3162         * elgamal.c (elg_generate): Faster generation of x in some cases.
3163
3164 Thu Mar 19 13:54:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
3165
3166         * blowfish.c (blowfish_decode_cfb): changed XOR operation
3167         (blowfish_encode_cfb): Ditto.
3168
3169 Thu Mar 12 14:04:05 1998  Werner Koch  (wk@isil.d.shuttle.de)
3170
3171         * sha1.c (transform): Rewrote
3172
3173         * blowfish.c (encrypt): Unrolled for rounds == 16
3174         (decrypt): Ditto.
3175
3176 Tue Mar 10 16:32:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
3177
3178         * rmd160.c (transform): Unrolled the loop.
3179
3180 Tue Mar 10 13:05:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
3181
3182         * random.c (read_pool): Add pool_balance stuff.
3183         (get_random_bits): New.
3184
3185         * elgamal.c (elg_generate): Now uses get_random_bits to generate x.
3186
3187
3188 Tue Mar 10 11:33:51 1998  Werner Koch  (wk@isil.d.shuttle.de)
3189
3190         * md.c (md_digest_length): New.
3191
3192 Tue Mar 10 11:27:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
3193
3194         * dsa.c (dsa_verify): Works.
3195
3196 Mon Mar  9 12:59:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
3197
3198         * dsa.c, dsa.h: Removed some unused code.
3199
3200 Wed Mar  4 10:39:22 1998  Werner Koch  (wk@isil.d.shuttle.de)
3201
3202         * md.c (md_open): Add call to fast_random_poll.
3203         blowfish.c (blowfish_setkey): Ditto.
3204
3205 Tue Mar  3 13:32:54 1998  Werner Koch  (wk@isil.d.shuttle.de)
3206
3207         * rmd160.c (rmd160_mixblock): New.
3208         * random.c: Restructured to start with a new RNG implementation.
3209         * random.h: New.
3210
3211 Mon Mar  2 19:21:46 1998  Werner Koch  (wk@isil.d.shuttle.de)
3212
3213         * gost.c, gost.h: Removed because they did only contain trash.
3214
3215 Sun Mar  1 16:42:29 1998  Werner Koch  (wk@isil.d.shuttle.de)
3216
3217         * random.c (fill_buffer): removed error message if n == -1.
3218
3219 Fri Feb 27 16:39:34 1998  Werner Koch  (wk@isil.d.shuttle.de)
3220
3221         * md.c (md_enable): No init if called twice.
3222
3223 Thu Feb 26 07:57:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
3224
3225         * primegen.c (generate_elg_prime): Changed the progress printing.
3226         (gen_prime): Ditto.
3227
3228 Tue Feb 24 12:28:42 1998  Werner Koch  (wk@isil.d.shuttle.de)
3229
3230         * md5.c, md.5 : Replaced by a modified version of md5.c from
3231         GNU textutils 1.22.
3232
3233 Wed Feb 18 14:08:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
3234
3235         * md.c, md.h : New debugging support
3236
3237 Mon Feb 16 10:08:47 1998  Werner Koch  (wk@isil.d.shuttle.de)
3238
3239         * misc.c (cipher_algo_to_string): New
3240         (pubkey_algo_to_string): New.
3241         (digest_algo_to_string): New.
3242
3243
3244  Copyright 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
3245
3246  This file is free software; as a special exception the author gives
3247  unlimited permission to copy and/or distribute it, with or without
3248  modifications, as long as this notice is preserved.
3249
3250  This file is distributed in the hope that it will be useful, but
3251  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
3252  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.