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