Help not to edit a generated buffer.
[libgcrypt.git] / src / ChangeLog
1 2010-03-15  Werner Koch  <wk@g10code.com>
2
3         * gcrypt.h.in: Add autoconf template to set generated file to
4         read-only in an Emacs buffer.
5
6 2010-01-21  Werner Koch  <wk@g10code.com>
7
8         * Makefile.am (arch_gpg_error_cflags, arch_gpg_error_libs): New.
9         (dumpsexp_CFLAGS): New.
10         (dumpsexp_LDADD): Add arch_gpg_error_libs.
11         (hmac256_CFLAGS, hmac256_LDADD): Add the arch variables.
12         (libgcrypt_la_DEPENDENCIES): Add libcompat.
13         * secmem.c (lock_pool): Mark unused args.
14         * global.c (do_malloc, gcry_realloc, gcry_free, gcry_calloc)
15         (gcry_calloc_secure, gcry_xcalloc, gcry_xcalloc_secure): Use
16         gpg_err_set_errno.
17         (_gcry_vcontrol): Call _gcry_compat_identification.
18         * hmac256.c [__MINGW32CE__]: Include gpg-error.h.
19         (_gcry_hmac256_file): Use gpg_err_set_errno.
20         (gpg_err_set_errno) [!GPG_ERR_INLINE]: Add macro.
21         * g10lib.h: Include libcompat.h.
22
23 2010-01-05  Werner Koch  <wk@g10code.com>
24
25         * gcrypt.h.in (GCRY_PK_ECDH): New.
26
27 2009-12-08  Werner Koch  <wk@g10code.com>
28
29         * gcrypt.h.in (GCRY_CIPHER_MODE_AESWRAP): New.
30
31 2009-12-08  Marcus Brinkmann  <marcus@g10code.de>
32
33         * Makefile.am (LTRCCOMPILE): Refactor with ...
34         (RCCOMPILE): ... this new macro.  Add $(libgcrypt_la_CPPFLAGS).
35         (SUFFIXES): Add .lo.
36         (.rc.o): Change to ...
37         (.rc.lo): ... this implicit rule.
38         (gcrypt_res_ldflag): Removed.
39         (gcrypt_res): Use libtool object file name here.
40         (libgcrypt_la_LDFLAGS): Remove gcrypt_res_ldflag usage.
41         (libgcrypt_la_LIBADD): Add gcrypt_res.
42
43 2009-11-29  Werner Koch  <wk@g10code.com>
44
45         * hwfeatures.c (detect_ia32_gnuc): Repalce "=r" by "+r" so that
46         HAS-CPUDID is always initialized.  Thanks to Ben Hutchings for
47         pointing out this problem.
48
49 2009-08-05  Werner Koch  <wk@g10code.com>
50
51         * ath.h: Include sys/msg.h.
52
53 2009-07-02  Werner Koch  <wk@g10code.com>
54
55         * fips.c (_gcry_initialize_fips_mode): Do not use FIPS mode if
56         /proc/.../fips_enabled has insufficient permissions.
57
58         * dumpsexp.c (main): Fix handling multiple files.
59         (parse_and_print): Implement hex and octal escaping.
60
61         * sexp.c (unquote_string): Remove superfluous clearing of ESC.
62         * dumpsexp.c (parse_and_print): Add missing break.
63         (main): Fix return value.
64         Reported by Fabian Keil.
65
66 2009-02-16  Werner Koch  <wk@g10code.com>
67
68         * ath.h [HAVE_SYS_SELECT_H]: Include <sys/select.h> for fd_set.
69         [!HAVE_SYS_SELECT_H]: Include <sys/time.h>.  Move inclusion of
70         config.h to the top.  The actual configure check was already
71         there.
72
73         * sexp.c: Remove memory.h.
74         * mpi.h: Remove memory.h.  Add string.h.
75
76 2009-02-02  Werner Koch  <wk@g10code.com>
77
78         * ath.h: Include sys/time.h.  Fixes bug#993.
79
80 2009-01-22  Werner Koch  <wk@g10code.com>
81
82         * fips.c (_gcry_initialize_fips_mode): Remove superfluous const
83         from static string.  Reported by Albert Chin.
84         * hmac256.c (selftest): Ditto and change to unsigned char.
85
86 2008-12-10  Werner Koch  <wk@g10code.com>
87
88         * hmac256.c (finalize): Fix for big endian hosts.
89
90 2008-12-05  Werner Koch  <wk@g10code.com>
91
92         * global.c (gcry_free): Save and restore ERRNO if set.
93
94 2008-11-24  Werner Koch  <wk@g10code.com>
95
96         * sexp.c (get_internal_buffer): New.
97         (sexp_sscan): Add format character S.
98         * cipher-proto.h (pk_ext_generate_t): Add field EXTRAINFO  changed
99         all implementors.
100
101         * cipher-proto.h (pk_ext_generate_t): Simplify. 
102         (pk_get_param): New.
103         (pk_extra_spec_t): Add field GET_PARAM.
104         * cipher.h (PUBKEY_FLAG_TRANSIENT_KEY): Remove.
105         (_gcry_pubkey_extraspec_elg): New.
106
107 2008-11-05  Werner Koch  <wk@g10code.com>
108
109         * cipher.h (CIPHER_INFO_NO_WEAK_KEY): New.
110
111         * cipher-proto.h (cipher_set_extra_info_t): New.
112         (cipher_extra_spec): Add field SET_EXTRA_INFO.
113
114 2008-10-30  Werner Koch  <wk@g10code.com>
115
116         * g10lib.h (GCC_ATTR_FORMAT_ARG): New.
117         (_gcry_gettext): Use it.
118
119 2008-10-24  Werner Koch  <wk@g10code.com>
120
121         * global.c (inactive_fips_mode): Move to fips.c. 
122         (gcry_set_allocation_handler): Factor code out to ...
123         * fips.c (_gcry_inactivate_fips_mode): New.
124         (_gcry_is_fips_mode_inactive): New.
125
126 2008-09-29  Werner Koch  <wk@g10code.com>
127
128         * gcrypt-module.h (GCRY_MODULE_ID_USER, GCRY_MODULE_ID_USER_LAST):
129         New.
130         * module.c (MODULE_ID_USER, MODULE_ID_USER_LAST): Define using new
131         macros.
132
133 2008-09-20  Werner Koch  <wk@g10code.com>
134
135         * hmac256.c (finalize) [WORDS_BIGENDIAN]: Fix sigbus problem.
136
137 2008-09-18  Werner Koch  <wk@g10code.com>
138
139         * cipher-proto.h (pk_ext_generate_t): Add args QBITS, NAME, DOMAIN.
140
141         * fips.c (fips_new_state): Allow Error => Error transition.
142
143 2008-09-18  Werner Koch  <wk@g10code.com>
144
145         * gcrypt.h.in (gcry_fips_mode_active): New.
146
147         * secmem.c (_gcry_secmem_init): Factor most code out to ..
148         (secmem_init): .. new.
149         (DEFAULT_POOL_SIZE): Rename to MINIMUM_POOL_SIZE.
150         (STANDARD_POOL_SIZE): New.
151         (_gcry_secmem_malloc_internal): Don't abort if the pool is not
152         initialized but try to out intialize it first and only then print
153         an error message and return NULL.  If the pool is not locked while
154         in FIPS mode, return NULL.
155
156         * fips.c (FIPS_FORCE_FILE): New constant.  Change the file name to
157         "/etc/gcrypt/fips_enabled".
158         (enforced_fips_mode): New.
159         (_gcry_initialize_fips_mode): Set that flag.
160         (_gcry_enforced_fips_mode): New.
161         * global.c (inactive_fips_mode): New.
162         (_gcry_vcontrol): Take that flag in account for GCRYCTL_FIPS_MODE_P.
163         (gcry_set_allocation_handler): Take care of the enforced fips mdoe
164         flag.
165         (get_no_secure_memory): New.
166         (do_malloc, gcry_is_secure): Use it.
167
168 2008-09-16  Werner Koch  <wk@g10code.com>
169
170         * global.c (print_config): Use y/n for fips mode.
171
172         * fips.c (fips_new_state): Allow transition to Error and
173         Fatal-error from Init.
174
175 2008-09-15  Werner Koch  <wk@g10code.com>
176
177         * fips.c [HAVE_SYSLOG]: Include syslog.h.
178         (_gcry_initialize_fips_mode, lock_fsm, unlock_fsm)
179         (_gcry_fips_signal_error, fips_new_state)
180         (_gcry_fips_noreturn) [HAVE_SYSLOG]: Also log via syslog.
181         (check_binary_integrity) [HAVE_SYSLOG]: Log failure.
182         * global.h [HAVE_SYSLOG]: Include syslog.h.
183         (_gcry_global_is_operational) [HAVE_SYSLOG]: Print warning.
184
185         * global.c (_gcry_vcontrol): Use GCRYCTL_INITIALIZATION_FINISHED
186         to run power-up tests.  Add unpublished control commands 58-60.
187
188         * global.c (_gcry_global_is_operational): New.
189         * g10lib.h (fips_is_operational): Change to call this function.
190
191 2008-09-12  Werner Koch  <wk@g10code.com>
192
193         * fips.c (_gcry_fips_run_selftests): Add arg EXTENDED.
194         (run_cipher_selftests, run_digest_selftests, run_hmac_selftests) 
195         (run_pubkey_selftests): Ditto.
196         * cipher-proto.h (selftest_func_t): Add arg EXTENDED
197
198 2008-09-11  Werner Koch  <wk@g10code.com>
199
200         * fips.c: Include string.h.
201         (loxtoi_1, loxtoi_2, loxdigit_p): New.
202         (check_binary_integrity): Change the format of the expected file.
203
204         * fips.c (_gcry_fips_run_selftests): Run random tests before the
205         pubkey tests.
206
207 2008-09-05  Werner Koch  <wk@g10code.com>
208
209         * gcrypt.h.in (GCYRCTL_SELFTEST): New.
210         * global.c (_gcry_vcontrol): Implement.
211         * fips.c (_gcry_fips_run_selftests): Do state transitions only if
212         in fips mode.  Return an error code.
213
214 2008-09-01  Werner Koch  <wk@g10code.com>
215
216         * stdmem.c: Re-indented.
217
218 2008-08-29  Werner Koch  <wk@g10code.com>
219
220         * fips.c (_gcry_initialize_fips_mode): Changed /proc file to test
221         for FIPS mode.
222
223         * cipher-proto.h (pk_compute_keygrip_t): New.
224         (pk_extra_spec): Add field comp_keygrip.
225
226 2008-08-28  Werner Koch  <wk@g10code.com>
227
228         * hwfeatures.c (_gcry_detect_hw_features): Disable hardware
229         detection in FIPS mode.
230
231 2008-08-27  Werner Koch  <wk@g10code.com>
232
233         * global.c (_gcry_vcontrol): Allow running selftests from error
234         state.
235         (gcry_set_outofcore_handler): Only print a warning if used in FIPS
236         mode.
237         (gcry_xmalloc, gcry_xrealloc, gcry_xmalloc_secure, gcry_xstrdup):
238         Ignore an outofcore handler in FIPS mode.
239
240         * fips.c (_gcry_fips_test_error_or_operational): New.
241         (fips_new_state): Allow transition from error into selftest.
242         Disallow error to init.
243
244 2008-08-26  Werner Koch  <wk@g10code.com>
245
246         * fips.c (fips_new_state): Print state transitions only at
247         verbosity level of 2.
248         (reporter): Likewise.
249
250         * cipher-proto.h (pk_ext_generate_t): New.
251         (pk_extra_spec): Add member ext_generate.
252         * cipher.h (PUBKEY_FLAG_TRANSIENT_KEY): New.
253
254 2008-08-22  Werner Koch  <wk@g10code.com>
255
256         * hmac256.c (_gcry_hmac256_file): New.
257         (main): New option --binary.
258         * fips.c (check_binary_integrity): New.
259         (_gcry_fips_run_selftests): Run it.
260
261         * global.c (_gcry_vcontrol) <GCRYCTL_UPDATE_RANDOM_SEED_FILE>:
262         Check for fips operational state.
263         (_gcry_vcontrol) <GCRYCTL_FAST_POLL>: Ditt.
264
265 2008-08-21  Werner Koch  <wk@g10code.com>
266
267         * misc.c (_gcry_log_printhex): New.
268
269 2008-08-20  Werner Koch  <wk@g10code.com>
270
271         * g10lib.h (gcry_assert): New.  use this at almost all places
272         where we used a plain assert.
273         * misc.c (_gcry_assert_failed): New.
274         (_gcry_bug): Also use func variant for ISO-C99.
275
276 2008-08-19  Werner Koch  <wk@g10code.com>
277
278         * visibility.c, visibility.h (gcry_mpi_lshift): New.
279         * libgcrypt.vers, libgcrypt.def, gcrypt.h.in: Ditto.
280
281 2008-08-15  Werner Koch  <wk@g10code.com>
282
283         * gcrypt.h.in (gcry_cipher_setkey): Replace macro by function.
284         (gcry_cipher_setiv):  Ditto.
285         (gcry_cipher_setctr): Ditto.
286         * visibility.c (gcry_cipher_setkey, gcry_cipher_setiv) 
287         (gcry_cipher_setctr): New.
288         * visibility.h (gcry_cipher_setkey, gcry_cipher_setiv) 
289         (gcry_cipher_setctr): New.
290         * libgcrypt.vers (gcry_cipher_setkey, gcry_cipher_setiv)
291         (gcry_cipher_setctr): New.
292         * libgcrypt.def (gcry_cipher_setkey, gcry_cipher_setiv) 
293         (gcry_cipher_setctr): New.
294
295         * hmac256.h, hmac256.c: New.
296         * Makefile.am (hmac256_SOURCES): New. 
297         * Makefile.am (bin_PROGRAMS): Add hmac256.
298
299         * gcrypt.h.in (struct gcry_thread_cbs): Change type of OPTION to
300         unsigned int.  Although this is a type change it does not make a
301         difference.
302         * ath.c (ath_install): Take the version of the option field in
303         account.
304         
305         * visibility.c (gcry_pk_encrypt, gcry_pk_decrypt, gcry_pk_sign)
306         (gcry_pk_verify, gcry_pk_testkey, gcry_pk_genkey)
307         (gcry_pk_get_nbits, gcry_pk_get_keygrip)
308         (gcry_md_open, gcry_md_copy, gcry_md_enable) 
309         (gcry_md_write, md_final, gcry_md_ctl, gcry_md_setkey) 
310         (gcry_md_hash_buffer, gcry_md_get_algo, gcry_md_info) 
311         (gcry_md_is_enabled)
312         (gcry_cipher_open, gcry_cipher_encrypt)
313         (gcry_cipher_decrypt, gcry_cipher_ctl)
314         (gcry_cipher_algo_info): Check whether the library is operational.
315
316         * cipher-proto.h: New.
317         * cipher.h: Include cipher-proto.h.
318         * visibility.h: Remove duplicate macro definitions.  Remove
319         gcry_cipher_register, gcry_md_register, gcry_pk_register macros.
320         * visibility.c: Include cipher-proto.h. 
321         (gcry_cipher_register): Pass dummy extra args to the internal
322         register function.
323         (gcry_md_register, gcry_pk_register): Ditto.
324         * g10lib.h (struct gcry_module): Add field EXTRASPEC.
325         * module.c (_gcry_module_add): Add arg EXTRASPEC.  Changed all
326         callers to pass NULL.
327
328         * fips.c: New.
329         * gcrypt.h.in (GCRYCTL_FIPS_MODE_P): New.
330         * global.c (global_init): Call fips initialization.
331         (_gcry_vcontrol): Add GCRYCTL_FIPS_MODE_P code.
332         (print_config): Add config item fips-mode.
333         (gcry_set_allocation_handler): Do not allow the use of custom
334         allocation handlers.
335         (gcry_set_outofcore_handler): Ditto.
336         (_gcry_get_debug_flag): Do not return any debug flags in fips mode.
337         * misc.c (_gcry_logv): Signal fips error on BUG or FATAL.
338         (_gcry_fatal_error): Ditto.
339
340 2008-07-05  Werner Koch  <wk@g10code.com>
341
342         * Makefile.am: Include librandom.la.
343
344 2008-04-18  Werner Koch  <wk@g10code.com>
345
346         * missing-string.c (vasprintf): Remove.  It is not used.  Reported
347         by Simon Josefsson.
348
349 2008-03-11  Werner Koch  <wk@g10code.com>
350
351         * gcrypt.h.in (gcry_ac_em_t, gcry_ac_scheme_t): Remove trailing
352         comma for full C-89 compatibility.
353         
354 2008-01-21  Marcus Brinkmann  <marcus@g10code.de>
355
356         * hwfeatures.c (detect_ia32_gnuc): Fix inline asm.
357
358 2007-12-11  Werner Koch  <wk@g10code.com>
359
360         * visibility.c (gcry_md_hash_buffer): Don't use return vor a void
361         function.  Hey, why does gcc not complain about this?
362         (gcry_ac_io_init_va): Ditto.
363
364 2007-12-05  Werner Koch  <wk@g10code.com>
365
366         * hwfeatures.c (detect_ia32_gnuc): Depend on ENABLE_PADLOCK_SUPPORT.
367
368 2007-12-03  Werner Koch  <wk@g10code.com>
369
370         * misc.c (_gcry_logv): Use abort for error levels fatal and bug as
371         this is more approriate for a library.  Terminate the secmem
372         before doing so.
373         (_gcry_fatal_error): Terminate secmem before abort.
374         * secmem.c (_gcry_secmem_malloc_internal): Use log_bug instead of
375         exit.
376
377 2007-11-29  Werner Koch  <wk@g10code.com>
378
379         * hwfeatures.c (detect_ia32_gnuc): Detect Padlock engine.
380
381 2007-11-13  Werner Koch  <wk@g10code.com>
382
383         * gcrypt.h.in (_GCRY_GCC_ATTR_MALLOC): Fixed gcc version check.
384         Reported by Gabriele Monti.
385
386 2007-10-31  Werner Koch  <wk@g10code.com>
387
388         * global.c (gcry_control): Factor most code out to ..
389         (_gcry_vcontrol): .. new.
390         * sexp.c (_gcry_sexp_vbuild): New.
391         * mpi.h (_gcry_mpi_set, _gcry_mpi_set_ui, _gcry_mpi_invm): Remove
392         prototypes as they are already in gcrypt.h.
393
394 2007-10-30  Werner Koch  <wk@g10code.com>
395
396         * sexp.c (gcry_sexp_nth_string): Replace by _gcry_sexp_nth_string.
397
398         * visibility.h, visibility.c: New.
399         * g10lib.h: Include visibility.h instead of gcrypt.h.
400         * globals.c (_gcry_malloc): Rename to ..
401         (do_malloc): .. this.
402
403         * hwfeatures.c: New.
404         * global.c (global_init): Detect features.
405         (print_config): Print them.
406
407 2007-08-22  Werner Koch  <wk@g10code.com>
408
409         * dumpsexp.c: New.
410         * Makefile.am (bin_PROGRAMS): Install it.
411
412         * getrandom.c (print_version): Use new standard license line.
413         * gcryptrnd.c (print_version): Ditto.
414
415 2007-06-06  Werner Koch  <wk@g10code.com>
416
417         * gcrypt.h.in (GCRY_THREAD_OPTION_PTH_IMPL): Factror network
418         related code out so that the prototypes can be adjusted for W32.
419         (_GCRY_THREAD_OPTION_PTH_IMPL_NET): New.
420
421 2007-05-09  Werner Koch  <wk@g10code.com>
422
423         * libgcrypt.m4: Print found version on success.
424
425 2007-05-09  Marcus Brinkmann  <marcus@g10code.de>
426
427         * gcrypt.h.in (gcry_ac_io_t): Add name for anonymous union, and mark
428         all members as internal (actually: deprecated).
429
430 2007-05-04  Werner Koch  <wk@g10code.com>
431
432         * Makefile.am (.rc.lo): New to replace gmake specific suffix rule.
433
434 2007-05-03  Werner Koch  <wk@g10code.com>
435
436         * libgcrypt.def (gcry_sexp_nth_string): New.
437         * Makefile.am (EXTRA_DIST): Add libgcrypt.def.
438
439 2007-05-02  Werner Koch  <wk@g10code.com>
440
441         * global.c (print_config): Print ciphers, digests and pubkeys.
442
443 2007-05-02  David Shaw  <dshaw@jabberwocky.com>
444
445         * cipher.h, gcrypt.h.in: Add Camellia.
446
447 2007-04-30  Werner Koch  <wk@g10code.com>
448
449         * gcrypt.h.in (GCRYCTL_PRINT_CONFIG): New.
450         (GCRYCTL_SET_RNDEGD_SOCKET): New.
451         * global.c (gcry_control): Add GCRYCTL_PRINT_CONFIG and
452         GCRYCTL_SET_RNDEGD_SOCKET.
453         (print_config): New.
454         * misc.c (_gcry_log_info_with_dummy_fp): New.
455
456 2007-04-18  Werner Koch  <wk@g10code.com>
457
458         * gcrypt.h.in (gcry_sexp_nth_string): New.
459
460         * sexp.c (gcry_sexp_nth_data): Factored code out to ...
461         (sexp_nth_data): ... new.
462         (gcry_sexp_nth_string): New.
463         (gcry_sexp_nth_mpi): Reimplemented in terms of sexp_ntd_data.
464
465 2007-04-16  Werner Koch  <wk@g10code.com>
466
467         * secmem.c (init_pool): Use sysconf() if available to determine
468         page size.
469         
470 2007-03-22  Werner Koch  <wk@g10code.com>
471
472         * mpi.h (mpi_mod): New.
473         (mpi_new, mpi_snew): New.
474
475         * gcrypt.h.in: Add GCRY_PK_ECDSA.
476
477 2007-03-16  Werner Koch  <wk@g10code.com>
478
479         * gcrypt.h.in (GCRY_THREAD_OPTION_PTHREAD_IMPL): Fixed typo
480         introduced by me on 2006-10-23.
481
482 2007-02-22  Werner Koch  <wk@g10code.com>
483
484         * gcrypt.h.in (gcry_ac_id_to_name, gcry_ac_name_to_id): Mark as
485         deprecated.
486
487         * libgcrypt.def (gcry_fast_random_poll): Removed - it is a macro.
488         (gcry_cipher_register, gcry_cipher_unregister): New.
489         (gcry_md_register, gcry_md_unregister): New.
490         (gcry_pk_register, gcry_pk_unregister): New.
491         (gcry_ac_data_from_sexp, gcry_ac_data_to_sexp): New.
492         (gcry_ac_io_init, gcry_ac_io_init_va): New.
493         (gcry_ac_data_encrypt_scheme, gcry_ac_data_decrypt_scheme): New.
494         (gcry_ac_data_sign_scheme, gcry_ac_data_verify_scheme): New.
495
496         * missing-string.c: Include stdio.h for the vsprintf prototype.
497
498         * ath.h (struct ath_ops) [_WIN32]: Use int instead of socklen_t.
499
500 2007-02-21  Werner Koch  <wk@g10code.com>
501
502         * libgcrypt.def (gcry_create_nonce, gcry_fast_random_poll)
503         (gcry_md_debug): New.
504
505         * libgcrypt-config.in: Remove duplicates from --cflags and --libs.
506         Print a error for option --thread.
507
508         * gcrypt.h.in (gcry_sexp_sprint): Change BUFFER from char* to void*.
509         (gcry_md_ctl): Change BUFFER from unsigned char* to void*.
510         (gcry_md_debug): New.
511         (gcry_cipher_encrypt, gcry_cipher_decrypt): Change buffer args to
512         void*.
513         (gcry_randomize): Change BUFFER to void.
514         (gcry_create_nonce): Ditto.
515
516         * libgcrypt.vers (gcry_md_debug): New.
517
518         * sexp.c (gcry_sexp_sprint): Ditto.
519         (normalize): Make P unsigned.
520         (gcry_sexp_nth_data): Cast return value to char*.
521         (sexp_sscan): Fix sign/unsigned conflicts.
522         (whitespacep): Change P to char*.
523         (unquote_string): Change STRING to char*.
524         (convert_to_hex): Change DEST to char*.
525         (convert_to_string): Change DEST and P to char*.
526         (convert_to_token): Chnage DEST to char*.
527         (gcry_sexp_canon_len): Change DISPHINT to unsigned char*.
528
529         * gcrypt-module.h (gcry_pk_spec): Made ALIASES a const.
530         (gcry_md_write_t): Changed BUF to a const void*.
531
532 2007-02-12  Werner Koch  <wk@g10code.com>
533
534         * gcrypt.h.in: Include stdlib.h for the sake fo the trheading
535         macros.  Suggested by Andreas Metzler.
536
537         * secmem.c (ptr_into_pool_p): New.
538         (_gcry_private_is_secure): Implement in terms of new function.
539         (BLOCK_VALID): Removed.  Replaced all users by new function.
540
541 2007-01-31  Werner Koch  <wk@g10code.com>
542
543         * secmem.c (_gcry_private_is_secure): Fixed severe implementation
544         flaw.  Might be the reason for some of the more obscure bugs.
545         (MB_WIPE_OUT): Use wipememory2.
546
547 2006-10-23  Werner Koch  <wk@g10code.com>
548
549         * gcrypt.h.in (GCRY_THREAD_OPTION_PTHREAD_IMPL): Add some cast for
550         use by C-doubleplus.  In general I don't like this but due to
551         public demand I give up ;-)
552
553 2006-10-19  Werner Koch  <wk@g10code.com>
554
555         * global.c (gcry_control) <GCRYCTL_INIT_SECMEM>: Return an error
556         if the memory could not be locked.
557         * secmem.c (not_locked): New.
558         (_gcry_secmem_get_flags): Return that flag.
559         * secmem.h (GCRY_SECMEM_FLAG_NOT_LOCKED): New.
560
561 2006-10-05  Werner Koch  <wk@g10code.com>
562
563         * module.c (_gcry_module_id_new): Don't assign modules in the range
564         the range of 1024..4096.
565         * gcrypt.h (GCRY_MD_USER, GCRY_MD_USER_LAST): New
566         (GCRY_PK_USER, GCRY_PK_USER_LAST): New.
567         (GCRY_CIPHER_USER, GCRY_CIPHER_USER_LAST): New.
568
569 2006-10-12  Marcus Brinkmann  <marcus@g10code.de>
570
571         * gcrypt.h.in: Replace socklen_t with gcry_socklen_t.
572
573 2006-10-11  Marcus Brinkmann  <marcus@g10code.de>
574
575         * gcrypt.h.in: Replace version by @VERSION@.
576
577 2006-10-10  Marcus Brinkmann  <marcus@g10code.de>
578
579         * gcrypt.h: Add fallback type for socklen_t.  Move to ...
580         * gcrypt.h.in: ... this file.
581         * Makefile.am (EXTRA_DIST): Add gcrypt.h.in.
582
583 2006-09-04  Werner Koch  <wk@g10code.com>
584
585         * gcrypt.h: Removed some trailing comma in enums.
586
587 2006-08-29  Werner Koch  <wk@g10code.com>
588
589         * global.c (gcry_xrealloc): Pass secure flag to outofcore handler.
590
591         * gcrypt.h (GCRY_CIPHER_SEED): New.
592
593 2006-08-21  Werner Koch  <wk@g10code.com>
594
595         * gcrypt.h (GCRYCTL_FAKED_RANDOM_P): New.
596
597 2006-07-29  Marcus Brinkmann  <marcus@g10code.de>
598
599         * secmem.c (init_pool): Close FD after establishing the mapping.
600
601 2006-07-12  Marcus Brinkmann  <marcus@g10code.de>
602
603         * ath.c (ath_mutex_destroy): Microoptimize destruction of unused
604         statitically initialized mutexes.  Suggested by Victor Stinner
605         <victor.stinner@inl.fr>.
606
607         * gcrypt.h (GCRY_THREAD_OPTION_PTHREAD_IMPL,
608         (GCRY_THREAD_OPTION_PTH_IMPL): Add missing initializers to
609         suppress gcc warning.
610         Submitted by Victor Stinner <victor.stinner@inl.fr>.
611
612 2006-07-04  Marcus Brinkmann  <marcus@g10code.de>
613
614         * ath.c: Avoid warning about double defined type byte and other
615         hacks to let it build for W32 (backported from LIBGCRYPT-1-2-BRANCH).
616         * ath.h, gcrypt.h, tests/benchmark.c, src/types.h: Likewise.
617
618         * gcrypt.h: Revert last change, and instead:
619         [_WIN32 || __WIN32__]: Do not include <sys/socket.h>, but
620         <winsock2.h> and <ws2tcpip.h>.
621         Suggested by Simon Josefsson <jas@extundo.com>.
622         
623         * Makefile.am (install-data-local, uninstall-local, %.lo,
624         (install-def-file, uninstall-def-file): New targets.
625         (LTRCCOMPILE, gcrypt_res, gcrypt_res_ldflag, no_undefined,
626         (export_symbols, gcrypt_deps): New variables.
627         * versioninfo.rc.in: New file.
628         * libgcrypt.def: New file from ../w32-dll/libgcrypt.def.
629
630         * gcrypt.h [!HAVE_SYS_SOCKET_H]: Do not include sys/socket.h, but
631         the appropriate windows socket header.
632
633 2006-06-21  Werner Koch  <wk@g10code.com>
634
635         * global.c (gcry_xcalloc, gcry_xcalloc_secure): Made safe against
636         integer overflow.
637
638         * sexp.c (make_space): Return an error on out of core.
639         (sexp_sscan): Remove all xmalloc style calls and return proper
640         error codes on allocation failures.
641         (gcry_sexp_find_token): Ditto.
642         (gcry_sexp_nth): 
643         
644         * sexp.c (gcry_sexp_find_token): Re-indented and removed a cruft
645         "while(level);" which fortunately had no effect.
646
647 2006-04-28  Werner Koch  <wk@g10code.com>
648
649         * gcrypt.h (GCRY_MD_SHA224): Change value from 306 to 11 to match
650         the use in OpenPGP.  There has been no release yet, so we can
651         safely do it.
652
653 2006-04-22  Moritz Schulte  <moritz@g10code.com>
654
655         * gcrypt.h (gcry_ctl_cmds): New commands:
656         GCRYCTL_SET_RANDOM_DAEMON_SOCKET, GCRYCTL_USE_RANDOM_DAEMON.  
657         * global.c (gcry_control): Handle new commands, calling
658         _gcry_set_random_daemon_socket() and _gcry_use_random_daemon().
659
660 2006-04-18  Werner Koch  <wk@g10code.com>
661
662         * gcrypt.h (GCRY_PK_USAGE_CERT, GCRY_PK_USAGE_AUTH)
663         (GCRY_PK_USAGE_UNKN): New.
664
665 2006-04-01  Moritz Schulte  <moritz@g10code.com>
666
667         * gcrypt.h (gcry_ac_eme_pkcs_v1_5): Removed members: key, handle;
668         added member: key_size.
669
670         * secmem.c (MB_FLAG_ACTIVE): Write braces around MB_FLAG_ACTIVE
671         definition.
672
673 2006-03-15  Werner Koch  <wk@g10code.com>
674
675         * getrandom.c: New.
676
677 2006-03-14  Werner Koch  <wk@g10code.com>
678
679         * gcryptrnd.c: New.
680
681 2006-03-10  Werner Koch  <wk@g10code.com>
682
683         * gcrypt.h: Add GCRY_MD_SHA224.
684
685 2005-11-02  Moritz Schulte  <moritz@g10code.com>
686
687         * gcrypt.h: Update comments for functions: gcry_cipher_algo_name,
688         gcry_pk_algo_name.
689
690 2005-10-31  Moritz Schulte  <moritz@g10code.com>
691
692         * global.c: Added documentation.
693
694 2005-10-16  Moritz Schulte  <moritz@g10code.com>
695
696         * global.c (global_init): Use gcry_error_t instead of
697         gcry_err_code_t; use goto instead of if constructs.
698
699         * stdmem.c: Inserted description of the layered memory management
700         in Libgcrypt.
701
702         * g10lib.h: Removed G10_I18N_H related check; it seems to be a
703         GnuPG relict (Libgcrypt does not define this symbol anywhere).
704         (FLAG_MODULE_DISABLED): Don't forget parantheses around shifted
705         value.
706         
707         Removed GCC_ATTR_PURE macro definitions, since gcrypt.h does
708         already contain such a macro named _GCRY_GCC_ATTR_PURE, which we
709         can use here as well.
710
711         Likewise for GCC_ATTR_MALLOC and _GCRY_GCC_ATTR_MALLOC.
712
713         * stdmem.h: Use _GCRY_GCC_ATTR_MALLOC instead of GCC_ATTR_MALLOC.
714         * secmem.h: Likewise.
715
716 2005-10-09  Moritz Schulte  <moritz@g10code.com>
717
718         * global.c (gcry_control): Call global_init() after passing thread
719         cbs to ath.  global_init() MUST to be called AFTER passing the cbs
720         to ath and BEFORE calling library functions, which make use of
721         ath.  This change combines cbs installing with ath initialization
722         and thus removes the need to call other library initialization
723         functions inbetween like e.g. gcry_check_version().
724
725 2005-10-01  Moritz Schulte  <moritz@g10code.com>
726
727         * ath.c: Assign copyright to FSF.
728         * ath.h: Likewise.
729
730 2005-06-25  Moritz Schulte  <moritz@g10code.com>
731
732         * Makefile.am (pkgconfigdir, pkgconfig_DATA): Removed variables.
733         * libgcrypt.pc.in: Removed file - we do not want to support a
734         second, foreign configuration system.
735
736 2005-06-17  Moritz Schulte  <moritz@g10code.com>
737
738         * global.c (gcry_xstrdup): Removed superfluous strcpy call.
739
740 2005-04-22  Moritz Schulte  <moritz@g10code.com>
741
742         * Makefile.am (pkgconfigdir, pkgconfig_DATA): New; support for
743         pkgconfig provided by Albert Chin.
744         * libgcrypt.pc.in (Cflags): New file.
745
746 2005-04-16  Moritz Schulte  <moritz@g10code.com>
747
748         * g10lib.h (_gcry_ac_init): Declare.
749         * global.c (global_init): Call _gcry_ac_init; don't forget to set
750         err.
751
752 2005-04-14  Werner Koch  <wk@g10code.com>
753
754         * sexp.c (whitespacep): New.
755         (sexp_sscan): Replaced isdigit and isspace by whitespacep and
756         digitp.
757
758 2005-04-11  Moritz Schulte  <moritz@g10code.com>
759
760         * gcrypt.h (gcry_md_algos): Added: GCRY_MD_WHIRLPOOL.
761         * cipher.h (_gcry_digest_spec_whirlpool): Declare.
762
763 2005-03-30  Moritz Schulte  <moritz@g10code.com>
764
765         * libgcrypt.vers: Added: gcry_ac_io_init, gry_ac_io_init_va.
766
767         * gcrypt.h (gcry_ac_data_read_cb_t, gcry_ac_data_write_cb_t,
768         gcry_ac_io_mode_t, gcry_ac_io_type_t, gcry_ac_io_t): New types.
769         (gcry_ac_io_init_va): Declare function.
770         (gcry_ac_data_encode, gcry_ac_data_decode,
771         gcry_ac_data_encrypt_scheme, gcry_ac_data_decrypt_scheme,
772         gcry_ac_data_sign_scheme, gcry_ac_data_verify_scheme): Use
773         gcry_ac_io_type_t objects instead of memory strings directly.
774
775 2005-03-03  Moritz Schulte  <moritz@g10code.com>
776
777         * libgcrypt.vers: Added: gcry_ac_data_to_sexp() and
778         gcry_ac_data_from_sexp().
779
780 2005-02-22  Werner Koch  <wk@g10code.com>
781
782         * global.c (_gcry_malloc): Make sure ERRNO is set if we return
783         NULL.  Remove unneeded initialization of M to allow the compiler
784         to catch errors.
785         (gcry_realloc): Make sure ERRNO is set if we return NULL>
786
787 2005-02-13  Moritz Schulte  <moritz@g10code.com>
788
789         * gcrypt.h: Declare new functions: gcry_ac_data_encrypt_scheme,
790         gcry_ac_data_decrypt_scheme, gcry_ac_data_sign_scheme,
791         gcry_ac_data_verify_scheme, gcry_ac_data_encode,
792         gcry_ac_data_decode, gcry_ac_data_to_sexp, gcry_ac_data_from_sexp.
793         New types: gcry_ac_emsa_pkcs_v1_5_t, gcry_ac_ssa_pkcs_v1_5_t,
794         gcry_md_algo_t.
795         New enumeration lists: gcry_ac_scheme_t, gcry_ac_em_t.
796         * libgcrypt.vers: Added new ac functions.
797         * g10lib.h: Declare function: _gcry_pk_get_elements.
798         * mpi.h (mpi_get_ui): New macro.
799         Declare function: _gcry_mpi_get_ui.
800
801 2004-11-09  Werner Koch  <wk@g10code.com>
802
803         * gcrypt.h: Removed 3 trailing commas from enums.  Noted by Heiko
804         Stamer.
805
806 2004-09-21  Werner Koch  <wk@g10code.de>
807
808         * sexp.c (sexp_sscan): Removed C++ style comments.  Noted by Yoann
809         Vandoorselaere.
810
811 2004-08-23  Moritz Schulte  <moritz@g10code.com>
812
813         * global.c: Do not include <assert.h>. 
814         * sexp.c: Likewise.
815         * module.c: Likewise.
816         * misc.c: Likewise.
817
818 2004-08-18  Moritz Schulte  <moritz@g10code.com>
819
820         * secmem.c (_gcry_secmem_init): Try to lock pool into core not
821         only when running with root privileges.
822
823 2004-08-16  Werner Koch  <wk@g10code.de>
824
825         * secmem.h (_gcry_secmem_set_flags,_gcry_secmem_get_flags):
826         Removed __pure__.
827         (GCRY_SECMEM_FLAG_NO_WARNING): Put macro value into parens.
828
829         * secmem.c (_gcry_secmem_init): Defer printing of the warning.
830
831 2004-08-10  Moritz Schulte  <moritz@g10code.com>
832
833         * gcrypt.h: Include <sys/time.h>, thanks to Simon Josefsson.
834
835 2004-05-07  Werner Koch  <wk@gnupg.org>
836
837         * gcrypt.h: Added GCRYCTL_FAST_POLL.
838         (gcry_fast_random_poll): New.
839         * global.c (gcry_control) <INITIALIZATION_FINISHED>: Do only basic
840         random subsystem init.
841         (gcry_control) <FAST_POLL>: New.
842
843 2004-04-22  Marcus Brinkmann  <marcus@g10code.de>
844
845         * libgcrypt.m4: Quote first argument to AC_DEFUN.
846
847 2004-04-15  Werner Koch  <wk@gnupg.org>
848
849         * secmem.c (_gcry_secmem_malloc_internal): Removed old extra info
850         error output.
851         (_gcry_secmem_term): Use wipememory2 here.
852
853         * misc.c (_gcry_burn_stack): Use wipememory to avoid optimizations.
854
855         * string.c: Removed.  Was never used.
856         * global.c (gcry_strdup): Replaced by the version from string.c
857         (gcry_xstrdup): Rewritten.
858         * gcrypt.h: Removed duplicate prototype for gcry_strdup.
859
860 2004-03-29  Werner Koch  <wk@gnupg.org>
861
862         * secmem.c (_gcry_secmem_realloc): Fixed double unlock; bug
863         manifested itself due to the more rigorous checking in the changed
864         ath.h
865
866         * libgcrypt-config.in (Options): Ignore the obsolete --threads
867         option for now.
868
869 2004-03-17  Marcus Brinkmann  <marcus@g10code.de>
870
871         * libgcrypt-config.in (includedir, libdir): Quote'em.  Use
872         $gpg_error_cflags and $gpg_error_libs.  Fix construction of
873         $includes.
874
875 2004-03-14  Marcus Brinkmann  <marcus@g10code.de>
876
877         * libgcrypt-config.in (includedir, libdir): New variables.  For
878         --cflags, don't test $cflags.  Also check against /include for the
879         GNU/Hurd.  Don't overwrite but extend $cflags_final.  Likewise for
880         --libs.
881
882 2004-03-10  Marcus Brinkmann  <marcus@g10code.de>
883
884         * Makefile.am (ltlib_libgcrypt_pthread, ltlib_libgcrypt_pth): Removed.
885         (lib_LTLIBRARIES): Remove those variables from here.
886         (libgcrypt_pthread_la_SOURCES, libgcrypt_pthread_la_LDFLAGS,
887         (libgcrypt_pthread_la_DEPENDENCIES, libgcrypt_pthread_la_LIBADD,
888         (libgcrypt_pth_la_SOURCES, libgcrypt_pth_la_LDFLAGS,
889         (libgcrypt_pth_la_DEPENDENCIES, libgcrypt_pth_la_LIBADD,
890         (noinst_LTLIBRARIES): Removed.
891         (libgcrypt_real_la_SOURCES): Merge with ...
892         (libgcrypt_la_SOURCES): ... likewise.
893         (libgcrypt_real_la_DEPENDENCIES): Merge with ...
894         (libgcrypt_la_DEPENDENCIES): ... this.
895         (libgcrypt_real_la_LIBADD): Merge with ...
896         (libgcrypt_la_LIBADD): ... this.
897         * libgcrypt-config.in (libs_pthread, libs_pth, cflags_pth) 
898         (cflags_pthread, thread_module, thread_modules): Removed.
899         (Options): Remove --thread option from help output.  If the option
900         is specified, output an error and exit.
901         For --cflags and --libs option, remove pth and pthread from output.
902         * gcrypt.h: Include <sys/types.h> and <sys/socket.h>.
903         (enum gcry_ctl_cmds): Add GCRYCTL_SET_THREAD_CBS.
904         (gcry_thread_cbs): New struct.
905         * global.c (gcry_control): Implement GCRYCTL_SET_THREAD_CBS.
906         (global_init): Don't call ath_init here.
907         * ath.h: Rewritten.
908         * ath.c: Rewritten.
909
910 2004-03-06  Werner Koch  <wk@gnupg.org>
911
912         * libgcrypt-config.in: s/--soname-number/--api-version/
913         * libgcrypt.m4: Changed test for API version.
914
915 2004-03-05  Werner Koch  <wk@gnupg.org>
916
917         * libgcrypt.m4: Optionally check the SONAME number.
918
919         * libgcrypt-config.in: Add option --soname-number
920
921 2004-03-01  Marcus Brinkmann  <marcus@g10code.de>
922
923         * Makefile.am (libgcrypt_la_SOURCES): Add ath.c.
924         * ath.c (ath_init): Add missing function.
925
926         * Makefile.am (ath_pth_src): Removed.
927         (ath_pthread_src): Removed.
928         (libgcrypt_la_SOURCES): Remove ath-compat, $(ath_pth_src) and
929         $(ath_pthread_src).
930         * ath-compat.c, ath-pth-compat.c, ath-pthread-compat.c: Files
931         removed.
932         
933 2004-02-20  Werner Koch  <wk@gnupg.org>
934
935         * gcrypt.h (GCRY_PRIME_CHECK_AT_GOT_PRIME)
936         (GCRY_PRIME_CHECK_AT_FINISH),
937         (GCRY_PRIME_CHECK_AT_MAYBE_PRIME): New.
938
939 2004-02-18  Werner Koch  <wk@gnupg.org>
940
941         * libgcrypt-config.in: Ignore setting of --prefix.
942
943 2004-02-13  Werner Koch  <wk@gnupg.org>
944
945         * gcrypt.h: Added GCRY_CIPHER_RFC2268_128, alsthough not yet
946         supported.
947
948 2004-02-06  Werner Koch  <wk@gnupg.org>
949
950         * gcrypt.h: Added GCRY_CIPHER_RFC2268_40.
951
952 2004-02-03  Werner Koch  <wk@gnupg.org>
953
954         * secmem.c (_gcry_secmem_init): Do not print the "not locked into
955         core warning" if the NO_WARNING flag has been set.
956
957         * sexp.c (sexp_sscan): Allocate result in secure memory if BUFFER
958         is in secure memory. Switch to secure memory for the a secure %b
959         format item. Extra paranoid wipe on error.
960         (gcry_sexp_release): Added paranoid wiping for securely allocated
961         S-expressions.
962
963 2004-01-25  Moritz Schulte  <mo@g10code.com>
964
965         * ath.h: Include <config.h>.
966
967 2004-01-12  Moritz Schulte  <mo@g10code.com>
968
969         * gcrypt.h: Adjusted declarations of: gcry_ac_data_set,
970         gcry_ac_data_get_name, gcry_ac_data_get_index,
971         gcry_ac_key_pair_generate, gcry_ac_key_test,
972         gcry_ac_key_get_nbits, gcry_ac_key_get_grip.
973
974         * gcrypt.h (GCRY_AC_FLAG_DATA_NO_BLINDING): Removed symbol.
975         (GCRY_AC_FLAG_DEALLOC, GCRY_AC_FLAG_COPY) 
976         (GCRY_AC_FLAG_NO_BLINDING): New symbols.
977
978         * global.c (gcry_strdup): Removed function.
979         * string.c: New file.
980         * Makefile.am (libgcrypt_real_la_SOURCES): Added: string.c.
981         * string.c (gcry_strdup): New function.
982         * gcrypt.h (gcry_strdup): Declare.
983
984 2003-12-19  Werner Koch  <wk@gnupg.org>
985
986         * g10lib.h (wipememory, wipememory2): New; taken from gnupg.
987
988 2003-11-14  Werner Koch  <wk@gnupg.org>
989
990         * global.c (gcry_strdup): Don't copy the string after a malloc
991         error.
992
993 2003-11-11  Werner Koch  <wk@gnupg.org>
994
995         * sexp.c (sexp_sscan): Implemented "%b" format specifier.
996
997 2003-11-11  Moritz Schulte  <mo@g10code.com>
998
999         * libgcrypt.m4: Do not set prefix when calling libgcrypt-config.
1000         Thanks to Nikos Mavroyanopoulos.
1001
1002 2003-11-08  Moritz Schulte  <mo@g10code.com>
1003
1004         * cipher.h (small_prime_numbers): Removed declaration.
1005         (PUBKEY_FLAG_NO_BLINDING): Put braces around shift.
1006
1007 2003-11-04  Werner Koch  <wk@gnupg.org>
1008
1009         * cipher.h (_gcry_sha1_has_buffer): New.
1010
1011         * gcrypt.h (gcry_create_nonce): New.
1012
1013 2003-10-31  Werner Koch  <wk@gnupg.org>
1014
1015         * libgcrypt.vers (_gcry_generate_elg_prime): Removed this symbol;
1016         gnutls does not need it anymore.
1017
1018         * secmem.c (mb_get_new): s/pool/block/ due to global pool.
1019
1020         * misc.c (gcry_set_log_handler): s/logf/f/ to avoid shadowing
1021         warning against a builtin.
1022
1023         * ath-pth-compat.c: cast pth_connect to get rid of the const
1024         prototype.
1025
1026 2003-10-27  Werner Koch  <wk@gnupg.org>
1027
1028         * ath.h (ATH_MUTEX_INITIALIZER): Removed spurious semicolon.
1029
1030 2003-10-27  Moritz Schulte  <mo@g10code.com>
1031
1032         * libgcrypt-config.in: Include libs/cflags of libgpg-error.
1033
1034         * sexp.c (sexp_sscan): Cleaned up, deallocate scanned sexp on
1035         error.
1036
1037         * module.c (MODULE_ID_MIN): New symbol, use it.
1038
1039 2003-10-27  Werner Koch  <wk@gnupg.org>
1040
1041         * gcrypt.h (gcry_pk_testkey): Doc fix.
1042
1043 2003-09-29  Moritz Schulte  <mo@g10code.com>
1044
1045         * libgcrypt-config.in: Fix --algorithms option.
1046
1047 2003-10-23  Werner Koch  <wk@gnupg.org>
1048
1049         * gcrypt.h (gcry_err_code): Use GPG_ERR_INLINE instead of
1050         __inline__.
1051
1052         * secmem.c (lock_pool): Don't print the warning for certain
1053         systems, handle ENOMEM.
1054
1055 2003-10-21  Werner Koch  <wk@gnupg.org>
1056
1057         * secmem.c (_gcry_secmem_dump_stats): Fixed format sepcifier for a
1058         size_t.  Reported by Stephane Corthesy.
1059
1060 2003-10-10  Werner Koch  <wk@gnupg.org>
1061
1062         * global.c (_gcry_malloc): Handle the no_secure_memory option.
1063
1064         * gcrypt.h (gcry_prime_group_generator): New.
1065         (gcry_prime_release_factors): New.
1066
1067 2003-10-07  Werner Koch  <wk@gnupg.org>
1068
1069         * sexp.c (sexp_sscan): Check that parenthesis are matching.
1070
1071 2003-09-28  Moritz Schulte  <mo@g10code.com>
1072
1073         * g10lib.h: Declare: _gcry_malloc.
1074         (GCRY_ALLOC_FLAG_SECURE): New symbol.
1075
1076         * global.c (_gcry_malloc): New function...
1077         (gcry_malloc): ... use it.
1078         (gcry_malloc_secure): Likewise.
1079
1080         * ath.c: Change License to LGPL.
1081         * ath-pthread-compat.c: Likewise.
1082         * ath-pthread.c: Likewise.
1083         * ath-pth-compat.c: Likewise.
1084         * ath-pth.c: Likewise.
1085         * ath.h: Likewise.
1086         * ath-compat.c: Likewise.
1087
1088         * secmem.c (_gcry_secmem_realloc): Do not forget to release secmem
1089         lock.  Thanks to low halo for triggering this bug.
1090
1091 2003-09-04  Werner Koch  <wk@gnupg.org>
1092
1093         * gcrypt.h (_GCRY_ERR_SOURCE_DEFAULT): Removed cruft.
1094         (gcry_prime_check_func_t): Renamed arg for clarity.
1095
1096 2003-09-02  Moritz Schulte  <mo@g10code.com>
1097
1098         * gcrypt.h (GCRY_PRIME_FLAG_SPECIAL_FACTOR): New symbol.
1099
1100 2003-09-01  Moritz Schulte  <mo@g10code.com>
1101
1102         * gcrypt.h (gcry_random_level_t): New type.
1103         (gcry_prime_check_func_t): Likewise.
1104         (GCRY_PRIME_FLAG_SECRET): New symbol.
1105         (gcry_prime_generate, gcry_prime_check): Declare functions.
1106
1107 2003-08-28  Werner Koch  <wk@gnupg.org>
1108
1109         * Makefile.am (libgcrypt_pth_la_LDFLAGS): Removed PTH_CFLAGS cruft.
1110
1111 2003-08-27  Moritz Schulte  <mo@g10code.com>
1112
1113         * global.c (gcry_control): Remove call to ath_deinit.
1114
1115         * Makefile.am (libgcrypt_real_la_DEPENDENCIES): Fixed.
1116         (libgcrypt_real_la_LIBADD): Fixed.
1117         Removed unecessary variables.
1118
1119         * libgcrypt-config.in: Adjusted script for new thread handling.
1120
1121         * Makefile.am: New version, based on GPGMEs Makefile.am.
1122
1123         * ath.c, ath-compat.c, ath.h, ath-pth.c, ath-pth-compat.c,
1124         ath-pthread.c, ath-pthread-compat.c: New files, merged from GPGME.
1125         * ath.c, ath.h, ath-pthread.c, ath-pth.c: Removed files.
1126
1127 2003-08-08  Moritz Schulte  <moritz@g10code.com>
1128
1129         * global.c (gcry_realloc): Remove FIXME about `clearing out
1130         realloced memory', since _gcry_secmem_realloc takes care of
1131         overwriting old memory.
1132
1133 2003-08-07  Werner Koch  <wk@gnupg.org>
1134
1135         * module.c (_gcry_module_release): Don't act if module is NULL.
1136
1137 2003-07-30  Moritz Schulte  <moritz@g10code.com>
1138
1139         * gcrypt.h (enum gcry_ac_id): Added: GCRY_AC_ELG_E.
1140         Reverted change: use gcry_md_flags enumeration list instead of
1141         defines.
1142
1143 2003-07-29  Werner Koch  <wk@gnupg.org>
1144
1145         * global.c (gcry_control): Add GCRYCTL_SET_RANDOM_SEED_FILE and
1146         GCRYCTL_UPDATE_RANDOM_SEED_FILE.
1147         * gcrypt.h: Ditto.  Renamed index to idx, so avoid warning
1148         related to the old index function.
1149
1150 2003-07-28  Moritz Schulte  <moritz@g10code.com>
1151
1152         * global.c (gcry_err_code_from_errno, gcry_err_code_to_errno)
1153         (gcry_err_make_from_errno, gcry_error_from_errno): New functions.
1154
1155         * gcrypt.h: Declared: gcry_err_code_from_errno,
1156         gcry_err_code_to_errno, gcry_err_make_from_errno,
1157         gcry_error_from_errno.
1158
1159         * Makefile.am (include_HEADERS): Added: gcrypt-module.h.
1160
1161         * gcrypt.h: Include <gcrypt-module.h>.
1162
1163         * gcrypt-module.h: New file.
1164
1165 2003-07-27  Werner Koch  <wk@gnupg.org>
1166
1167         * gcrypt.h (gcry_mpi_scan, gcry_mpi_print): API change.
1168         (gcry_mpi_dump): New.
1169
1170 2003-07-21  Moritz Schulte  <moritz@g10code.com>
1171
1172         * gcrypt.h: Declared: gcry_ac_key_data_get.
1173         (gcry_pk_spec): Renamed member `sexp_names' into `aliases'.
1174
1175 2003-07-20  Moritz Schulte  <moritz@g10code.com>
1176
1177         * gcrypt.h (gcry_md_oid_spec_t): New type.
1178         (gcry_md_spec): New member: oids.
1179
1180 2003-07-19  Moritz Schulte  <moritz@g10code.com>
1181
1182         * gcrypt.h (gcry_cipher_oid_spec_t): New type.
1183         (gcry_cipher_spec): New member: oids;
1184
1185 2003-07-18  Werner Koch  <wk@gnupg.org>
1186
1187         * gcrypt.h (gcry_mpi_set_opaque): Add a warning comment.
1188
1189 2003-07-15  Moritz Schulte  <moritz@g10code.com>
1190
1191         * secmem.c (compress_pool): Remove function, since unused blocks
1192         are automatically concatenad.
1193
1194         * gcrypt.h: Bumped version number up to 1.1.42-cvs.
1195
1196 2003-07-14  Moritz Schulte  <moritz@g10code.com>
1197
1198         * gcrypt.h (gcry_cipher_spec): New member: aliases.
1199
1200         * Makefile.am (noinst_PROGRAMS, testapi_SOURCES, testapai_LDADD,
1201         benchmark_SOURCES, benchmark_LDADD): Removed.
1202
1203         * benchmark.c, testapi.c: Removed files.
1204
1205         * mpi.h: Removed disabled typedef.
1206         * g10lib.h: Likewise.
1207
1208         * benchmark.c, g10lib.h, gcrypt.h, global.c, module.c, sexp.c:
1209         Used gcry_err* wrappers for libgpg-error symbols.
1210
1211 2003-07-12  Moritz Schulte  <moritz@g10code.com>
1212
1213         * global.c: Likewise.
1214
1215         * gcrypt.h: New type: gcry_error_t, gcry_err_code_t and
1216         gcry_err_source_t.
1217         (gcry_err_make, gcry_error, gcry_err_code, gcry_err_source): New
1218         functions.
1219
1220         * global.c (gcry_strerror): New function.
1221         (gcry_strsource): New function.
1222
1223         * gcrypt.h: New symbol: GCRY_CIPHER_TWOFISH128.
1224
1225 2003-07-09  Moritz Schulte  <moritz@g10code.com>
1226
1227         * gcrypt.h (enum gcry_md_flags): Removed, used define instead,
1228         since that is more common than an enumeration list when it comes
1229         to flags that can be bitwise ORed.
1230         
1231 2003-07-08  Moritz Schulte  <moritz@g10code.com>
1232
1233         * global.c: Use new types for handlers.
1234
1235         * gcrypt.h: Declare: gcry_ac_data_copy.
1236
1237 2003-07-07  Moritz Schulte  <moritz@g10code.com>
1238
1239         * sexp.c (gcry_sexp_build_array): Use dummy argument pointer.
1240         Thanks to Simon Josefsson <jas@extunde.com>.
1241
1242         * gcrypt.h: Declare: gcry_cipher_list, gcry_pk_list, gcry_md_list.
1243         
1244 2003-07-05  Moritz Schulte  <moritz@g10code.com>
1245
1246         * gcrypt.h: Declare: gcry_cipher_register, gcry_cipher_unregister,
1247         gcry_md_register, gcry_md_unregister, gcry_pk_register,
1248         gcry_pk_unregister.
1249         (gcry_cipher_spec): Removed member: algorithm.
1250         (gcry_pk_spec): Likewise.
1251         (gcry_md_spec): Likewise.
1252         Adjusted declarations: gcry_cipher_register, gcry_pk_register,
1253         gcry_md_register.
1254
1255         * module.c: Replaced all occurences of `id' with `mod_id', since
1256         `id' is a keyword in obj-c.
1257
1258         * gcrypt.h (gcry_cipher_spec): Renamed member `id' to `algorithm'.
1259         (gcry_pk_spec): Likewise.
1260         (gcry_md_spec): Likewise.
1261
1262         * cipher.h: Removed types: gcry_pubkey_generate_t,
1263         gcry_pubkey_check_secret_key_t, gcry_pubkey_encrypt_t,
1264         gcry_pubkey_decrypt_t, gcry_pubkey_sign_t, gcry_pubkey_verify_t,
1265         gcry_pubkey_get_nbits_t, gcry_pk_spec_t, gcry_digest_init_t,
1266         gcry_digest_write_t, gcry_digest_final_t, gcry_digest_read_t,
1267         gcry_digest_spec_t, gcry_cipher_setkey_t, gcry_cipher_encrypt_t,
1268         gcry_cipher_decrypt_t, gcry_cipher_stencrypt_t,
1269         gcry_cipher_stdecrypt_t, gcry_cipher_spec_t.
1270
1271         * gcrypt.h: New types: gcry_pk_generate_t,
1272         gcry_pk_check_secret_key_t, gcry_pk_encrypt_t, gcry_pk_decrypt_t,
1273         gcry_pk_sign_t, gcry_pk_verify_t, gcry_pk_get_nbits_t,
1274         gcry_pk_spec_t, gcry_md_init_t, gcry_md_write_t, gcry_md_final_t,
1275         gcry_md_read_t, gcry_md_spec_t, gcry_cipher_setkey_t,
1276         gcry_cipher_encrypt_t, gcry_cipher_decrypt_t,
1277         gcry_cipher_stencrypt_t, gcry_cipher_stdecrypt_t,
1278         gcry_cipher_spec_t, gcry_module_t.
1279
1280 2003-07-04  Moritz Schulte  <moritz@g10code.com>
1281
1282         * module.c (_gcry_module_list): New function.
1283
1284 2003-07-02  Moritz Schulte  <moritz@g10code.com>
1285
1286         * module.c (_gcry_module_lookup): Fixed typo.
1287
1288         * gcrypt.h: Added all definitions and declarations necessary for
1289         the new ac interface.
1290
1291 2003-06-30  Moritz Schulte  <moritz@g10code.com>
1292
1293         * g10lib.h: Added declarations: _gcry_pk_module_lookup,
1294         _gcry_pk_module_release.
1295
1296 2003-06-18  Werner Koch  <wk@gnupg.org>
1297
1298         * benchmark.c (cipher_bench): Adjusted for new API of get_blklen
1299         and get_keylen.
1300
1301         * gcrypt.h (gcry_cipher_get_algo_blklen)
1302         (gcry_cipher_get_algo_keylen): Replaced macro by funcion.
1303
1304 2003-06-18  Moritz Schulte  <moritz@g10code.com>
1305
1306         * cipher.h: Renamed types GcryDigestSpec, GcryCipherSpec and
1307         GcryPubkeySpec into: gcry_digest_spec_t, gcry_cipher_spec_t and
1308         gcry_pubkey_spec_t.
1309         (gcry_pubkey_spec): Defined member `id' as unsigned.
1310         (gcry_digest_spec): Likewise.
1311         (gcry_cipher_spec): Likewise.
1312
1313         * module.c (_gcry_module_id_new): New function.
1314         (_gcry_module_add): Generate a new ID via _gcry_module_id_new in
1315         case `id' is zero.
1316
1317         * g10lib.h, module.c: Replace old type GcryModule with newer one:
1318         gcry_module_t.
1319
1320         * module.c (_gcry_module_add): Added argument `id', use it.
1321
1322         * g10lib.h: Added declaration: _gcry_module_lookup_id.
1323         (_gcry_module_add): Added argument `id'.
1324
1325         * module.c (_gcry_module_lookup_id): New function.
1326
1327         * g10lib.h (struct gcry_module): New member: id.
1328
1329         * gcrypt.h: New type: gcry_handler_progress_t,
1330         gcry_handler_alloc_t, gcry_haandler_secure_check_t,
1331         gcry_handler_realloc_t, gcry_handler_free_t,
1332         gcry_handler_no_mem_t, gcry_handler_error_t, gcry_handler_log_t.
1333         Use new types.
1334
1335         * cipher.h: Include <gcrypt.h>.
1336         New types: gcry_pk_generate_t, gcry_pk_check_secret_key_t,
1337         gcry_pk_encrypt_t, gcry_pk_decrypt_t, gcry_pk_sign_t,
1338         gcry_pk_verify_t, gcry_pk_get_nbits_t, gcry_md_init_t,
1339         gcry_md_write_t, gcry_md_final_t, gcry_md_read_t,
1340         gcry_cipher_setkey_t, gcry_cipher_encrypt_t,
1341         gcry_cipher_decrypt_t, gcry_cipher_stencrypt_t,
1342         gcry_cipher_stdecrypt_t.
1343         Use new types.
1344
1345 2003-06-17  Moritz Schulte  <moritz@g10code.com>
1346
1347         * Makefile.am (AM_CFLAGS): Added: @GPG_ERROR_CFLAGS@.
1348
1349 2003-06-16  Moritz Schulte  <moritz@g10code.com>
1350
1351         * g10lib.h: Replace last occurences of old type names with newer
1352         names (i.e. replace MPI with gcry_mpi_t).
1353         * mpi.h: Likewise.
1354         * sexp.c: Likewise.
1355
1356 2003-06-15  Moritz Schulte  <moritz@g10code.com>
1357
1358         * testapi.c (test_genkey): Use gpg_strerror instead of
1359         gcry_strerror.
1360
1361         * global.c (gcry_control): Fixed typo.
1362
1363         * misc.c (_gcry_fatal_error): Use gpg_strerror instead of
1364         gcry_strerror.
1365
1366         * types.h (STRLIST): Removed type since it is not used.
1367
1368 2003-06-11  Moritz Schulte  <moritz@g10code.com>
1369
1370         * global.c (global_init): Call: _gcry_cipher_init, _gcry_md_init,
1371         _gcry_pk_init.
1372
1373         * g10lib.h: Declare: _gcry_cipher_init, _gcry_md_init,
1374         _gcry_pk_init.
1375         
1376         * global.c (gcry_strerror): Remove compatibility code.
1377
1378         * Makefile.am: Remove support libgpg-error special handling.
1379         (AM_CPPFLAGS): Add @GPG_ERROR_CFLAGS@
1380
1381         * gcrypt.h: Likewise.
1382
1383 2003-06-13  Werner Koch  <wk@gnupg.org>
1384
1385         * gcrypt.h (gcry_md_get_algo): Reverted to old API.  This is a
1386         convenience function anyway and error checking is not approriate.
1387         (gcry_md_is_enabled): New.
1388         (gcry_md_is_secure): Replaced macro by function and reverted to old
1389         API.
1390
1391 2003-06-11  Werner Koch  <wk@gnupg.org>
1392
1393         * gcrypt.h (GCRYERR): Define _GCRY_ERR_SOURCE_DEFAULT instead of
1394         GPG_ERR_SOURCE_DEFAULT, so that libgpg-error still works despite
1395         the use of the old gcrypt error codes.
1396         (gcry_md_copy): Swapped arguments.
1397         
1398 2003-06-09  Moritz Schulte  <moritz@g10code.com>
1399
1400         * Makefile.am: Support for libgpg-error.
1401
1402 2003-06-08  Moritz Schulte  <moritz@g10code.com>
1403
1404         * sexp.c (gcry_sexp_create): Expect sane error values from
1405         gcry_sexp_canon_len instead of the `historical' values.
1406
1407 2003-06-07  Moritz Schulte  <moritz@g10code.com>
1408
1409         * ath.c, ath.c, ath-pth.c, ath-pthread.c, benchmark.c, cipher.h,
1410         g10lib.h, gcrypt.h, global.c, misc.c, missing-string.c, module.c,
1411         mpi.h, secmem.c, secmem.h, sexp.c, stdmem.c, stdmem.h, testapi.c,
1412         types.h: Edited all preprocessor instructions to remove whitespace
1413         before the '#'.  This is not required by C89, but there are some
1414         compilers out there that don't like it.  Replaced any occurence of
1415         the now deprecated type names with the new ones.
1416         
1417         * gcrypt.h: Re-organized checking for gcc features; New macro:
1418         _GCRY_GCC_ATTR_DEPRECATED.
1419         Include copy of libgpg-error's gpg-error.h in order to make it
1420         easy to build libgcrypt without needing libgpg-error.h.
1421
1422         (GCRY_MPI, GcryMPI, GCRY_SEXP, GcrySexp, GCRY_CIPHER_HD,
1423         GcryCipherHd, GCRY_MD_HD, GcryMDHd): Declared deprecated.
1424         (gcry_mpi_t, gcry_sexp_t, gcry_cipher_hd_t, gcry_md_hd_t): New
1425         types.
1426
1427 2003-06-04  Moritz Schulte  <moritz@g10code.com>
1428
1429         * sexp.c (sexp_sscan): New argument: arg_list, adjusted all
1430         callers.
1431         (ARG_NEXT): New macro.
1432         (sexp_sscan): Use ARG_NEXT for receiving format string arguments.
1433         (gcry_sexp_build_array): New function.
1434
1435 2003-06-02  Moritz Schulte  <moritz@g10code.com>
1436
1437         * gcrypt.h: Added some comments describing the gcry_sexp_*
1438         functions.
1439         Include <gpg-error.h> instead of <gpg/error.h>.
1440
1441 2003-06-01  Moritz Schulte  <moritz@g10code.com>
1442
1443         * sexp.c (OLDPARSECODE): Removed macro...
1444         (gcry_sexp_canon_len): ... and do not use it.
1445
1446         * gcrypt.h (gcry_errno): Removed declaration.
1447
1448         * g10lib.h (string_to_pubkey_algo, pubkey_algo_to_string,
1449         pubkey_nbits): Removed declarations for non-existing functions.
1450
1451 2003-05-31  Moritz Schulte  <moritz@g10code.com>
1452
1453         * cipher.h (is_RSA, is_ELGAMAL): Removed macros.
1454
1455         * g10lib.h (set_lasterr): Removed macro.
1456         (_gcry_set_lasterr): Removed declaration.
1457
1458         * gcrypt.h: Changed declarations for: gcry_pk_algo_info,
1459         gcry_md_open, gcry_md_copy, gcry_md_algo_info, gcry_md_info,
1460         gcry_md_get_algo, gcry_random_add_bytes.
1461         
1462         (gcry_md_is_secure): Adjust macro for new API.
1463
1464 2003-05-29  Moritz Schulte  <moritz@g10code.com>
1465
1466         * gcrypt.h: Changed declarations for: gcry_cipher_open,
1467         gcry_cipher_info, gcry_cipher_algo_info.
1468         (gcry_cipher_get_algo_keylen): Adjuster for new
1469         gcry_cipher_algo_info interface.
1470         (gcry_cipher_get_algo_blklen): Likewise.
1471
1472         * global.c (gcry_errno): Removed function.
1473         (gcry_strerror): Do not use gcry_errno.
1474         (_gcry_set_lasterr): Removed function.
1475         (last_ec): Removed variable.
1476
1477 2003-05-27  Moritz Schulte  <moritz@g10code.com>
1478
1479         * gcrypt.h (enum gcry_cipher_algos): Make Serpent IDs do not
1480         conflict with OpenPGP.  Reported by Timo Schulz.
1481
1482         * global.c (gcry_control): Fixed name of enum list.
1483
1484 2003-05-25  Moritz Schulte  <moritz@g10code.com>
1485
1486         * cipher.h (gcry_cipher_spec): Adjust return type of `setkey' for
1487         libgpg-error.
1488         (gcry_pubkey_spec): Adjust return type of `generate',
1489         `check_secret_key', `encrypt', `decrypt', `sign' and `verify' for
1490         libgpg-error.
1491
1492         * sexp.c (gcry_sexp_canon_len): Adjusted for libgpg-error.
1493         (gcry_sexp_create): Likewise.
1494         (gcry_sexp_new): Likewise.
1495         (sexp_sscan): Likewise.
1496         (gcry_sexp_build): Likewise.
1497         (gcry_sexp_sscan): Likewise.
1498
1499         * module.c (_gcry_module_add): Likewise.
1500
1501         * global.c (last_ec): Change type to gpg_error_t.
1502         (gcry_control): Adjust for libgpg-error.
1503         (gcry_errno): Likewise.
1504         (gcry_strerror): Likewise.
1505         (_gcry_set_lasterr): Likewise.
1506         (gcry_xmalloc): Likewise.
1507         (gcry_xrealloc): Likewise.
1508
1509 2003-05-22  Moritz Schulte  <moritz@g10code.com>
1510
1511         * types.h: Merged code from GnuPG regarding U64_C.
1512
1513         * missing-string.c (strsep): Removed function.
1514
1515         * g10lib.h: Removed declarations: strsep, strlwr.
1516
1517         * secmem.c (secmem_lock): New variable.
1518         (SECMEM_LOCK, SECMEM_UNLOCK): New macros.
1519         (_gcry_secmem_set_flags): Use SECMEM_LOCK and SECMEM_UNLOCK.
1520         (_gcry_secmem_get_flags): Likewise.
1521         (_gcry_secmem_init): Likewie.
1522         (_gcry_secmem_malloc): Likewise.
1523         (_gcry_secmem_free): Likewise.
1524         (_gcry_secmem_malloc): Renamed to ...
1525         (_gcry_secmem_malloc_internal): ... this.
1526         (_gcry_secmem_malloc): New function, use SECMEM_LOCK,
1527         SECMEM_UNLOCK, call _gcry_secmem_malloc_internal.
1528         (_gcry_secmem_free): Renamed to ...
1529         (_gcry_secmem_free_internal): ... this.
1530         (_gcry_secmem_free): New function, use SECMEM_LOCK, SECMEM_UNLOCK,
1531         call _gcry_secmem_free_internal.
1532         (_gcry_secmem_realloc): Use SECMEM_LOCK, SECMEM_UNLOCK, call
1533         _gcry_secmem_malloc_internal and _gcry_secmem_free_internal.
1534         (_gcry_private_is_secure): Use SECMEM_LOCK, SECMEM_UNLOCK.
1535         (_gcry_secmem_dump_stats): Likewise.
1536         (_gcry_secmem_malloc_internal): Removed unused variable:
1537         compressed.
1538         Include "ath.h".
1539
1540 2003-05-21  Moritz Schulte  <moritz@g10code.com>
1541
1542         * gcrypt.h (GCRY_CIPHER_SERPENT128, GCRY_CIPHER_SERPENT192,
1543         GCRY_CIPHER_SERPENT256): New symbols.
1544
1545 2003-05-19  Moritz Schulte  <moritz@g10code.com>
1546
1547         * gcrypt.h: Reversed changes from 2003-03-03 since they would have
1548         been an unnecessary ABI break.
1549
1550 2003-05-13  Moritz Schulte  <moritz@g10code.com>
1551
1552         * secmem.c (stats_update): New function.
1553         (BLOCK_HEAD_SIZE): New symbol.
1554         (MB_FLAG_ACTIVE): New symbol.
1555         (ADDR_TO_BLOCK, BLOCK_VALID): New macros.
1556         (mb_get_next): New function.
1557         (mb_get_prev): New function.
1558         (mb_merge): New function.
1559         (mb_get_new): New function.
1560         (unused_blocks): Removed variable.
1561         (init_pool): Initialize new memory pool.
1562         (_gcry_secmem_malloc): Use new heap management code.
1563         (_gcry_secmem_free): Likewise.
1564         (_gcry_secmem_realloc): Likewise.
1565         Renamed type MEMBLOCK to memblock_t.
1566
1567 2003-04-27  Moritz Schulte  <moritz@g10code.com>
1568
1569         * cipher.h (gcry_pubkey_spec): New member: sexp_names.
1570
1571 2003-04-23  Moritz Schulte  <moritz@g10code.com>
1572
1573         * cipher.h (gcry_pubkey_spec): Removed members: npkey, nskey,
1574         nenc, nsig.
1575         (gcry_pubkey_spec): Added members: elements_pkey, elements_skey,
1576         elements_enc, elements_sig, elements_grip.
1577
1578 2003-04-17  Moritz Schulte  <moritz@g10code.com>
1579
1580         * g10lib.h (GcryModule): New typedef.
1581
1582         * gcrypt.h (gcry_cipher_register, gcry_cipher_unregister,
1583         gcry_digest_register, gcry_digest_unregister,
1584         gcry_pubkey_register, gcry_pubkey_unregister): Function
1585         declarations removed - for now.
1586         
1587         * gcrypt.h (GcryModule): Declaration removed.
1588         * gcrypt.h (GcryPubkeySpec, GcryDigestSpec, GcryCipherSpec):
1589         Types Moved... 
1590         * cipher.h: ... here.
1591
1592 2003-04-17  Moritz Schulte  <moritz@g10code.com>
1593
1594         * cipher.h: Declare digest_spec_sha512 and digest_spec_384.
1595
1596 2003-04-16  Moritz Schulte  <moritz@g10code.com>
1597
1598         * module.c (_gcry_module_use): New function.
1599         * g10lib.h (_gcry_module_use): Declare function.
1600
1601         * libgcrypt-config.in: Support for --algorithms switch, which
1602         prints the algorithms included in the built libgcrypt.
1603
1604         * global.c (gcry_set_progress_handler): Register progress
1605         functions depending on the enabled algorithms.
1606
1607 2003-04-07  Moritz Schulte  <moritz@g10code.com>
1608
1609         * Makefile.am (libgcrypt_la_SOURCES): Added module.c
1610
1611         * module.c: New file.
1612         (_gcry_module_add): New function.
1613         (_gcry_module_drop): New function.
1614         (_gcry_module_lookup): New function.
1615         (_gcry_module_release): New function.
1616
1617         * g10lib.h (GcryModule): New types.
1618         (FLAG_MODULE_DISABLED): New symbol.
1619         Added declarations for _gcry_module_add, _gcry_module_release and
1620         _gcry_module_lookup.
1621
1622         * gcrypt.h: New types: GcryPubkeySpec, GcryDigestSpec,
1623         GcryCipherSpec.
1624         Added declarations for: gcry_cipher_register,
1625         gcry_cipher_unregister, gcry_digest_register,
1626         gcry_digest_unregister, gcry_pubkey_register and
1627         gcry_pubkey_unregister.
1628
1629         * cipher.h: Removed symbols: CIPHER_ALGO_NONE, CIPHER_ALGO_IDEA,
1630         CIPHER_ALGO_3DES, CIPHER_ALGO_CAST5, CIPHER_ALGO_BLOWFISH,
1631         CIPHER_ALGO_SAFER_SK128, CIPHER_ALGO_DES_SK, CIPHER_ALGO_TWOFISH,
1632         CIPHER_ALGO_TWOFISH_OLD, CIPHER_ALGO_DUMMY, PUBKEY_USAGE_SIG,
1633         PUBKEY_USAGE_ENC, DIGEST_ALGO_MD5, DIGEST_ALGO_SHA1,
1634         DIGEST_ALGO_RMD160, DIGEST_ALGO_TIGER, PUBKEY_ALGO_RSA,
1635         PUBKEY_ALGO_RSA_E, PUBKEY_ALGO_RSA_S, PUBKEY_ALGO_DSA,
1636         PUBKEY_ALGO_ELGAMAL, PUBKEY_ALGO_ELGAMAL_E.
1637
1638 2003-04-02  Moritz Schulte  <moritz@g10code.com>
1639
1640         * benchmark.c (md_bench): Fix error message.
1641
1642 2003-03-31  Moritz Schulte  <moritz@g10code.com>
1643
1644         * benchmark.c (cipher_bench): Added CTR mode.
1645
1646 2003-03-30  Simon Josefsson  <jas@extundo.com>
1647
1648         * gcrypt.h (enum gcry_control_cmds): Add GCRY_SET_CTR.
1649         (enum gcry_cipher_modes): Add GCRY_CIPHER_MODE_CTR.
1650         (gcry_cipher_setctr): New macro to set counter.
1651
1652 2003-03-19  Moritz Schulte  <moritz@g10code.com>
1653
1654         * cipher.h (PUBKEY_FLAG_NO_BLINDING): New symbol.
1655
1656 2003-03-22  Simon Josefsson  <jas@extundo.com>
1657
1658         * gcrypt.h: Add GCRYCTL_SET_CBC_MAC and GCRY_CIPHER_CBC_MAC.
1659
1660 2003-03-19  Werner Koch  <wk@gnupg.org>
1661
1662         * g10lib.h: Adjusted primegen.c prototypes.
1663
1664 2003-03-12  Werner Koch  <wk@gnupg.org>
1665
1666         * sexp.c (sexp_sscan): Initialize NM.  Thanks to Ian Peters for
1667         valgrinding this.
1668
1669 2003-03-06  Moritz Schulte  <mo@g10code.com>
1670
1671         * secmem.h (GCRY_SECMEM_FLAG_NO_WARNING,
1672         GCRY_SECMEM_FLAG_SUSPEND_WARNING): New symbols.
1673
1674         * global.c (gcry_control): Use
1675         GCRY_SECMEM_FLAG_{NO,SUSPEND}_WARNING, instead of hard-coded
1676         values.
1677         * secmem.c (_gcry_secmem_set_flags): Likewise.
1678         * secmem.c (_gcry_secmem_get_flags): Likewise.
1679         
1680 2003-03-03  Moritz Schulte  <moritz@g10code.com>
1681
1682         * misc.c: Removed old FIXME, since there is already a function to
1683         set the value of `verbosity_level'.
1684
1685         * gcrypt.h: Removed enumeration list: gcry_ctl_cmds.
1686         New enumeration lists: gcry_global_control_cmds,
1687         gcry_control_cmds, gcry_info_cmds, gcry_algo_info_cmds.
1688
1689 2003-03-02  Moritz Schulte  <moritz@g10code.com>
1690
1691         * gcrypt.h (gcry_cipher_reset): New macro for resetting a handle.
1692
1693 2003-02-28  Moritz Schulte  <moritz@g10code.com>
1694
1695         * secmem.c (DEFAULT_PAGESIZE): New symbol.
1696         (init_pool): Use DEFAULT_PAGESIZE.
1697
1698 2003-02-23  Moritz Schulte  <moritz@g10code.com>
1699
1700         * secmem.h: Fix typo in declaration of _gcry_secmem_term.
1701
1702         * sexp.c: Move macro definitions of `digitp', `octdigit', `alphap'
1703         and `hexdigit' ...
1704         * g10lib.h: ... here.
1705
1706         * misc.c (_gcry_burn_stack): New function (former name:
1707         burn_stack).
1708
1709         * g10lib.h (burn_stack): Declare _gcry_burn_stack().
1710
1711 2003-01-24  Werner Koch  <wk@gnupg.org>
1712
1713         * global.c (gcry_set_progress_handler): Register a random progress
1714         handler.
1715
1716 2003-01-23  Werner Koch  <wk@gnupg.org>
1717
1718         * gcrypt.h (GCRY_ENABLE_QUICK_RANDOM): New. 
1719         * global.c (gcry_control): Make use of it.
1720
1721 2003-01-21  Werner Koch  <wk@gnupg.org>
1722
1723         * gcrypt.h (gcry_random_add_bytes): Add QUALITY argument.
1724
1725 2003-01-21  Timo Schulz  <twoaday@freakmail.de>
1726
1727         * gcrypt.h (gcry_random_add_bytes): New.
1728         
1729 2003-01-20  Simon Josefsson  <jas@extundo.com>
1730
1731         * gcrypt.h (gcry_md_algos): Add GCRY_MD_CRC32,
1732         GCRY_MD_CRC32_RFC1510, GCRY_MD_CRC24_RFC2440.
1733
1734 2003-01-16  Werner Koch  <wk@gnupg.org>
1735
1736         * gcrypt.h (gcry_md_write): Changed type of 2nd argument to void*.
1737         (gcry_md_hash_buffer): Changed type of both buffers to void*.
1738         (gcry_md_setkey): Changed type of 2nd argument to void*.
1739         (gcry_md_get_asnoid): New.
1740
1741 2003-01-15  Werner Koch  <wk@gnupg.org>
1742
1743         * sexp.c (gcry_sexp_length): Fixed.  This was seriously broken.
1744
1745 2003-01-14  Werner Koch  <wk@gnupg.org>
1746
1747         * gcrypt.h (GCRYERR_INV_FLAG), global.c (gcry_strerror): New.
1748
1749 2003-01-02  Werner Koch  <wk@gnupg.org>
1750
1751         * libgcrypt.vers: Temporary export _gcry_generate_elg_prime for
1752         use by GNUTLS. 
1753
1754 2002-12-21  Werner Koch  <wk@gnupg.org>
1755
1756         * gcrypt.h: Make use of gcc's pure and malloc attributes 
1757         (gcry_md_putc): Use a helper variable to avoid multiple
1758         evaluation of H. 
1759         * g10lib.h, stdmem.h, secmem.h: Use gcc attributes pure and malloc.
1760
1761         * stdmem.c (use_m_guard): Don't default to yes.
1762
1763 2002-12-19  Werner Koch  <wk@gnupg.org>
1764
1765         * global.c (global_init): The meat was never run due to a faulty
1766         check. Thanks to Nikos for pointing this out.
1767         
1768         * global.c (gcry_control): Return 1 and not -1 for the
1769         initialization tests.
1770
1771         * libgcrypt.vers: New.
1772         * Makefile.am: Use this instead of the build symbol file.
1773
1774         * global.c (gcry_control) <initialization>: Call the random module
1775         initializer to make sure that the pool lock flag has been
1776         initialized.
1777
1778 2002-12-09  Werner Koch  <wk@gnupg.org>
1779
1780         * global.c (gcry_calloc,gcry_calloc_secure): Check for overflow.
1781         Noted by Florian Weimer. 
1782
1783 2002-11-10  Simon Josefsson  <jas@extundo.com>
1784
1785         * gcrypt.h (gcry_ctl_cmds): New GCRYCTL_SET_CBC_CTS control flag.
1786         (gcry_cipher_flags): New GCRY_CIPHER_CBC_CTS gcry_cipher_open() flag.
1787         (gcry_cipher_cts): New macro for toggling CTS.
1788
1789 2002-11-10  Werner Koch  <wk@gnupg.org>
1790
1791         * gcrypt.h (GCRY_MD_MD4): New.  We use a non OpenPGP value here. 
1792
1793 2002-09-20  Werner Koch  <wk@gnupg.org>
1794
1795         * ath.c: Include sys.time.h if sys/select.h does not exist.
1796         (ath_select, ath_waitpid): Shortcut for Windows.
1797         * ath.h: Include some Windows headers.  By Timo.
1798
1799 2002-09-18  Werner Koch  <wk@gnupg.org>
1800
1801         * ath.h: Prefix ath_deinit.
1802
1803 2002-09-17  Werner Koch  <wk@gnupg.org>
1804
1805         * benchmark.c: New.
1806         (mpi_bench, do_powm): Add a a simple test for RSA.
1807
1808         * global.c (global_init): New.  Use it instead of the setting
1809         any_init_done.  Initialize the ATH system.
1810         (gcry_check_version): Hook global_init in.  This is the suggested
1811         way to initialize the library.
1812         (_gcry_no_internal_locking): Removed.  We simply call a ath_deinit
1813         and leave it to ATH to disbale the locking.
1814
1815         * ath.c, ath.h, ath-pth.c, ath-pthread.c: New. Taken from GPGME.
1816         * mutex.h: Removed.
1817         * Makefile.am (ath_components): New.
1818
1819 2002-09-16  Werner Koch  <wk@gnupg.org>
1820
1821         * secmem.c (_gcry_secmem_dump_stats): Replaced fprintf by log_*.
1822
1823 2002-08-23  Werner Koch  <wk@gnupg.org>
1824
1825         * missing-string.c: Removed unneeded strlwr.
1826
1827         * libgcrypt.m4: Made much more simple.
1828         * libgcrypt-config.in: Made --prefix work for --libs.
1829
1830 2002-08-14  Werner Koch  <wk@gnupg.org>
1831
1832         * gcrypt.h: Add GCRY_CIPGER_DES.  Included string.h for size_t.
1833         Suggested by Simon Josefsson.
1834
1835 2002-07-25  Werner Koch  <wk@gnupg.org>
1836
1837         * cipher.h: Added prototypes for progress functions.
1838         * global.c: Include cipher.h for those prototypes.
1839
1840         * stdmem.c (_gcry_private_realloc): Replaced void* by char * for
1841         pointer arithmetic reasons.  Noted by Stephan Austermuehle.
1842
1843 2002-06-24  Werner Koch  <wk@gnupg.org>
1844
1845         * missing-string.c: Include ctype.h.
1846
1847         * gcrypt.h (gcry_mpi_invm, gcry_mpi_div, gcry_mpi_mod)
1848         (gcry_mpi_swap): New.
1849
1850 2002-06-18  Werner Koch  <wk@gnupg.org>
1851
1852         * gcrypt.h: Added a bunch of brief function descriptions.
1853
1854 2002-05-21  Werner Koch  <wk@gnupg.org>
1855
1856         * misc.c (_gcry_log_printf): Don't initialize a va_list.  Noted by
1857         Jeff Johnson.
1858
1859         * global.c (gcry_set_progress_handler): New.
1860
1861         * gcrypt.h: Replaced the typedef for byte.
1862
1863 2002-05-16  Werner Koch  <wk@gnupg.org>
1864
1865         * missing-string.c: New.
1866
1867         * gcrypt.h: Add new error codes GCRYERR_SEXP_ and typedefs
1868         GcryMPI, GcrySexp, GcryCipherHd, GcryMDHd as aliases for the old
1869         ones using an underscore.
1870
1871         * global.c (gcry_strerror): Add strings fro the new error codes.
1872         * sexp.c (gcry_sexp_canon_len): Use a macro to convert from new to
1873         old error codes.
1874         (gcry_sexp_create,gcry_sexp_new): New.
1875
1876 2002-05-15  Werner Koch  <wk@gnupg.org>
1877
1878         * mutex.h (DEFINE_LOCAL_MUTEX): Macro to define a mutex and
1879         initialize it so that we can detect an unitialized mutex and don't
1880         read from stdin.
1881
1882 2002-05-14  Werner Koch  <wk@gnupg.org>
1883
1884         Changed license of all files to the LGPL.
1885
1886 2002-05-07  Werner Koch  <wk@gnupg.org>
1887
1888         * global.c (gcry_control): Add commands
1889         GCRYCTL_ANY_INITIALIZATION_P and GCRYCTL_INITIALIZATION_FINISHED_P
1890         so that other libraries are able to check for required
1891         initializations.
1892
1893 2002-05-02  Werner Koch  <wk@gnupg.org>
1894
1895         * gcrypt.h (GCRYCTL_DISABLE_INTERNAL_LOCKING): New.
1896         * global.c (gcry_control): Implement it.
1897         (_gcry_no_internal_locking): New.
1898         * mutex.h: Prefixed all fucntions with _gcry_.  Bypass all
1899         functions when desired.
1900
1901         * gcrypt.h (GCRYCTL_DISABLE_SECMEM): New.
1902         * global.c (gcry_control,gcry_malloc_secure,gcry_is_secure):
1903         Implement it here.
1904         * secmem.c (_gcry_private_is_secure): Return false if the pool is
1905         not initialized.
1906
1907         * gcrypt.h (GCRYCTL_INITIALIZATION_FINISHED): New.
1908
1909         * gcrypt.h (gcry_cipher_algos): Replaced RINDAEL by AES and change
1910         the macros to expand from rijdael to aes.
1911
1912         * stdmem.c (_gcry_private_malloc): Return NULL for 0 byte allocation.
1913         (_gcry_private_malloc_secure): Ditto.
1914
1915         * g10lib.h:  Copied the JNLIB_GCC macros from ../jnlib/mischelp.h
1916         and removed the inclusion of that file.
1917
1918 2002-04-15  Werner Koch  <wk@gnupg.org>
1919
1920         * global.c (gcry_strdup): New.
1921
1922 2002-03-18  Werner Koch  <wk@gnupg.org>
1923
1924         * mutex.h: New file with a portable thread mutex implementation
1925         written by Marcus Brinkmann.  Taken from GPGME.
1926
1927 2002-02-18  Werner Koch  <wk@gnupg.org>
1928
1929         * sexp.c (gcry_sexp_sscan): Don't initialize the dummy
1930         variable.  Suggested by Jordi Mallach.
1931
1932 2002-01-31  Werner Koch  <wk@gnupg.org>
1933
1934         * sexp.c (suitable_encoding,convert_to_hex,convert_to_string)
1935         (convert_to_token): New.
1936         (gcry_sexp_sprint): Better formatting of advanced encoding, does
1937         now insert LFs and escapes all unprintable characters.
1938         (unquote_string): New.
1939         (sexp_sscan): Implemented the missing conversion of quoted strings.
1940
1941 2002-01-26  Werner Koch  <wk@gnupg.org>
1942
1943         * libgcrypt-config.in: Add copyright notice.
1944
1945 2002-01-11  Werner Koch  <wk@gnupg.org>
1946
1947         * sexp.c (gcry_sexp_canon_len): Fixed last change.
1948
1949 2002-01-01  Timo Schulz <ts@winpt.org>
1950
1951         * stdmem.c (_gcry_private_realloc): If pointer is NULL now realloc
1952         behaves like malloc.
1953
1954 2001-12-20  Werner Koch  <wk@gnupg.org>
1955
1956         * sexp.c (gcry_sexp_canon_len): Describe the error codes and
1957         return an error if this is not a S-Exp; i.e. it does not start
1958         with an open parenthesis.
1959
1960 2001-12-18  Werner Koch  <wk@gnupg.org>
1961
1962         * sexp.c (gcry_sexp_canon_len): Fixed the test on NULL buffer.
1963
1964         * Makefile.am (DISTCLEANFILES): Include libgcrypt.sym
1965
1966         * sexp.c: Removed the commented test code because we now have a
1967         test in ../tests/
1968
1969 2001-12-17  Werner Koch  <wk@gnupg.org>
1970
1971         * sexp.c (gcry_sexp_canon_len): New.
1972
1973 2001-12-11  Werner Koch  <wk@gnupg.org>
1974
1975         * gcrypt.h: Fixed AES128 macro, add enum for OFB mode.
1976
1977 2001-12-05  Werner Koch  <wk@gnupg.org>
1978
1979         * misc.c (_gcry_log_printf): New.
1980         * sexp.c (dump_string,gcry_sexp_dump): Use logging functions
1981         instead of stderr.
1982
1983 2001-11-16  Werner Koch  <wk@gnupg.org>
1984
1985         * gcrypt.h: New constant GCRYCTL_IS_ALGO_ENABLED.
1986
1987 2001-10-02  Werner Koch  <wk@gnupg.org>
1988
1989         * gcrypt.h: Removed a couple of trailing commas.
1990
1991 2001-08-28  Werner Koch  <wk@gnupg.org>
1992
1993         * sexp.c (sexp_sscan): Add an argument to enable the
1994         arg_ptr. Changed all callers.  Suggested by Tom Holroyd.
1995
1996 2001-08-03  Werner Koch  <wk@gnupg.org>
1997
1998         * global.c (gcry_strerror): Updated list of error codes.
1999
2000 2001-07-23  Werner Koch  <wk@gnupg.org>
2001
2002         * gcrypt.h: Replaced the last ulong.  Noted by Rami Lehti.
2003
2004 2001-05-31  Werner Koch  <wk@gnupg.org>
2005
2006         * gcrypt.h, mpi.h: Made some mpi functions public.
2007
2008         * wrapper.c: Removed.
2009         * global.c: Renamed all g10_ prefixed functions which had wrappers 
2010         to gcry_xxx. So we now use the exported memory functions inernally.
2011
2012         Renamed all g10_ prefixed functions to _gcry_ prefixed ones.
2013         
2014         * g10lib.h (_GCRYPT_IN_LIBGCRYPT): Replace defintion by a test on it.
2015
2016 2001-05-28  Werner Koch  <wk@gnupg.org>
2017
2018         * libgcrypt.m4: Check GCRYPT_VERSION macro and not LIBGCRYPT_VERSION.
2019
2020         * mpi.h: Removed mpi_fromstr prototype.
2021
2022 2001-01-11  Werner Koch  <wk@gnupg.org>
2023
2024         * Makefile.am (libgcrypt_la_SOURCES): Add mpi.h
2025
2026 2000-12-19  Werner Koch  <wk@gnupg.org>
2027
2028         * types.h: Moved from ../include to here.
2029
2030         Major change:
2031         Removed all GnuPG stuff and renamed this piece of software
2032         to gcrypt. 
2033
2034 2000-11-14  Werner Koch  <wk@gnupg.org>
2035
2036         * mpi.h: Moved to ../mpi.
2037
2038         * Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency
2039         problems.
2040
2041 2000-10-11  Werner Koch  <wk@gnupg.org>
2042
2043         * mpi.h: Changed the way mpi_limb_t is defined.
2044
2045 2000-10-10  Werner Koch  <wk@gnupg.org>
2046
2047         * Makefile.am: Take version-info from configure.
2048
2049 2000-10-09  Werner Koch  <wk@gnupg.org>
2050
2051         * gcrypt.h: New cipher mode, new algo Arcfour and new error code
2052         GCRYERR_INV_CIPHER_MODE.
2053         * global.c (gcry_strerror): New errorcode.
2054
2055 Wed Oct  4 13:16:18 CEST 2000  Werner Koch  <wk@openit.de>
2056
2057         * gcrypt.h (gcry_md_setkey): Replaced macro by function prototype.
2058
2059 Mon Sep 18 16:35:45 CEST 2000  Werner Koch  <wk@openit.de>
2060
2061         * gcrypt.h (GCRYCTL_GET_ALGO_USAGE): New.
2062
2063         * secmem.c (secmem_realloc): check for failed secmem_malloc.  By
2064         Matt Kraai.
2065
2066 Mon Jul 31 10:04:47 CEST 2000  Werner Koch  <wk@openit.de>
2067
2068   * sexp.c: Removed the datalen fields from list tags.
2069   (gcry_sexp_car_data,gcry_sexp_cdr_data,gcry_sexp_car_mpi,
2070    gcry_sexp_cdr_mpi): Removed.
2071   (gcry_sexp_nth,gcry_sexp_nth_data,gcry_sexp_nth_mpi): New.
2072
2073 Fri Jul 28 18:19:11 CEST 2000  Werner Koch  <wk@openit.de>
2074
2075   * sexp.c (sexp_sscan): Fixed reallocation to secure memory.
2076   (new_empty_list): Removed
2077   (gcry_sexp_length): New.
2078   (gcry_sexp_enum): Removed.
2079   (normalize): New. Reworked the whole thing to use NULL for an empty list.
2080   (make_space): New instead of the macro.
2081
2082 Tue Jul 25 17:44:15 CEST 2000  Werner Koch  <wk@openit.de>
2083
2084   * sexp.c: Major rewrite.
2085   (gcry_sexp_sscan): Reordered arguments.  Moved functionality to ..
2086   (sexp_sscan): .. this.
2087   (gcry_sexp_build): New.
2088   (gcry_sexp_new_name_mpi, gcry_sexp_new_name_data, gcry_sexp_new_data,
2089    gcry_sexp_new_mpi): Removed.
2090
2091 Fri Jul 14 19:38:23 CEST 2000  Werner Koch  <wk@>
2092
2093   * gcrypt.h (gcry_md_start_debug, gcry_md_stop_debug): New.
2094   (gcry_ctl_cmds): New control values
2095
2096   * sexp.c (gcry_sexp_sscan): Add hex format parsing.
2097
2098   * secmem.c (lock_pool): Check for ENOSYS return my mlock() on old SCOs.
2099   (pool_is_mmapped): Made volatile.
2100   (lock_pool): No more warning for QNX. By Sam Roberts.
2101   (lock_pool,secmem_init): Additional check for dropped privs.
2102
2103 2000-03-21 09:18:48  Werner Koch  (wk@habibti.gnupg.de)
2104
2105         * gcrypt.h (gcry_md_setkey): New.
2106         (GCRY_MD_FLAG_HMAC): New.
2107
2108 Mon Jan 31 16:37:34 CET 2000  Werner Koch  <wk@gnupg.de>
2109
2110         * Makefile.am: Add g10lib.h
2111
2112 Thu Jan 27 18:00:44 CET 2000  Werner Koch  <wk@gnupg.de>
2113
2114         * sexp.c (gcry_sexp_sscan): Allow NULL for erroff.
2115
2116 Mon Jan 24 22:24:38 CET 2000  Werner Koch  <wk@gnupg.de>
2117
2118         * sexp.c (gcry_sexp_alist): New.
2119
2120 Mon Jan 24 13:04:28 CET 2000  Werner Koch  <wk@gnupg.de>
2121
2122         * secmem.c: Moved from ../util to here.
2123         * secmem.h: New.
2124         * stdmem.c: New. Based on the old ../util/memory.c.
2125         * stdmem.h: New.
2126
2127 Wed Dec  8 21:58:32 CET 1999  Werner Koch  <wk@gnupg.de>
2128
2129         * gcrypt.m4: New.
2130         * gcrypt-config: New.
2131
2132         * mpi.h (mpi_get_nbit_info): Removed
2133         (mpi_set_nbit_info): Removed.
2134         (struct gcry_mpi): Removed the nbits field.
2135
2136         * misc.c (g10_log_verbosity): New.
2137
2138         * global.c (g10_xstrdup): New.
2139
2140         * mpiapi.c: Removed.
2141
2142         * mpi.h: Moved from ../include to here.  Removed some obsolete
2143         prototypes and the iobuf.h header.
2144         * cipher.h: Moved from ../include to here. Removed the mpi.h header.
2145         * g10lib.h: Moved from ../include to here.
2146
2147 Fri Nov 19 17:15:20 CET 1999  Werner Koch  <wk@gnupg.de>
2148
2149         * sexp.c (dump_string): New.  Taken from gnupg/util/miscutil.c.
2150         (do_dump_list): s/print_string/dump_string/.
2151
2152         * testapi.c: New.
2153
2154         * mpiapi.c (gcry_mpi_randomize): Use new random API.
2155
2156 Sat Nov 13 17:44:23 CET 1999  Werner Koch  <wk@gnupg.de>
2157
2158         * gloabl.c (gcry_control): Add cases for dumping random
2159         and secmem stats.
2160
2161 Tue Oct 26 14:10:21 CEST 1999  Werner Koch  <wk@gnupg.de>
2162
2163         * pkapi.c: Removed.
2164
2165         * symapi.c: Removed.
2166
2167         * g10lib.h:  Moved to ../include.
2168
2169         * mdapi.c: Removed.
2170
2171 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
2172
2173         * sexp.c: New.
2174
2175 Tue Dec  8 13:15:16 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2176
2177         * gcrypt.h: New
2178         * mpiapi.c: New
2179
2180         
2181  Copyright (C) 1998,1999,2000,2001,2002,2003
2182                2004, 2005, 2008, 2009 Free Software Foundation, Inc.
2183
2184  This file is free software; as a special exception the author gives
2185  unlimited permission to copy and/or distribute it, with or without
2186  modifications, as long as this notice is preserved.
2187
2188  This file is distributed in the hope that it will be useful, but
2189  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
2190  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.