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