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