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