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