2003-04-17 Moritz Schulte <moritz@g10code.com>
[libgcrypt.git] / src / ChangeLog
1 2003-04-17  Moritz Schulte  <moritz@g10code.com>
2
3         * cipher.h: Declare digest_spec_sha512 and digest_spec_384.
4
5 2003-04-16  Moritz Schulte  <moritz@g10code.com>
6
7         * module.c (_gcry_module_use): New function.
8         * g10lib.h (_gcry_module_use): Declare function.
9
10         * libgcrypt-config.in: Support for --algorithms switch, which
11         prints the algorithms included in the built libgcrypt.
12
13         * global.c (gcry_set_progress_handler): Register progress
14         functions depending on the enabled algorithms.
15
16 2003-04-07  Moritz Schulte  <moritz@g10code.com>
17
18         * Makefile.am (libgcrypt_la_SOURCES): Added module.c
19
20         * module.c: New file.
21         (_gcry_module_add): New function.
22         (_gcry_module_drop): New function.
23         (_gcry_module_lookup): New function.
24         (_gcry_module_release): New function.
25
26         * g10lib.h (GcryModule): New types.
27         (FLAG_MODULE_DISABLED): New symbol.
28         Added declarations for _gcry_module_add, _gcry_module_release and
29         _gcry_module_lookup.
30
31         * gcrypt.h: New types: GcryPubkeySpec, GcryDigestSpec,
32         GcryCipherSpec.
33         Added declarations for: gcry_cipher_register,
34         gcry_cipher_unregister, gcry_digest_register,
35         gcry_digest_unregister, gcry_pubkey_register and
36         gcry_pubkey_unregister.
37
38         * cipher.h: Removed symbols: CIPHER_ALGO_NONE, CIPHER_ALGO_IDEA,
39         CIPHER_ALGO_3DES, CIPHER_ALGO_CAST5, CIPHER_ALGO_BLOWFISH,
40         CIPHER_ALGO_SAFER_SK128, CIPHER_ALGO_DES_SK, CIPHER_ALGO_TWOFISH,
41         CIPHER_ALGO_TWOFISH_OLD, CIPHER_ALGO_DUMMY, PUBKEY_USAGE_SIG,
42         PUBKEY_USAGE_ENC, DIGEST_ALGO_MD5, DIGEST_ALGO_SHA1,
43         DIGEST_ALGO_RMD160, DIGEST_ALGO_TIGER, PUBKEY_ALGO_RSA,
44         PUBKEY_ALGO_RSA_E, PUBKEY_ALGO_RSA_S, PUBKEY_ALGO_DSA,
45         PUBKEY_ALGO_ELGAMAL, PUBKEY_ALGO_ELGAMAL_E.
46
47 2003-04-02  Moritz Schulte  <moritz@g10code.com>
48
49         * benchmark.c (md_bench): Fix error message.
50
51 2003-03-31  Moritz Schulte  <moritz@g10code.com>
52
53         * benchmark.c (cipher_bench): Added CTR mode.
54
55 2003-03-30  Simon Josefsson  <jas@extundo.com>
56
57         * gcrypt.h (enum gcry_control_cmds): Add GCRY_SET_CTR.
58         (enum gcry_cipher_modes): Add GCRY_CIPHER_MODE_CTR.
59         (gcry_cipher_setctr): New macro to set counter.
60
61 2003-03-19  Moritz Schulte  <moritz@g10code.com>
62
63         * cipher.h (PUBKEY_FLAG_NO_BLINDING): New symbol.
64
65 2003-03-22  Simon Josefsson  <jas@extundo.com>
66
67         * gcrypt.h: Add GCRYCTL_SET_CBC_MAC and GCRY_CIPHER_CBC_MAC.
68
69 2003-03-19  Werner Koch  <wk@gnupg.org>
70
71         * g10lib.h: Adjusted primegen.c prototypes.
72
73 2003-03-12  Werner Koch  <wk@gnupg.org>
74
75         * sexp.c (sexp_sscan): Initialize NM.  Thanks to Ian Peters for
76         valgrinding this.
77
78 2003-03-06  Moritz Schulte  <mo@g10code.com>
79
80         * secmem.h (GCRY_SECMEM_FLAG_NO_WARNING,
81         GCRY_SECMEM_FLAG_SUSPEND_WARNING): New symbols.
82
83         * global.c (gcry_control): Use
84         GCRY_SECMEM_FLAG_{NO,SUSPEND}_WARNING, instead of hard-coded
85         values.
86         * secmem.c (_gcry_secmem_set_flags): Likewise.
87         * secmem.c (_gcry_secmem_get_flags): Likewise.
88         
89 2003-03-03  Moritz Schulte  <moritz@g10code.com>
90
91         * misc.c: Removed old FIXME, since there is already a function to
92         set the value of `verbosity_level'.
93
94         * gcrypt.h: Removed enumeration list: gcry_ctl_cmds.
95         New enumeration lists: gcry_global_control_cmds,
96         gcry_control_cmds, gcry_info_cmds, gcry_algo_info_cmds.
97
98 2003-03-02  Moritz Schulte  <moritz@g10code.com>
99
100         * gcrypt.h (gcry_cipher_reset): New macro for resetting a handle.
101
102 2003-02-28  Moritz Schulte  <moritz@g10code.com>
103
104         * secmem.c (DEFAULT_PAGESIZE): New symbol.
105         (init_pool): Use DEFAULT_PAGESIZE.
106
107 2003-02-23  Moritz Schulte  <moritz@g10code.com>
108
109         * secmem.h: Fix typo in declaration of _gcry_secmem_term.
110
111         * sexp.c: Move macro definitions of `digitp', `octdigit', `alphap'
112         and `hexdigit' ...
113         * g10lib.h: ... here.
114
115         * misc.c (_gcry_burn_stack): New function (former name:
116         burn_stack).
117
118         * g10lib.h (burn_stack): Declare _gcry_burn_stack().
119
120 2003-01-24  Werner Koch  <wk@gnupg.org>
121
122         * global.c (gcry_set_progress_handler): Register a random progress
123         handler.
124
125 2003-01-23  Werner Koch  <wk@gnupg.org>
126
127         * gcrypt.h (GCRY_ENABLE_QUICK_RANDOM): New. 
128         * global.c (gcry_control): Make use of it.
129
130 2003-01-21  Werner Koch  <wk@gnupg.org>
131
132         * gcrypt.h (gcry_random_add_bytes): Add QUALITY argument.
133
134 2003-01-21  Timo Schulz  <twoaday@freakmail.de>
135
136         * gcrypt.h (gcry_random_add_bytes): New.
137         
138 2003-01-20  Simon Josefsson  <jas@extundo.com>
139
140         * gcrypt.h (gcry_md_algos): Add GCRY_MD_CRC32,
141         GCRY_MD_CRC32_RFC1510, GCRY_MD_CRC24_RFC2440.
142
143 2003-01-16  Werner Koch  <wk@gnupg.org>
144
145         * gcrypt.h (gcry_md_write): Changed type of 2nd argument to void*.
146         (gcry_md_hash_buffer): Changed type of both buffers to void*.
147         (gcry_md_setkey): Changed type of 2nd argument to void*.
148         (gcry_md_get_asnoid): New.
149
150 2003-01-15  Werner Koch  <wk@gnupg.org>
151
152         * sexp.c (gcry_sexp_length): Fixed.  This was seriously broken.
153
154 2003-01-14  Werner Koch  <wk@gnupg.org>
155
156         * gcrypt.h (GCRYERR_INV_FLAG), global.c (gcry_strerror): New.
157
158 2003-01-02  Werner Koch  <wk@gnupg.org>
159
160         * libgcrypt.vers: Temporary export _gcry_generate_elg_prime for
161         use by GNUTLS. 
162
163 2002-12-21  Werner Koch  <wk@gnupg.org>
164
165         * gcrypt.h: Make use of gcc's pure and malloc attributes 
166         (gcry_md_putc): Use a helper variable to avoid multiple
167         evaluation of H. 
168         * g10lib.h, stdmem.h, secmem.h: Use gcc attributes pure and malloc.
169
170         * stdmem.c (use_m_guard): Don't default to yes.
171
172 2002-12-19  Werner Koch  <wk@gnupg.org>
173
174         * global.c (global_init): The meat was never run due to a faulty
175         check. Thanks to Nikos for pointing this out.
176         
177         * global.c (gcry_control): Return 1 and not -1 for the
178         initialization tests.
179
180         * libgcrypt.vers: New.
181         * Makefile.am: Use this instead of the build symbol file.
182
183         * global.c (gcry_control) <initialization>: Call the random module
184         initializer to make sure that the pool lock flag has been
185         initialized.
186
187 2002-12-09  Werner Koch  <wk@gnupg.org>
188
189         * global.c (gcry_calloc,gcry_calloc_secure): Check for overflow.
190         Noted by Florian Weimer. 
191
192 2002-11-10  Simon Josefsson  <jas@extundo.com>
193
194         * gcrypt.h (gcry_ctl_cmds): New GCRYCTL_SET_CBC_CTS control flag.
195         (gcry_cipher_flags): New GCRY_CIPHER_CBC_CTS gcry_cipher_open() flag.
196         (gcry_cipher_cts): New macro for toggling CTS.
197
198 2002-11-10  Werner Koch  <wk@gnupg.org>
199
200         * gcrypt.h (GCRY_MD_MD4): New.  We use a non OpenPGP value here. 
201
202 2002-09-20  Werner Koch  <wk@gnupg.org>
203
204         * ath.c: Include sys.time.h if sys/select.h does not exist.
205         (ath_select, ath_waitpid): Shortcut for Windows.
206         * ath.h: Include some Windows headers.  By Timo.
207
208 2002-09-18  Werner Koch  <wk@gnupg.org>
209
210         * ath.h: Prefix ath_deinit.
211
212 2002-09-17  Werner Koch  <wk@gnupg.org>
213
214         * benchmark.c: New.
215         (mpi_bench, do_powm): Add a a simple test for RSA.
216
217         * global.c (global_init): New.  Use it instead of the setting
218         any_init_done.  Initialize the ATH system.
219         (gcry_check_version): Hook global_init in.  This is the suggested
220         way to initialize the library.
221         (_gcry_no_internal_locking): Removed.  We simply call a ath_deinit
222         and leave it to ATH to disbale the locking.
223
224         * ath.c, ath.h, ath-pth.c, ath-pthread.c: New. Taken from GPGME.
225         * mutex.h: Removed.
226         * Makefile.am (ath_components): New.
227
228 2002-09-16  Werner Koch  <wk@gnupg.org>
229
230         * secmem.c (_gcry_secmem_dump_stats): Replaced fprintf by log_*.
231
232 2002-08-23  Werner Koch  <wk@gnupg.org>
233
234         * missing-string.c: Removed unneeded strlwr.
235
236         * libgcrypt.m4: Made much more simple.
237         * libgcrypt-config.in: Made --prefix work for --libs.
238
239 2002-08-14  Werner Koch  <wk@gnupg.org>
240
241         * gcrypt.h: Add GCRY_CIPGER_DES.  Included string.h for size_t.
242         Suggested by Simon Josefsson.
243
244 2002-07-25  Werner Koch  <wk@gnupg.org>
245
246         * cipher.h: Added prototypes for progress functions.
247         * global.c: Include cipher.h for those prototypes.
248
249         * stdmem.c (_gcry_private_realloc): Replaced void* by char * for
250         pointer arithmetic reasons.  Noted by Stephan Austermuehle.
251
252 2002-06-24  Werner Koch  <wk@gnupg.org>
253
254         * missing-string.c: Include ctype.h.
255
256         * gcrypt.h (gcry_mpi_invm, gcry_mpi_div, gcry_mpi_mod)
257         (gcry_mpi_swap): New.
258
259 2002-06-18  Werner Koch  <wk@gnupg.org>
260
261         * gcrypt.h: Added a bunch of brief function descriptions.
262
263 2002-05-21  Werner Koch  <wk@gnupg.org>
264
265         * misc.c (_gcry_log_printf): Don't initialize a va_list.  Noted by
266         Jeff Johnson.
267
268         * global.c (gcry_set_progress_handler): New.
269
270         * gcrypt.h: Replaced the typedef for byte.
271
272 2002-05-16  Werner Koch  <wk@gnupg.org>
273
274         * missing-string.c: New.
275
276         * gcrypt.h: Add new error codes GCRYERR_SEXP_ and typedefs
277         GcryMPI, GcrySexp, GcryCipherHd, GcryMDHd as aliases for the old
278         ones using an underscore.
279
280         * global.c (gcry_strerror): Add strings fro the new error codes.
281         * sexp.c (gcry_sexp_canon_len): Use a macro to convert from new to
282         old error codes.
283         (gcry_sexp_create,gcry_sexp_new): New.
284
285 2002-05-15  Werner Koch  <wk@gnupg.org>
286
287         * mutex.h (DEFINE_LOCAL_MUTEX): Macro to define a mutex and
288         initialize it so that we can detect an unitialized mutex and don't
289         read from stdin.
290
291 2002-05-14  Werner Koch  <wk@gnupg.org>
292
293         Changed license of all files to the LGPL.
294
295 2002-05-07  Werner Koch  <wk@gnupg.org>
296
297         * global.c (gcry_control): Add commands
298         GCRYCTL_ANY_INITIALIZATION_P and GCRYCTL_INITIALIZATION_FINISHED_P
299         so that other libraries are able to check for required
300         initializations.
301
302 2002-05-02  Werner Koch  <wk@gnupg.org>
303
304         * gcrypt.h (GCRYCTL_DISABLE_INTERNAL_LOCKING): New.
305         * global.c (gcry_control): Implement it.
306         (_gcry_no_internal_locking): New.
307         * mutex.h: Prefixed all fucntions with _gcry_.  Bypass all
308         functions when desired.
309
310         * gcrypt.h (GCRYCTL_DISABLE_SECMEM): New.
311         * global.c (gcry_control,gcry_malloc_secure,gcry_is_secure):
312         Implement it here.
313         * secmem.c (_gcry_private_is_secure): Return false if the pool is
314         not initialized.
315
316         * gcrypt.h (GCRYCTL_INITIALIZATION_FINISHED): New.
317
318         * gcrypt.h (gcry_cipher_algos): Replaced RINDAEL by AES and change
319         the macros to expand from rijdael to aes.
320
321         * stdmem.c (_gcry_private_malloc): Return NULL for 0 byte allocation.
322         (_gcry_private_malloc_secure): Ditto.
323
324         * g10lib.h:  Copied the JNLIB_GCC macros from ../jnlib/mischelp.h
325         and removed the inclusion of that file.
326
327 2002-04-15  Werner Koch  <wk@gnupg.org>
328
329         * global.c (gcry_strdup): New.
330
331 2002-03-18  Werner Koch  <wk@gnupg.org>
332
333         * mutex.h: New file with a portable thread mutex implementation
334         written by Marcus Brinkmann.  Taken from GPGME.
335
336 2002-02-18  Werner Koch  <wk@gnupg.org>
337
338         * sexp.c (gcry_sexp_sscan): Don't initialize the dummy
339         variable.  Suggested by Jordi Mallach.
340
341 2002-01-31  Werner Koch  <wk@gnupg.org>
342
343         * sexp.c (suitable_encoding,convert_to_hex,convert_to_string)
344         (convert_to_token): New.
345         (gcry_sexp_sprint): Better formatting of advanced encoding, does
346         now insert LFs and escapes all unprintable characters.
347         (unquote_string): New.
348         (sexp_sscan): Implemented the missing conversion of quoted strings.
349
350 2002-01-26  Werner Koch  <wk@gnupg.org>
351
352         * libgcrypt-config.in: Add copyright notice.
353
354 2002-01-11  Werner Koch  <wk@gnupg.org>
355
356         * sexp.c (gcry_sexp_canon_len): Fixed last change.
357
358 2002-01-01  Timo Schulz <ts@winpt.org>
359
360         * stdmem.c (_gcry_private_realloc): If pointer is NULL now realloc
361         behaves like malloc.
362
363 2001-12-20  Werner Koch  <wk@gnupg.org>
364
365         * sexp.c (gcry_sexp_canon_len): Describe the error codes and
366         return an error if this is not a S-Exp; i.e. it does not start
367         with an open parenthesis.
368
369 2001-12-18  Werner Koch  <wk@gnupg.org>
370
371         * sexp.c (gcry_sexp_canon_len): Fixed the test on NULL buffer.
372
373         * Makefile.am (DISTCLEANFILES): Include libgcrypt.sym
374
375         * sexp.c: Removed the commented test code because we now have a
376         test in ../tests/
377
378 2001-12-17  Werner Koch  <wk@gnupg.org>
379
380         * sexp.c (gcry_sexp_canon_len): New.
381
382 2001-12-11  Werner Koch  <wk@gnupg.org>
383
384         * gcrypt.h: Fixed AES128 macro, add enum for OFB mode.
385
386 2001-12-05  Werner Koch  <wk@gnupg.org>
387
388         * misc.c (_gcry_log_printf): New.
389         * sexp.c (dump_string,gcry_sexp_dump): Use logging functions
390         instead of stderr.
391
392 2001-11-16  Werner Koch  <wk@gnupg.org>
393
394         * gcrypt.h: New constant GCRYCTL_IS_ALGO_ENABLED.
395
396 2001-10-02  Werner Koch  <wk@gnupg.org>
397
398         * gcrypt.h: Removed a couple of trailing commas.
399
400 2001-08-28  Werner Koch  <wk@gnupg.org>
401
402         * sexp.c (sexp_sscan): Add an argument to enable the
403         arg_ptr. Changed all callers.  Suggested by Tom Holroyd.
404
405 2001-08-03  Werner Koch  <wk@gnupg.org>
406
407         * global.c (gcry_strerror): Updated list of error codes.
408
409 2001-07-23  Werner Koch  <wk@gnupg.org>
410
411         * gcrypt.h: Replaced the last ulong.  Noted by Rami Lehti.
412
413 2001-05-31  Werner Koch  <wk@gnupg.org>
414
415         * gcrypt.h, mpi.h: Made some mpi functions public.
416
417         * wrapper.c: Removed.
418         * global.c: Renamed all g10_ prefixed functions which had wrappers 
419         to gcry_xxx. So we now use the exported memory functions inernally.
420
421         Renamed all g10_ prefixed functions to _gcry_ prefixed ones.
422         
423         * g10lib.h (_GCRYPT_IN_LIBGCRYPT): Replace defintion by a test on it.
424
425 2001-05-28  Werner Koch  <wk@gnupg.org>
426
427         * libgcrypt.m4: Check GCRYPT_VERSION macro and not LIBGCRYPT_VERSION.
428
429         * mpi.h: Removed mpi_fromstr prototype.
430
431 2001-01-11  Werner Koch  <wk@gnupg.org>
432
433         * Makefile.am (libgcrypt_la_SOURCES): Add mpi.h
434
435 2000-12-19  Werner Koch  <wk@gnupg.org>
436
437         * types.h: Moved from ../include to here.
438
439         Major change:
440         Removed all GnuPG stuff and renamed this piece of software
441         to gcrypt. 
442
443 2000-11-14  Werner Koch  <wk@gnupg.org>
444
445         * mpi.h: Moved to ../mpi.
446
447         * Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency
448         problems.
449
450 2000-10-11  Werner Koch  <wk@gnupg.org>
451
452         * mpi.h: Changed the way mpi_limb_t is defined.
453
454 2000-10-10  Werner Koch  <wk@gnupg.org>
455
456         * Makefile.am: Take version-info from configure.
457
458 2000-10-09  Werner Koch  <wk@gnupg.org>
459
460         * gcrypt.h: New cipher mode, new algo Arcfour and new error code
461         GCRYERR_INV_CIPHER_MODE.
462         * global.c (gcry_strerror): New errorcode.
463
464 Wed Oct  4 13:16:18 CEST 2000  Werner Koch  <wk@openit.de>
465
466         * gcrypt.h (gcry_md_setkey): Replaced macro by function prototype.
467
468 Mon Sep 18 16:35:45 CEST 2000  Werner Koch  <wk@openit.de>
469
470         * gcrypt.h (GCRYCTL_GET_ALGO_USAGE): New.
471
472         * secmem.c (secmem_realloc): check for failed secmem_malloc.  By
473         Matt Kraai.
474
475 Mon Jul 31 10:04:47 CEST 2000  Werner Koch  <wk@openit.de>
476
477   * sexp.c: Removed the datalen fields from list tags.
478   (gcry_sexp_car_data,gcry_sexp_cdr_data,gcry_sexp_car_mpi,
479    gcry_sexp_cdr_mpi): Removed.
480   (gcry_sexp_nth,gcry_sexp_nth_data,gcry_sexp_nth_mpi): New.
481
482 Fri Jul 28 18:19:11 CEST 2000  Werner Koch  <wk@openit.de>
483
484   * sexp.c (sexp_sscan): Fixed reallocation to secure memory.
485   (new_empty_list): Removed
486   (gcry_sexp_length): New.
487   (gcry_sexp_enum): Removed.
488   (normalize): New. Reworked the whole thing to use NULL for an empty list.
489   (make_space): New instead of the macro.
490
491 Tue Jul 25 17:44:15 CEST 2000  Werner Koch  <wk@openit.de>
492
493   * sexp.c: Major rewrite.
494   (gcry_sexp_sscan): Reordered arguments.  Moved functionality to ..
495   (sexp_sscan): .. this.
496   (gcry_sexp_build): New.
497   (gcry_sexp_new_name_mpi, gcry_sexp_new_name_data, gcry_sexp_new_data,
498    gcry_sexp_new_mpi): Removed.
499
500 Fri Jul 14 19:38:23 CEST 2000  Werner Koch  <wk@>
501
502   * gcrypt.h (gcry_md_start_debug, gcry_md_stop_debug): New.
503   (gcry_ctl_cmds): New control values
504
505   * sexp.c (gcry_sexp_sscan): Add hex format parsing.
506
507   * secmem.c (lock_pool): Check for ENOSYS return my mlock() on old SCOs.
508   (pool_is_mmapped): Made volatile.
509   (lock_pool): No more warning for QNX. By Sam Roberts.
510   (lock_pool,secmem_init): Additional check for dropped privs.
511
512 2000-03-21 09:18:48  Werner Koch  (wk@habibti.gnupg.de)
513
514         * gcrypt.h (gcry_md_setkey): New.
515         (GCRY_MD_FLAG_HMAC): New.
516
517 Mon Jan 31 16:37:34 CET 2000  Werner Koch  <wk@gnupg.de>
518
519         * Makefile.am: Add g10lib.h
520
521 Thu Jan 27 18:00:44 CET 2000  Werner Koch  <wk@gnupg.de>
522
523         * sexp.c (gcry_sexp_sscan): Allow NULL for erroff.
524
525 Mon Jan 24 22:24:38 CET 2000  Werner Koch  <wk@gnupg.de>
526
527         * sexp.c (gcry_sexp_alist): New.
528
529 Mon Jan 24 13:04:28 CET 2000  Werner Koch  <wk@gnupg.de>
530
531         * secmem.c: Moved from ../util to here.
532         * secmem.h: New.
533         * stdmem.c: New. Based on the old ../util/memory.c.
534         * stdmem.h: New.
535
536 Wed Dec  8 21:58:32 CET 1999  Werner Koch  <wk@gnupg.de>
537
538         * gcrypt.m4: New.
539         * gcrypt-config: New.
540
541         * mpi.h (mpi_get_nbit_info): Removed
542         (mpi_set_nbit_info): Removed.
543         (struct gcry_mpi): Removed the nbits field.
544
545         * misc.c (g10_log_verbosity): New.
546
547         * global.c (g10_xstrdup): New.
548
549         * mpiapi.c: Removed.
550
551         * mpi.h: Moved from ../include to here.  Removed some obsolete
552         prototypes and the iobuf.h header.
553         * cipher.h: Moved from ../include to here. Removed the mpi.h header.
554         * g10lib.h: Moved from ../include to here.
555
556 Fri Nov 19 17:15:20 CET 1999  Werner Koch  <wk@gnupg.de>
557
558         * sexp.c (dump_string): New.  Taken from gnupg/util/miscutil.c.
559         (do_dump_list): s/print_string/dump_string/.
560
561         * testapi.c: New.
562
563         * mpiapi.c (gcry_mpi_randomize): Use new random API.
564
565 Sat Nov 13 17:44:23 CET 1999  Werner Koch  <wk@gnupg.de>
566
567         * gloabl.c (gcry_control): Add cases for dumping random
568         and secmem stats.
569
570 Tue Oct 26 14:10:21 CEST 1999  Werner Koch  <wk@gnupg.de>
571
572         * pkapi.c: Removed.
573
574         * symapi.c: Removed.
575
576         * g10lib.h:  Moved to ../include.
577
578         * mdapi.c: Removed.
579
580 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
581
582         * sexp.c: New.
583
584 Tue Dec  8 13:15:16 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
585
586         * gcrypt.h: New
587         * mpiapi.c: New
588
589         
590  Copyright 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
591
592  This file is free software; as a special exception the author gives
593  unlimited permission to copy and/or distribute it, with or without
594  modifications, as long as this notice is preserved.
595
596  This file is distributed in the hope that it will be useful, but
597  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
598  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.