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