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