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