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