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