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