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