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