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