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