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