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