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