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