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