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