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