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