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