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