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