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