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