(lock_pool): Don't print the warning for certain
[libgcrypt.git] / src / ChangeLog
1 2003-10-23  Werner Koch  <wk@gnupg.org>
2
3         * secmem.c (lock_pool): Don't print the warning for certain
4         systems, handle ENOMEM.
5
6 2003-10-21  Werner Koch  <wk@gnupg.org>
7
8         * secmem.c (_gcry_secmem_dump_stats): Fixed format sepcifier for a
9         size_t.  Reported by Stephane Corthesy.
10
11 2003-10-10  Werner Koch  <wk@gnupg.org>
12
13         * global.c (_gcry_malloc): Handle the no_secure_memory option.
14
15         * gcrypt.h (gcry_prime_group_generator): New.
16         (gcry_prime_release_factors): New.
17
18 2003-10-07  Werner Koch  <wk@gnupg.org>
19
20         * sexp.c (sexp_sscan): Check that parenthesis are matching.
21
22 2003-09-28  Moritz Schulte  <mo@g10code.com>
23
24         * ath.c: Change License to LGPL.
25         * ath-pthread-compat.c: Likewise.
26         * ath-pthread.c: Likewise.
27         * ath-pth-compat.c: Likewise.
28         * ath-pth.c: Likewise.
29         * ath.h: Likewise.
30         * ath-compat.c: Likewise.
31
32         * secmem.c (_gcry_secmem_realloc): Do not forget to release secmem
33         lock.  Thanks to low halo for triggering this bug.
34
35 2003-09-04  Werner Koch  <wk@gnupg.org>
36
37         * gcrypt.h (_GCRY_ERR_SOURCE_DEFAULT): Removed cruft.
38         (gcry_prime_check_func_t): Renamed arg for clarity.
39
40 2003-09-02  Moritz Schulte  <mo@g10code.com>
41
42         * gcrypt.h (GCRY_PRIME_FLAG_SPECIAL_FACTOR): New symbol.
43
44 2003-09-01  Moritz Schulte  <mo@g10code.com>
45
46         * gcrypt.h (gcry_random_level_t): New type.
47         (gcry_prime_check_func_t): Likewise.
48         (GCRY_PRIME_FLAG_SECRET): New symbol.
49         (gcry_prime_generate, gcry_prime_check): Declare functions.
50
51 2003-08-28  Werner Koch  <wk@gnupg.org>
52
53         * Makefile.am (libgcrypt_pth_la_LDFLAGS): Removed PTH_CFLAGS cruft.
54
55 2003-08-27  Moritz Schulte  <mo@g10code.com>
56
57         * global.c (gcry_control): Remove call to ath_deinit.
58
59         * Makefile.am (libgcrypt_real_la_DEPENDENCIES): Fixed.
60         (libgcrypt_real_la_LIBADD): Fixed.
61         Removed unecessary variables.
62
63         * libgcrypt-config.in: Adjusted script for new thread handling.
64
65         * Makefile.am: New version, based on GPGMEs Makefile.am.
66
67         * ath.c, ath-compat.c, ath.h, ath-pth.c, ath-pth-compat.c,
68         ath-pthread.c, ath-pthread-compat.c: New files, merged from GPGME.
69         * ath.c, ath.h, ath-pthread.c, ath-pth.c: Removed files.
70
71 2003-08-08  Moritz Schulte  <moritz@g10code.com>
72
73         * global.c (gcry_realloc): Remove FIXME about `clearing out
74         realloced memory', since _gcry_secmem_realloc takes care of
75         overwriting old memory.
76
77 2003-08-07  Werner Koch  <wk@gnupg.org>
78
79         * module.c (_gcry_module_release): Don't act if module is NULL.
80
81 2003-07-30  Moritz Schulte  <moritz@g10code.com>
82
83         * gcrypt.h (enum gcry_ac_id): Added: GCRY_AC_ELG_E.
84         Reverted change: use gcry_md_flags enumeration list instead of
85         defines.
86
87 2003-07-29  Werner Koch  <wk@gnupg.org>
88
89         * global.c (gcry_control): Add GCRYCTL_SET_RANDOM_SEED_FILE and
90         GCRYCTL_UPDATE_RANDOM_SEED_FILE.
91         * gcrypt.h: Ditto.  Renamed index to idx, so avoid warning
92         related to the old index function.
93
94 2003-07-28  Moritz Schulte  <moritz@g10code.com>
95
96         * global.c (gcry_err_code_from_errno, gcry_err_code_to_errno)
97         (gcry_err_make_from_errno, gcry_error_from_errno): New functions.
98
99         * gcrypt.h: Declared: gcry_err_code_from_errno,
100         gcry_err_code_to_errno, gcry_err_make_from_errno,
101         gcry_error_from_errno.
102
103         * Makefile.am (include_HEADERS): Added: gcrypt-module.h.
104
105         * gcrypt.h: Include <gcrypt-module.h>.
106
107         * gcrypt-module.h: New file.
108
109 2003-07-27  Werner Koch  <wk@gnupg.org>
110
111         * gcrypt.h (gcry_mpi_scan, gcry_mpi_print): API change.
112         (gcry_mpi_dump): New.
113
114 2003-07-21  Moritz Schulte  <moritz@g10code.com>
115
116         * gcrypt.h: Declared: gcry_ac_key_data_get.
117         (gcry_pk_spec): Renamed member `sexp_names' into `aliases'.
118
119 2003-07-20  Moritz Schulte  <moritz@g10code.com>
120
121         * gcrypt.h (gcry_md_oid_spec_t): New type.
122         (gcry_md_spec): New member: oids.
123
124 2003-07-19  Moritz Schulte  <moritz@g10code.com>
125
126         * gcrypt.h (gcry_cipher_oid_spec_t): New type.
127         (gcry_cipher_spec): New member: oids;
128
129 2003-07-18  Werner Koch  <wk@gnupg.org>
130
131         * gcrypt.h (gcry_mpi_set_opaque): Add a warning comment.
132
133 2003-07-15  Moritz Schulte  <moritz@g10code.com>
134
135         * secmem.c (compress_pool): Remove function, since unused blocks
136         are automatically concatenad.
137
138         * gcrypt.h: Bumped version number up to 1.1.42-cvs.
139
140 2003-07-14  Moritz Schulte  <moritz@g10code.com>
141
142         * gcrypt.h (gcry_cipher_spec): New member: aliases.
143
144         * Makefile.am (noinst_PROGRAMS, testapi_SOURCES, testapai_LDADD,
145         benchmark_SOURCES, benchmark_LDADD): Removed.
146
147         * benchmark.c, testapi.c: Removed files.
148
149         * mpi.h: Removed disabled typedef.
150         * g10lib.h: Likewise.
151
152         * benchmark.c, g10lib.h, gcrypt.h, global.c, module.c, sexp.c:
153         Used gcry_err* wrappers for libgpg-error symbols.
154
155 2003-07-12  Moritz Schulte  <moritz@g10code.com>
156
157         * global.c: Likewise.
158
159         * gcrypt.h: New type: gcry_error_t, gcry_err_code_t and
160         gcry_err_source_t.
161         (gcry_err_make, gcry_error, gcry_err_code, gcry_err_source): New
162         functions.
163
164         * global.c (gcry_strerror): New function.
165         (gcry_strsource): New function.
166
167         * gcrypt.h: New symbol: GCRY_CIPHER_TWOFISH128.
168
169 2003-07-09  Moritz Schulte  <moritz@g10code.com>
170
171         * gcrypt.h (enum gcry_md_flags): Removed, used define instead,
172         since that is more common than an enumeration list when it comes
173         to flags that can be bitwise ORed.
174         
175 2003-07-08  Moritz Schulte  <moritz@g10code.com>
176
177         * global.c: Use new types for handlers.
178
179         * gcrypt.h: Declare: gcry_ac_data_copy.
180
181 2003-07-07  Moritz Schulte  <moritz@g10code.com>
182
183         * sexp.c (gcry_sexp_build_array): Use dummy argument pointer.
184         Thanks to Simon Josefsson <jas@extunde.com>.
185
186         * gcrypt.h: Declare: gcry_cipher_list, gcry_pk_list, gcry_md_list.
187         
188 2003-07-05  Moritz Schulte  <moritz@g10code.com>
189
190         * gcrypt.h: Declare: gcry_cipher_register, gcry_cipher_unregister,
191         gcry_md_register, gcry_md_unregister, gcry_pk_register,
192         gcry_pk_unregister.
193         (gcry_cipher_spec): Removed member: algorithm.
194         (gcry_pk_spec): Likewise.
195         (gcry_md_spec): Likewise.
196         Adjusted declarations: gcry_cipher_register, gcry_pk_register,
197         gcry_md_register.
198
199         * module.c: Replaced all occurences of `id' with `mod_id', since
200         `id' is a keyword in obj-c.
201
202         * gcrypt.h (gcry_cipher_spec): Renamed member `id' to `algorithm'.
203         (gcry_pk_spec): Likewise.
204         (gcry_md_spec): Likewise.
205
206         * cipher.h: Removed types: gcry_pubkey_generate_t,
207         gcry_pubkey_check_secret_key_t, gcry_pubkey_encrypt_t,
208         gcry_pubkey_decrypt_t, gcry_pubkey_sign_t, gcry_pubkey_verify_t,
209         gcry_pubkey_get_nbits_t, gcry_pk_spec_t, gcry_digest_init_t,
210         gcry_digest_write_t, gcry_digest_final_t, gcry_digest_read_t,
211         gcry_digest_spec_t, gcry_cipher_setkey_t, gcry_cipher_encrypt_t,
212         gcry_cipher_decrypt_t, gcry_cipher_stencrypt_t,
213         gcry_cipher_stdecrypt_t, gcry_cipher_spec_t.
214
215         * gcrypt.h: New types: gcry_pk_generate_t,
216         gcry_pk_check_secret_key_t, gcry_pk_encrypt_t, gcry_pk_decrypt_t,
217         gcry_pk_sign_t, gcry_pk_verify_t, gcry_pk_get_nbits_t,
218         gcry_pk_spec_t, gcry_md_init_t, gcry_md_write_t, gcry_md_final_t,
219         gcry_md_read_t, gcry_md_spec_t, gcry_cipher_setkey_t,
220         gcry_cipher_encrypt_t, gcry_cipher_decrypt_t,
221         gcry_cipher_stencrypt_t, gcry_cipher_stdecrypt_t,
222         gcry_cipher_spec_t, gcry_module_t.
223
224 2003-07-04  Moritz Schulte  <moritz@g10code.com>
225
226         * module.c (_gcry_module_list): New function.
227
228 2003-07-02  Moritz Schulte  <moritz@g10code.com>
229
230         * module.c (_gcry_module_lookup): Fixed typo.
231
232         * gcrypt.h: Added all definitions and declarations necessary for
233         the new ac interface.
234
235 2003-06-30  Moritz Schulte  <moritz@g10code.com>
236
237         * g10lib.h: Added declarations: _gcry_pk_module_lookup,
238         _gcry_pk_module_release.
239
240 2003-06-18  Werner Koch  <wk@gnupg.org>
241
242         * benchmark.c (cipher_bench): Adjusted for new API of get_blklen
243         and get_keylen.
244
245         * gcrypt.h (gcry_cipher_get_algo_blklen)
246         (gcry_cipher_get_algo_keylen): Replaced macro by funcion.
247
248 2003-06-18  Moritz Schulte  <moritz@g10code.com>
249
250         * cipher.h: Renamed types GcryDigestSpec, GcryCipherSpec and
251         GcryPubkeySpec into: gcry_digest_spec_t, gcry_cipher_spec_t and
252         gcry_pubkey_spec_t.
253         (gcry_pubkey_spec): Defined member `id' as unsigned.
254         (gcry_digest_spec): Likewise.
255         (gcry_cipher_spec): Likewise.
256
257         * module.c (_gcry_module_id_new): New function.
258         (_gcry_module_add): Generate a new ID via _gcry_module_id_new in
259         case `id' is zero.
260
261         * g10lib.h, module.c: Replace old type GcryModule with newer one:
262         gcry_module_t.
263
264         * module.c (_gcry_module_add): Added argument `id', use it.
265
266         * g10lib.h: Added declaration: _gcry_module_lookup_id.
267         (_gcry_module_add): Added argument `id'.
268
269         * module.c (_gcry_module_lookup_id): New function.
270
271         * g10lib.h (struct gcry_module): New member: id.
272
273         * gcrypt.h: New type: gcry_handler_progress_t,
274         gcry_handler_alloc_t, gcry_haandler_secure_check_t,
275         gcry_handler_realloc_t, gcry_handler_free_t,
276         gcry_handler_no_mem_t, gcry_handler_error_t, gcry_handler_log_t.
277         Use new types.
278
279         * cipher.h: Include <gcrypt.h>.
280         New types: gcry_pk_generate_t, gcry_pk_check_secret_key_t,
281         gcry_pk_encrypt_t, gcry_pk_decrypt_t, gcry_pk_sign_t,
282         gcry_pk_verify_t, gcry_pk_get_nbits_t, gcry_md_init_t,
283         gcry_md_write_t, gcry_md_final_t, gcry_md_read_t,
284         gcry_cipher_setkey_t, gcry_cipher_encrypt_t,
285         gcry_cipher_decrypt_t, gcry_cipher_stencrypt_t,
286         gcry_cipher_stdecrypt_t.
287         Use new types.
288
289 2003-06-17  Moritz Schulte  <moritz@g10code.com>
290
291         * Makefile.am (AM_CFLAGS): Added: @GPG_ERROR_CFLAGS@.
292
293 2003-06-16  Moritz Schulte  <moritz@g10code.com>
294
295         * g10lib.h: Replace last occurences of old type names with newer
296         names (i.e. replace MPI with gcry_mpi_t).
297         * mpi.h: Likewise.
298         * sexp.c: Likewise.
299
300 2003-06-15  Moritz Schulte  <moritz@g10code.com>
301
302         * testapi.c (test_genkey): Use gpg_strerror instead of
303         gcry_strerror.
304
305         * global.c (gcry_control): Fixed typo.
306
307         * misc.c (_gcry_fatal_error): Use gpg_strerror instead of
308         gcry_strerror.
309
310         * types.h (STRLIST): Removed type since it is not used.
311
312 2003-06-11  Moritz Schulte  <moritz@g10code.com>
313
314         * global.c (global_init): Call: _gcry_cipher_init, _gcry_md_init,
315         _gcry_pk_init.
316
317         * g10lib.h: Declare: _gcry_cipher_init, _gcry_md_init,
318         _gcry_pk_init.
319         
320         * global.c (gcry_strerror): Remove compatibility code.
321
322         * Makefile.am: Remove support libgpg-error special handling.
323         (AM_CPPFLAGS): Add @GPG_ERROR_CFLAGS@
324
325         * gcrypt.h: Likewise.
326
327 2003-06-13  Werner Koch  <wk@gnupg.org>
328
329         * gcrypt.h (gcry_md_get_algo): Reverted to old API.  This is a
330         convenience function anyway and error checking is not approriate.
331         (gcry_md_is_enabled): New.
332         (gcry_md_is_secure): Replaced macro by function and reverted to old
333         API.
334
335 2003-06-11  Werner Koch  <wk@gnupg.org>
336
337         * gcrypt.h (GCRYERR): Define _GCRY_ERR_SOURCE_DEFAULT instead of
338         GPG_ERR_SOURCE_DEFAULT, so that libgpg-error still works despite
339         the use of the old gcrypt error codes.
340         (gcry_md_copy): Swapped arguments.
341         
342 2003-06-09  Moritz Schulte  <moritz@g10code.com>
343
344         * Makefile.am: Support for libgpg-error.
345
346 2003-06-08  Moritz Schulte  <moritz@g10code.com>
347
348         * sexp.c (gcry_sexp_create): Expect sane error values from
349         gcry_sexp_canon_len instead of the `historical' values.
350
351 2003-06-07  Moritz Schulte  <moritz@g10code.com>
352
353         * ath.c, ath.c, ath-pth.c, ath-pthread.c, benchmark.c, cipher.h,
354         g10lib.h, gcrypt.h, global.c, misc.c, missing-string.c, module.c,
355         mpi.h, secmem.c, secmem.h, sexp.c, stdmem.c, stdmem.h, testapi.c,
356         types.h: Edited all preprocessor instructions to remove whitespace
357         before the '#'.  This is not required by C89, but there are some
358         compilers out there that don't like it.  Replaced any occurence of
359         the now deprecated type names with the new ones.
360         
361         * gcrypt.h: Re-organized checking for gcc features; New macro:
362         _GCRY_GCC_ATTR_DEPRECATED.
363         Include copy of libgpg-error's gpg-error.h in order to make it
364         easy to build libgcrypt without needing libgpg-error.h.
365
366         (GCRY_MPI, GcryMPI, GCRY_SEXP, GcrySexp, GCRY_CIPHER_HD,
367         GcryCipherHd, GCRY_MD_HD, GcryMDHd): Declared deprecated.
368         (gcry_mpi_t, gcry_sexp_t, gcry_cipher_hd_t, gcry_md_hd_t): New
369         types.
370
371 2003-06-04  Moritz Schulte  <moritz@g10code.com>
372
373         * sexp.c (sexp_sscan): New argument: arg_list, adjusted all
374         callers.
375         (ARG_NEXT): New macro.
376         (sexp_sscan): Use ARG_NEXT for receiving format string arguments.
377         (gcry_sexp_build_array): New function.
378
379 2003-06-02  Moritz Schulte  <moritz@g10code.com>
380
381         * gcrypt.h: Added some comments describing the gcry_sexp_*
382         functions.
383         Include <gpg-error.h> instead of <gpg/error.h>.
384
385 2003-06-01  Moritz Schulte  <moritz@g10code.com>
386
387         * sexp.c (OLDPARSECODE): Removed macro...
388         (gcry_sexp_canon_len): ... and do not use it.
389
390         * gcrypt.h (gcry_errno): Removed declaration.
391
392         * g10lib.h (string_to_pubkey_algo, pubkey_algo_to_string,
393         pubkey_nbits): Removed declarations for non-existing functions.
394
395 2003-05-31  Moritz Schulte  <moritz@g10code.com>
396
397         * cipher.h (is_RSA, is_ELGAMAL): Removed macros.
398
399         * g10lib.h (set_lasterr): Removed macro.
400         (_gcry_set_lasterr): Removed declaration.
401
402         * gcrypt.h: Changed declarations for: gcry_pk_algo_info,
403         gcry_md_open, gcry_md_copy, gcry_md_algo_info, gcry_md_info,
404         gcry_md_get_algo, gcry_random_add_bytes.
405         
406         (gcry_md_is_secure): Adjust macro for new API.
407
408 2003-05-29  Moritz Schulte  <moritz@g10code.com>
409
410         * gcrypt.h: Changed declarations for: gcry_cipher_open,
411         gcry_cipher_info, gcry_cipher_algo_info.
412         (gcry_cipher_get_algo_keylen): Adjuster for new
413         gcry_cipher_algo_info interface.
414         (gcry_cipher_get_algo_blklen): Likewise.
415
416         * global.c (gcry_errno): Removed function.
417         (gcry_strerror): Do not use gcry_errno.
418         (_gcry_set_lasterr): Removed function.
419         (last_ec): Removed variable.
420
421 2003-05-27  Moritz Schulte  <moritz@g10code.com>
422
423         * gcrypt.h (enum gcry_cipher_algos): Make Serpent IDs do not
424         conflict with OpenPGP.  Reported by Timo Schulz.
425
426         * global.c (gcry_control): Fixed name of enum list.
427
428 2003-05-25  Moritz Schulte  <moritz@g10code.com>
429
430         * cipher.h (gcry_cipher_spec): Adjust return type of `setkey' for
431         libgpg-error.
432         (gcry_pubkey_spec): Adjust return type of `generate',
433         `check_secret_key', `encrypt', `decrypt', `sign' and `verify' for
434         libgpg-error.
435
436         * sexp.c (gcry_sexp_canon_len): Adjusted for libgpg-error.
437         (gcry_sexp_create): Likewise.
438         (gcry_sexp_new): Likewise.
439         (sexp_sscan): Likewise.
440         (gcry_sexp_build): Likewise.
441         (gcry_sexp_sscan): Likewise.
442
443         * module.c (_gcry_module_add): Likewise.
444
445         * global.c (last_ec): Change type to gpg_error_t.
446         (gcry_control): Adjust for libgpg-error.
447         (gcry_errno): Likewise.
448         (gcry_strerror): Likewise.
449         (_gcry_set_lasterr): Likewise.
450         (gcry_xmalloc): Likewise.
451         (gcry_xrealloc): Likewise.
452
453 2003-05-22  Moritz Schulte  <moritz@g10code.com>
454
455         * types.h: Merged code from GnuPG regarding U64_C.
456
457         * missing-string.c (strsep): Removed function.
458
459         * g10lib.h: Removed declarations: strsep, strlwr.
460
461         * secmem.c (secmem_lock): New variable.
462         (SECMEM_LOCK, SECMEM_UNLOCK): New macros.
463         (_gcry_secmem_set_flags): Use SECMEM_LOCK and SECMEM_UNLOCK.
464         (_gcry_secmem_get_flags): Likewise.
465         (_gcry_secmem_init): Likewie.
466         (_gcry_secmem_malloc): Likewise.
467         (_gcry_secmem_free): Likewise.
468         (_gcry_secmem_malloc): Renamed to ...
469         (_gcry_secmem_malloc_internal): ... this.
470         (_gcry_secmem_malloc): New function, use SECMEM_LOCK,
471         SECMEM_UNLOCK, call _gcry_secmem_malloc_internal.
472         (_gcry_secmem_free): Renamed to ...
473         (_gcry_secmem_free_internal): ... this.
474         (_gcry_secmem_free): New function, use SECMEM_LOCK, SECMEM_UNLOCK,
475         call _gcry_secmem_free_internal.
476         (_gcry_secmem_realloc): Use SECMEM_LOCK, SECMEM_UNLOCK, call
477         _gcry_secmem_malloc_internal and _gcry_secmem_free_internal.
478         (_gcry_private_is_secure): Use SECMEM_LOCK, SECMEM_UNLOCK.
479         (_gcry_secmem_dump_stats): Likewise.
480         (_gcry_secmem_malloc_internal): Removed unused variable:
481         compressed.
482         Include "ath.h".
483
484 2003-05-21  Moritz Schulte  <moritz@g10code.com>
485
486         * gcrypt.h (GCRY_CIPHER_SERPENT128, GCRY_CIPHER_SERPENT192,
487         GCRY_CIPHER_SERPENT256): New symbols.
488
489 2003-05-19  Moritz Schulte  <moritz@g10code.com>
490
491         * gcrypt.h: Reversed changes from 2003-03-03 since they would have
492         been an unnecessary ABI break.
493
494 2003-05-13  Moritz Schulte  <moritz@g10code.com>
495
496         * secmem.c (stats_update): New function.
497         (BLOCK_HEAD_SIZE): New symbol.
498         (MB_FLAG_ACTIVE): New symbol.
499         (ADDR_TO_BLOCK, BLOCK_VALID): New macros.
500         (mb_get_next): New function.
501         (mb_get_prev): New function.
502         (mb_merge): New function.
503         (mb_get_new): New function.
504         (unused_blocks): Removed variable.
505         (init_pool): Initialize new memory pool.
506         (_gcry_secmem_malloc): Use new heap management code.
507         (_gcry_secmem_free): Likewise.
508         (_gcry_secmem_realloc): Likewise.
509         Renamed type MEMBLOCK to memblock_t.
510
511 2003-04-27  Moritz Schulte  <moritz@g10code.com>
512
513         * cipher.h (gcry_pubkey_spec): New member: sexp_names.
514
515 2003-04-23  Moritz Schulte  <moritz@g10code.com>
516
517         * cipher.h (gcry_pubkey_spec): Removed members: npkey, nskey,
518         nenc, nsig.
519         (gcry_pubkey_spec): Added members: elements_pkey, elements_skey,
520         elements_enc, elements_sig, elements_grip.
521
522 2003-04-17  Moritz Schulte  <moritz@g10code.com>
523
524         * g10lib.h (GcryModule): New typedef.
525
526         * gcrypt.h (gcry_cipher_register, gcry_cipher_unregister,
527         gcry_digest_register, gcry_digest_unregister,
528         gcry_pubkey_register, gcry_pubkey_unregister): Function
529         declarations removed - for now.
530         
531         * gcrypt.h (GcryModule): Declaration removed.
532         * gcrypt.h (GcryPubkeySpec, GcryDigestSpec, GcryCipherSpec):
533         Types Moved... 
534         * cipher.h: ... here.
535
536 2003-04-17  Moritz Schulte  <moritz@g10code.com>
537
538         * cipher.h: Declare digest_spec_sha512 and digest_spec_384.
539
540 2003-04-16  Moritz Schulte  <moritz@g10code.com>
541
542         * module.c (_gcry_module_use): New function.
543         * g10lib.h (_gcry_module_use): Declare function.
544
545         * libgcrypt-config.in: Support for --algorithms switch, which
546         prints the algorithms included in the built libgcrypt.
547
548         * global.c (gcry_set_progress_handler): Register progress
549         functions depending on the enabled algorithms.
550
551 2003-04-07  Moritz Schulte  <moritz@g10code.com>
552
553         * Makefile.am (libgcrypt_la_SOURCES): Added module.c
554
555         * module.c: New file.
556         (_gcry_module_add): New function.
557         (_gcry_module_drop): New function.
558         (_gcry_module_lookup): New function.
559         (_gcry_module_release): New function.
560
561         * g10lib.h (GcryModule): New types.
562         (FLAG_MODULE_DISABLED): New symbol.
563         Added declarations for _gcry_module_add, _gcry_module_release and
564         _gcry_module_lookup.
565
566         * gcrypt.h: New types: GcryPubkeySpec, GcryDigestSpec,
567         GcryCipherSpec.
568         Added declarations for: gcry_cipher_register,
569         gcry_cipher_unregister, gcry_digest_register,
570         gcry_digest_unregister, gcry_pubkey_register and
571         gcry_pubkey_unregister.
572
573         * cipher.h: Removed symbols: CIPHER_ALGO_NONE, CIPHER_ALGO_IDEA,
574         CIPHER_ALGO_3DES, CIPHER_ALGO_CAST5, CIPHER_ALGO_BLOWFISH,
575         CIPHER_ALGO_SAFER_SK128, CIPHER_ALGO_DES_SK, CIPHER_ALGO_TWOFISH,
576         CIPHER_ALGO_TWOFISH_OLD, CIPHER_ALGO_DUMMY, PUBKEY_USAGE_SIG,
577         PUBKEY_USAGE_ENC, DIGEST_ALGO_MD5, DIGEST_ALGO_SHA1,
578         DIGEST_ALGO_RMD160, DIGEST_ALGO_TIGER, PUBKEY_ALGO_RSA,
579         PUBKEY_ALGO_RSA_E, PUBKEY_ALGO_RSA_S, PUBKEY_ALGO_DSA,
580         PUBKEY_ALGO_ELGAMAL, PUBKEY_ALGO_ELGAMAL_E.
581
582 2003-04-02  Moritz Schulte  <moritz@g10code.com>
583
584         * benchmark.c (md_bench): Fix error message.
585
586 2003-03-31  Moritz Schulte  <moritz@g10code.com>
587
588         * benchmark.c (cipher_bench): Added CTR mode.
589
590 2003-03-30  Simon Josefsson  <jas@extundo.com>
591
592         * gcrypt.h (enum gcry_control_cmds): Add GCRY_SET_CTR.
593         (enum gcry_cipher_modes): Add GCRY_CIPHER_MODE_CTR.
594         (gcry_cipher_setctr): New macro to set counter.
595
596 2003-03-19  Moritz Schulte  <moritz@g10code.com>
597
598         * cipher.h (PUBKEY_FLAG_NO_BLINDING): New symbol.
599
600 2003-03-22  Simon Josefsson  <jas@extundo.com>
601
602         * gcrypt.h: Add GCRYCTL_SET_CBC_MAC and GCRY_CIPHER_CBC_MAC.
603
604 2003-03-19  Werner Koch  <wk@gnupg.org>
605
606         * g10lib.h: Adjusted primegen.c prototypes.
607
608 2003-03-12  Werner Koch  <wk@gnupg.org>
609
610         * sexp.c (sexp_sscan): Initialize NM.  Thanks to Ian Peters for
611         valgrinding this.
612
613 2003-03-06  Moritz Schulte  <mo@g10code.com>
614
615         * secmem.h (GCRY_SECMEM_FLAG_NO_WARNING,
616         GCRY_SECMEM_FLAG_SUSPEND_WARNING): New symbols.
617
618         * global.c (gcry_control): Use
619         GCRY_SECMEM_FLAG_{NO,SUSPEND}_WARNING, instead of hard-coded
620         values.
621         * secmem.c (_gcry_secmem_set_flags): Likewise.
622         * secmem.c (_gcry_secmem_get_flags): Likewise.
623         
624 2003-03-03  Moritz Schulte  <moritz@g10code.com>
625
626         * misc.c: Removed old FIXME, since there is already a function to
627         set the value of `verbosity_level'.
628
629         * gcrypt.h: Removed enumeration list: gcry_ctl_cmds.
630         New enumeration lists: gcry_global_control_cmds,
631         gcry_control_cmds, gcry_info_cmds, gcry_algo_info_cmds.
632
633 2003-03-02  Moritz Schulte  <moritz@g10code.com>
634
635         * gcrypt.h (gcry_cipher_reset): New macro for resetting a handle.
636
637 2003-02-28  Moritz Schulte  <moritz@g10code.com>
638
639         * secmem.c (DEFAULT_PAGESIZE): New symbol.
640         (init_pool): Use DEFAULT_PAGESIZE.
641
642 2003-02-23  Moritz Schulte  <moritz@g10code.com>
643
644         * secmem.h: Fix typo in declaration of _gcry_secmem_term.
645
646         * sexp.c: Move macro definitions of `digitp', `octdigit', `alphap'
647         and `hexdigit' ...
648         * g10lib.h: ... here.
649
650         * misc.c (_gcry_burn_stack): New function (former name:
651         burn_stack).
652
653         * g10lib.h (burn_stack): Declare _gcry_burn_stack().
654
655 2003-01-24  Werner Koch  <wk@gnupg.org>
656
657         * global.c (gcry_set_progress_handler): Register a random progress
658         handler.
659
660 2003-01-23  Werner Koch  <wk@gnupg.org>
661
662         * gcrypt.h (GCRY_ENABLE_QUICK_RANDOM): New. 
663         * global.c (gcry_control): Make use of it.
664
665 2003-01-21  Werner Koch  <wk@gnupg.org>
666
667         * gcrypt.h (gcry_random_add_bytes): Add QUALITY argument.
668
669 2003-01-21  Timo Schulz  <twoaday@freakmail.de>
670
671         * gcrypt.h (gcry_random_add_bytes): New.
672         
673 2003-01-20  Simon Josefsson  <jas@extundo.com>
674
675         * gcrypt.h (gcry_md_algos): Add GCRY_MD_CRC32,
676         GCRY_MD_CRC32_RFC1510, GCRY_MD_CRC24_RFC2440.
677
678 2003-01-16  Werner Koch  <wk@gnupg.org>
679
680         * gcrypt.h (gcry_md_write): Changed type of 2nd argument to void*.
681         (gcry_md_hash_buffer): Changed type of both buffers to void*.
682         (gcry_md_setkey): Changed type of 2nd argument to void*.
683         (gcry_md_get_asnoid): New.
684
685 2003-01-15  Werner Koch  <wk@gnupg.org>
686
687         * sexp.c (gcry_sexp_length): Fixed.  This was seriously broken.
688
689 2003-01-14  Werner Koch  <wk@gnupg.org>
690
691         * gcrypt.h (GCRYERR_INV_FLAG), global.c (gcry_strerror): New.
692
693 2003-01-02  Werner Koch  <wk@gnupg.org>
694
695         * libgcrypt.vers: Temporary export _gcry_generate_elg_prime for
696         use by GNUTLS. 
697
698 2002-12-21  Werner Koch  <wk@gnupg.org>
699
700         * gcrypt.h: Make use of gcc's pure and malloc attributes 
701         (gcry_md_putc): Use a helper variable to avoid multiple
702         evaluation of H. 
703         * g10lib.h, stdmem.h, secmem.h: Use gcc attributes pure and malloc.
704
705         * stdmem.c (use_m_guard): Don't default to yes.
706
707 2002-12-19  Werner Koch  <wk@gnupg.org>
708
709         * global.c (global_init): The meat was never run due to a faulty
710         check. Thanks to Nikos for pointing this out.
711         
712         * global.c (gcry_control): Return 1 and not -1 for the
713         initialization tests.
714
715         * libgcrypt.vers: New.
716         * Makefile.am: Use this instead of the build symbol file.
717
718         * global.c (gcry_control) <initialization>: Call the random module
719         initializer to make sure that the pool lock flag has been
720         initialized.
721
722 2002-12-09  Werner Koch  <wk@gnupg.org>
723
724         * global.c (gcry_calloc,gcry_calloc_secure): Check for overflow.
725         Noted by Florian Weimer. 
726
727 2002-11-10  Simon Josefsson  <jas@extundo.com>
728
729         * gcrypt.h (gcry_ctl_cmds): New GCRYCTL_SET_CBC_CTS control flag.
730         (gcry_cipher_flags): New GCRY_CIPHER_CBC_CTS gcry_cipher_open() flag.
731         (gcry_cipher_cts): New macro for toggling CTS.
732
733 2002-11-10  Werner Koch  <wk@gnupg.org>
734
735         * gcrypt.h (GCRY_MD_MD4): New.  We use a non OpenPGP value here. 
736
737 2002-09-20  Werner Koch  <wk@gnupg.org>
738
739         * ath.c: Include sys.time.h if sys/select.h does not exist.
740         (ath_select, ath_waitpid): Shortcut for Windows.
741         * ath.h: Include some Windows headers.  By Timo.
742
743 2002-09-18  Werner Koch  <wk@gnupg.org>
744
745         * ath.h: Prefix ath_deinit.
746
747 2002-09-17  Werner Koch  <wk@gnupg.org>
748
749         * benchmark.c: New.
750         (mpi_bench, do_powm): Add a a simple test for RSA.
751
752         * global.c (global_init): New.  Use it instead of the setting
753         any_init_done.  Initialize the ATH system.
754         (gcry_check_version): Hook global_init in.  This is the suggested
755         way to initialize the library.
756         (_gcry_no_internal_locking): Removed.  We simply call a ath_deinit
757         and leave it to ATH to disbale the locking.
758
759         * ath.c, ath.h, ath-pth.c, ath-pthread.c: New. Taken from GPGME.
760         * mutex.h: Removed.
761         * Makefile.am (ath_components): New.
762
763 2002-09-16  Werner Koch  <wk@gnupg.org>
764
765         * secmem.c (_gcry_secmem_dump_stats): Replaced fprintf by log_*.
766
767 2002-08-23  Werner Koch  <wk@gnupg.org>
768
769         * missing-string.c: Removed unneeded strlwr.
770
771         * libgcrypt.m4: Made much more simple.
772         * libgcrypt-config.in: Made --prefix work for --libs.
773
774 2002-08-14  Werner Koch  <wk@gnupg.org>
775
776         * gcrypt.h: Add GCRY_CIPGER_DES.  Included string.h for size_t.
777         Suggested by Simon Josefsson.
778
779 2002-07-25  Werner Koch  <wk@gnupg.org>
780
781         * cipher.h: Added prototypes for progress functions.
782         * global.c: Include cipher.h for those prototypes.
783
784         * stdmem.c (_gcry_private_realloc): Replaced void* by char * for
785         pointer arithmetic reasons.  Noted by Stephan Austermuehle.
786
787 2002-06-24  Werner Koch  <wk@gnupg.org>
788
789         * missing-string.c: Include ctype.h.
790
791         * gcrypt.h (gcry_mpi_invm, gcry_mpi_div, gcry_mpi_mod)
792         (gcry_mpi_swap): New.
793
794 2002-06-18  Werner Koch  <wk@gnupg.org>
795
796         * gcrypt.h: Added a bunch of brief function descriptions.
797
798 2002-05-21  Werner Koch  <wk@gnupg.org>
799
800         * misc.c (_gcry_log_printf): Don't initialize a va_list.  Noted by
801         Jeff Johnson.
802
803         * global.c (gcry_set_progress_handler): New.
804
805         * gcrypt.h: Replaced the typedef for byte.
806
807 2002-05-16  Werner Koch  <wk@gnupg.org>
808
809         * missing-string.c: New.
810
811         * gcrypt.h: Add new error codes GCRYERR_SEXP_ and typedefs
812         GcryMPI, GcrySexp, GcryCipherHd, GcryMDHd as aliases for the old
813         ones using an underscore.
814
815         * global.c (gcry_strerror): Add strings fro the new error codes.
816         * sexp.c (gcry_sexp_canon_len): Use a macro to convert from new to
817         old error codes.
818         (gcry_sexp_create,gcry_sexp_new): New.
819
820 2002-05-15  Werner Koch  <wk@gnupg.org>
821
822         * mutex.h (DEFINE_LOCAL_MUTEX): Macro to define a mutex and
823         initialize it so that we can detect an unitialized mutex and don't
824         read from stdin.
825
826 2002-05-14  Werner Koch  <wk@gnupg.org>
827
828         Changed license of all files to the LGPL.
829
830 2002-05-07  Werner Koch  <wk@gnupg.org>
831
832         * global.c (gcry_control): Add commands
833         GCRYCTL_ANY_INITIALIZATION_P and GCRYCTL_INITIALIZATION_FINISHED_P
834         so that other libraries are able to check for required
835         initializations.
836
837 2002-05-02  Werner Koch  <wk@gnupg.org>
838
839         * gcrypt.h (GCRYCTL_DISABLE_INTERNAL_LOCKING): New.
840         * global.c (gcry_control): Implement it.
841         (_gcry_no_internal_locking): New.
842         * mutex.h: Prefixed all fucntions with _gcry_.  Bypass all
843         functions when desired.
844
845         * gcrypt.h (GCRYCTL_DISABLE_SECMEM): New.
846         * global.c (gcry_control,gcry_malloc_secure,gcry_is_secure):
847         Implement it here.
848         * secmem.c (_gcry_private_is_secure): Return false if the pool is
849         not initialized.
850
851         * gcrypt.h (GCRYCTL_INITIALIZATION_FINISHED): New.
852
853         * gcrypt.h (gcry_cipher_algos): Replaced RINDAEL by AES and change
854         the macros to expand from rijdael to aes.
855
856         * stdmem.c (_gcry_private_malloc): Return NULL for 0 byte allocation.
857         (_gcry_private_malloc_secure): Ditto.
858
859         * g10lib.h:  Copied the JNLIB_GCC macros from ../jnlib/mischelp.h
860         and removed the inclusion of that file.
861
862 2002-04-15  Werner Koch  <wk@gnupg.org>
863
864         * global.c (gcry_strdup): New.
865
866 2002-03-18  Werner Koch  <wk@gnupg.org>
867
868         * mutex.h: New file with a portable thread mutex implementation
869         written by Marcus Brinkmann.  Taken from GPGME.
870
871 2002-02-18  Werner Koch  <wk@gnupg.org>
872
873         * sexp.c (gcry_sexp_sscan): Don't initialize the dummy
874         variable.  Suggested by Jordi Mallach.
875
876 2002-01-31  Werner Koch  <wk@gnupg.org>
877
878         * sexp.c (suitable_encoding,convert_to_hex,convert_to_string)
879         (convert_to_token): New.
880         (gcry_sexp_sprint): Better formatting of advanced encoding, does
881         now insert LFs and escapes all unprintable characters.
882         (unquote_string): New.
883         (sexp_sscan): Implemented the missing conversion of quoted strings.
884
885 2002-01-26  Werner Koch  <wk@gnupg.org>
886
887         * libgcrypt-config.in: Add copyright notice.
888
889 2002-01-11  Werner Koch  <wk@gnupg.org>
890
891         * sexp.c (gcry_sexp_canon_len): Fixed last change.
892
893 2002-01-01  Timo Schulz <ts@winpt.org>
894
895         * stdmem.c (_gcry_private_realloc): If pointer is NULL now realloc
896         behaves like malloc.
897
898 2001-12-20  Werner Koch  <wk@gnupg.org>
899
900         * sexp.c (gcry_sexp_canon_len): Describe the error codes and
901         return an error if this is not a S-Exp; i.e. it does not start
902         with an open parenthesis.
903
904 2001-12-18  Werner Koch  <wk@gnupg.org>
905
906         * sexp.c (gcry_sexp_canon_len): Fixed the test on NULL buffer.
907
908         * Makefile.am (DISTCLEANFILES): Include libgcrypt.sym
909
910         * sexp.c: Removed the commented test code because we now have a
911         test in ../tests/
912
913 2001-12-17  Werner Koch  <wk@gnupg.org>
914
915         * sexp.c (gcry_sexp_canon_len): New.
916
917 2001-12-11  Werner Koch  <wk@gnupg.org>
918
919         * gcrypt.h: Fixed AES128 macro, add enum for OFB mode.
920
921 2001-12-05  Werner Koch  <wk@gnupg.org>
922
923         * misc.c (_gcry_log_printf): New.
924         * sexp.c (dump_string,gcry_sexp_dump): Use logging functions
925         instead of stderr.
926
927 2001-11-16  Werner Koch  <wk@gnupg.org>
928
929         * gcrypt.h: New constant GCRYCTL_IS_ALGO_ENABLED.
930
931 2001-10-02  Werner Koch  <wk@gnupg.org>
932
933         * gcrypt.h: Removed a couple of trailing commas.
934
935 2001-08-28  Werner Koch  <wk@gnupg.org>
936
937         * sexp.c (sexp_sscan): Add an argument to enable the
938         arg_ptr. Changed all callers.  Suggested by Tom Holroyd.
939
940 2001-08-03  Werner Koch  <wk@gnupg.org>
941
942         * global.c (gcry_strerror): Updated list of error codes.
943
944 2001-07-23  Werner Koch  <wk@gnupg.org>
945
946         * gcrypt.h: Replaced the last ulong.  Noted by Rami Lehti.
947
948 2001-05-31  Werner Koch  <wk@gnupg.org>
949
950         * gcrypt.h, mpi.h: Made some mpi functions public.
951
952         * wrapper.c: Removed.
953         * global.c: Renamed all g10_ prefixed functions which had wrappers 
954         to gcry_xxx. So we now use the exported memory functions inernally.
955
956         Renamed all g10_ prefixed functions to _gcry_ prefixed ones.
957         
958         * g10lib.h (_GCRYPT_IN_LIBGCRYPT): Replace defintion by a test on it.
959
960 2001-05-28  Werner Koch  <wk@gnupg.org>
961
962         * libgcrypt.m4: Check GCRYPT_VERSION macro and not LIBGCRYPT_VERSION.
963
964         * mpi.h: Removed mpi_fromstr prototype.
965
966 2001-01-11  Werner Koch  <wk@gnupg.org>
967
968         * Makefile.am (libgcrypt_la_SOURCES): Add mpi.h
969
970 2000-12-19  Werner Koch  <wk@gnupg.org>
971
972         * types.h: Moved from ../include to here.
973
974         Major change:
975         Removed all GnuPG stuff and renamed this piece of software
976         to gcrypt. 
977
978 2000-11-14  Werner Koch  <wk@gnupg.org>
979
980         * mpi.h: Moved to ../mpi.
981
982         * Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency
983         problems.
984
985 2000-10-11  Werner Koch  <wk@gnupg.org>
986
987         * mpi.h: Changed the way mpi_limb_t is defined.
988
989 2000-10-10  Werner Koch  <wk@gnupg.org>
990
991         * Makefile.am: Take version-info from configure.
992
993 2000-10-09  Werner Koch  <wk@gnupg.org>
994
995         * gcrypt.h: New cipher mode, new algo Arcfour and new error code
996         GCRYERR_INV_CIPHER_MODE.
997         * global.c (gcry_strerror): New errorcode.
998
999 Wed Oct  4 13:16:18 CEST 2000  Werner Koch  <wk@openit.de>
1000
1001         * gcrypt.h (gcry_md_setkey): Replaced macro by function prototype.
1002
1003 Mon Sep 18 16:35:45 CEST 2000  Werner Koch  <wk@openit.de>
1004
1005         * gcrypt.h (GCRYCTL_GET_ALGO_USAGE): New.
1006
1007         * secmem.c (secmem_realloc): check for failed secmem_malloc.  By
1008         Matt Kraai.
1009
1010 Mon Jul 31 10:04:47 CEST 2000  Werner Koch  <wk@openit.de>
1011
1012   * sexp.c: Removed the datalen fields from list tags.
1013   (gcry_sexp_car_data,gcry_sexp_cdr_data,gcry_sexp_car_mpi,
1014    gcry_sexp_cdr_mpi): Removed.
1015   (gcry_sexp_nth,gcry_sexp_nth_data,gcry_sexp_nth_mpi): New.
1016
1017 Fri Jul 28 18:19:11 CEST 2000  Werner Koch  <wk@openit.de>
1018
1019   * sexp.c (sexp_sscan): Fixed reallocation to secure memory.
1020   (new_empty_list): Removed
1021   (gcry_sexp_length): New.
1022   (gcry_sexp_enum): Removed.
1023   (normalize): New. Reworked the whole thing to use NULL for an empty list.
1024   (make_space): New instead of the macro.
1025
1026 Tue Jul 25 17:44:15 CEST 2000  Werner Koch  <wk@openit.de>
1027
1028   * sexp.c: Major rewrite.
1029   (gcry_sexp_sscan): Reordered arguments.  Moved functionality to ..
1030   (sexp_sscan): .. this.
1031   (gcry_sexp_build): New.
1032   (gcry_sexp_new_name_mpi, gcry_sexp_new_name_data, gcry_sexp_new_data,
1033    gcry_sexp_new_mpi): Removed.
1034
1035 Fri Jul 14 19:38:23 CEST 2000  Werner Koch  <wk@>
1036
1037   * gcrypt.h (gcry_md_start_debug, gcry_md_stop_debug): New.
1038   (gcry_ctl_cmds): New control values
1039
1040   * sexp.c (gcry_sexp_sscan): Add hex format parsing.
1041
1042   * secmem.c (lock_pool): Check for ENOSYS return my mlock() on old SCOs.
1043   (pool_is_mmapped): Made volatile.
1044   (lock_pool): No more warning for QNX. By Sam Roberts.
1045   (lock_pool,secmem_init): Additional check for dropped privs.
1046
1047 2000-03-21 09:18:48  Werner Koch  (wk@habibti.gnupg.de)
1048
1049         * gcrypt.h (gcry_md_setkey): New.
1050         (GCRY_MD_FLAG_HMAC): New.
1051
1052 Mon Jan 31 16:37:34 CET 2000  Werner Koch  <wk@gnupg.de>
1053
1054         * Makefile.am: Add g10lib.h
1055
1056 Thu Jan 27 18:00:44 CET 2000  Werner Koch  <wk@gnupg.de>
1057
1058         * sexp.c (gcry_sexp_sscan): Allow NULL for erroff.
1059
1060 Mon Jan 24 22:24:38 CET 2000  Werner Koch  <wk@gnupg.de>
1061
1062         * sexp.c (gcry_sexp_alist): New.
1063
1064 Mon Jan 24 13:04:28 CET 2000  Werner Koch  <wk@gnupg.de>
1065
1066         * secmem.c: Moved from ../util to here.
1067         * secmem.h: New.
1068         * stdmem.c: New. Based on the old ../util/memory.c.
1069         * stdmem.h: New.
1070
1071 Wed Dec  8 21:58:32 CET 1999  Werner Koch  <wk@gnupg.de>
1072
1073         * gcrypt.m4: New.
1074         * gcrypt-config: New.
1075
1076         * mpi.h (mpi_get_nbit_info): Removed
1077         (mpi_set_nbit_info): Removed.
1078         (struct gcry_mpi): Removed the nbits field.
1079
1080         * misc.c (g10_log_verbosity): New.
1081
1082         * global.c (g10_xstrdup): New.
1083
1084         * mpiapi.c: Removed.
1085
1086         * mpi.h: Moved from ../include to here.  Removed some obsolete
1087         prototypes and the iobuf.h header.
1088         * cipher.h: Moved from ../include to here. Removed the mpi.h header.
1089         * g10lib.h: Moved from ../include to here.
1090
1091 Fri Nov 19 17:15:20 CET 1999  Werner Koch  <wk@gnupg.de>
1092
1093         * sexp.c (dump_string): New.  Taken from gnupg/util/miscutil.c.
1094         (do_dump_list): s/print_string/dump_string/.
1095
1096         * testapi.c: New.
1097
1098         * mpiapi.c (gcry_mpi_randomize): Use new random API.
1099
1100 Sat Nov 13 17:44:23 CET 1999  Werner Koch  <wk@gnupg.de>
1101
1102         * gloabl.c (gcry_control): Add cases for dumping random
1103         and secmem stats.
1104
1105 Tue Oct 26 14:10:21 CEST 1999  Werner Koch  <wk@gnupg.de>
1106
1107         * pkapi.c: Removed.
1108
1109         * symapi.c: Removed.
1110
1111         * g10lib.h:  Moved to ../include.
1112
1113         * mdapi.c: Removed.
1114
1115 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1116
1117         * sexp.c: New.
1118
1119 Tue Dec  8 13:15:16 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
1120
1121         * gcrypt.h: New
1122         * mpiapi.c: New
1123
1124         
1125  Copyright 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
1126
1127  This file is free software; as a special exception the author gives
1128  unlimited permission to copy and/or distribute it, with or without
1129  modifications, as long as this notice is preserved.
1130
1131  This file is distributed in the hope that it will be useful, but
1132  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1133  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.