src/ChangeLog:
[libgcrypt.git] / src / ChangeLog
1 2006-04-01  Moritz Schulte  <moritz@g10code.com>
2
3         * gcrypt.h (gcry_ac_eme_pkcs_v1_5): Removed members: key, handle;
4         added member: key_size.
5
6         * secmem.c (MB_FLAG_ACTIVE): write braces around MB_FLAG_ACTIVE
7         definition.
8
9 2006-03-15  Werner Koch  <wk@g10code.com>
10
11         * getrandom.c: New.
12
13 2006-03-14  Werner Koch  <wk@g10code.com>
14
15         * gcryptrnd.c: New.
16
17 2006-03-10  Werner Koch  <wk@g10code.com>
18
19         * gcrypt.h: Add GCRY_MD_SHA224.
20
21 2005-11-02  Moritz Schulte  <moritz@g10code.com>
22
23         * gcrypt.h: Update comments for functions: gcry_cipher_algo_name,
24         gcry_pk_algo_name.
25
26 2005-10-31  Moritz Schulte  <moritz@g10code.com>
27
28         * global.c: Added documentation.
29
30 2005-10-16  Moritz Schulte  <moritz@g10code.com>
31
32         * global.c (global_init): Use gcry_error_t instead of
33         gcry_err_code_t; use goto instead of if constructs.
34
35         * stdmem.c: Inserted description of the layered memory management
36         in Libgcrypt.
37
38         * g10lib.h: Removed G10_I18N_H related check; it seems to be a
39         GnuPG relict (Libgcrypt does not define this symbol anywhere).
40         (FLAG_MODULE_DISABLED): Don't forget parantheses around shifted
41         value.
42         
43         Removed GCC_ATTR_PURE macro definitions, since gcrypt.h does
44         already contain such a macro named _GCRY_GCC_ATTR_PURE, which we
45         can use here as well.
46
47         Likewise for GCC_ATTR_MALLOC and _GCRY_GCC_ATTR_MALLOC.
48
49         * stdmem.h: Use _GCRY_GCC_ATTR_MALLOC instead of GCC_ATTR_MALLOC.
50         * secmem.h: Likewise.
51
52 2005-10-09  Moritz Schulte  <moritz@g10code.com>
53
54         * global.c (gcry_control): Call global_init() after passing thread
55         cbs to ath.  global_init() MUST to be called AFTER passing the cbs
56         to ath and BEFORE calling library functions, which make use of
57         ath.  This change combines cbs installing with ath initialization
58         and thus removes the need to call other library initialization
59         functions inbetween like e.g. gcry_check_version().
60
61 2005-10-01  Moritz Schulte  <moritz@g10code.com>
62
63         * ath.c: Assign copyright to FSF.
64         * ath.h: Likewise.
65
66 2005-06-25  Moritz Schulte  <moritz@g10code.com>
67
68         * Makefile.am (pkgconfigdir, pkgconfig_DATA): Removed variables.
69         * libgcrypt.pc.in: Removed file - we do not want to support a
70         second, foreign configuration system.
71
72 2005-06-17  Moritz Schulte  <moritz@g10code.com>
73
74         * global.c (gcry_xstrdup): Removed superfluous strcpy call.
75
76 2005-04-22  Moritz Schulte  <moritz@g10code.com>
77
78         * Makefile.am (pkgconfigdir, pkgconfig_DATA): New; support for
79         pkgconfig provided by Albert Chin.
80         * libgcrypt.pc.in (Cflags): New file.
81
82 2005-04-16  Moritz Schulte  <moritz@g10code.com>
83
84         * g10lib.h (_gcry_ac_init): Declare.
85         * global.c (global_init): Call _gcry_ac_init; don't forget to set
86         err.
87
88 2005-04-14  Werner Koch  <wk@g10code.com>
89
90         * sexp.c (whitespacep): New.
91         (sexp_sscan): Replaced isdigit and isspace by whitespacep and
92         digitp.
93
94 2005-04-11  Moritz Schulte  <moritz@g10code.com>
95
96         * gcrypt.h (gcry_md_algos): Added: GCRY_MD_WHIRLPOOL.
97         * cipher.h (_gcry_digest_spec_whirlpool): Declare.
98
99 2005-03-30  Moritz Schulte  <moritz@g10code.com>
100
101         * libgcrypt.vers: Added: gcry_ac_io_init, gry_ac_io_init_va.
102
103         * gcrypt.h (gcry_ac_data_read_cb_t, gcry_ac_data_write_cb_t,
104         gcry_ac_io_mode_t, gcry_ac_io_type_t, gcry_ac_io_t): New types.
105         (gcry_ac_io_init_va): Declare function.
106         (gcry_ac_data_encode, gcry_ac_data_decode,
107         gcry_ac_data_encrypt_scheme, gcry_ac_data_decrypt_scheme,
108         gcry_ac_data_sign_scheme, gcry_ac_data_verify_scheme): Use
109         gcry_ac_io_type_t objects instead of memory strings directly.
110
111 2005-03-03  Moritz Schulte  <moritz@g10code.com>
112
113         * libgcrypt.vers: Added: gcry_ac_data_to_sexp() and
114         gcry_ac_data_from_sexp().
115
116 2005-02-22  Werner Koch  <wk@g10code.com>
117
118         * global.c (_gcry_malloc): Make sure ERRNO is set if we return
119         NULL.  Remove unneeded initialization of M to allow the compiler
120         to catch errors.
121         (gcry_realloc): Make sure ERRNO is set if we return NULL>
122
123 2005-02-13  Moritz Schulte  <moritz@g10code.com>
124
125         * gcrypt.h: Declare new functions: gcry_ac_data_encrypt_scheme,
126         gcry_ac_data_decrypt_scheme, gcry_ac_data_sign_scheme,
127         gcry_ac_data_verify_scheme, gcry_ac_data_encode,
128         gcry_ac_data_decode, gcry_ac_data_to_sexp, gcry_ac_data_from_sexp.
129         New types: gcry_ac_emsa_pkcs_v1_5_t, gcry_ac_ssa_pkcs_v1_5_t,
130         gcry_md_algo_t.
131         New enumeration lists: gcry_ac_scheme_t, gcry_ac_em_t.
132         * libgcrypt.vers: Added new ac functions.
133         * g10lib.h: Declare function: _gcry_pk_get_elements.
134         * mpi.h (mpi_get_ui): New macro.
135         Declare function: _gcry_mpi_get_ui.
136
137 2004-11-09  Werner Koch  <wk@g10code.com>
138
139         * gcrypt.h: Removed 3 trailing commas from enums.  Noted by Heiko
140         Stamer.
141
142 2004-09-21  Werner Koch  <wk@g10code.de>
143
144         * sexp.c (sexp_sscan): Removed C++ style comments.  Noted by Yoann
145         Vandoorselaere.
146
147 2004-08-23  Moritz Schulte  <moritz@g10code.com>
148
149         * global.c: Do not include <assert.h>. 
150         * sexp.c: Likewise.
151         * module.c: Likewise.
152         * misc.c: Likewise.
153
154 2004-08-18  Moritz Schulte  <moritz@g10code.com>
155
156         * secmem.c (_gcry_secmem_init): Try to lock pool into core not
157         only when running with root privileges.
158
159 2004-08-16  Werner Koch  <wk@g10code.de>
160
161         * secmem.h (_gcry_secmem_set_flags,_gcry_secmem_get_flags):
162         Removed __pure__.
163         (GCRY_SECMEM_FLAG_NO_WARNING): Put macro value into parens.
164
165         * secmem.c (_gcry_secmem_init): Defer printing of the warning.
166
167 2004-08-10  Moritz Schulte  <moritz@g10code.com>
168
169         * gcrypt.h: Include <sys/time.h>, thanks to Simon Josefsson.
170
171 2004-05-07  Werner Koch  <wk@gnupg.org>
172
173         * gcrypt.h: Added GCRYCTL_FAST_POLL.
174         (gcry_fast_random_poll): New.
175         * global.c (gcry_control) <INITIALIZATION_FINISHED>: Do only basic
176         random subsystem init.
177         (gcry_control) <FAST_POLL>: New.
178
179 2004-04-22  Marcus Brinkmann  <marcus@g10code.de>
180
181         * libgcrypt.m4: Quote first argument to AC_DEFUN.
182
183 2004-04-15  Werner Koch  <wk@gnupg.org>
184
185         * secmem.c (_gcry_secmem_malloc_internal): Removed old extra info
186         error output.
187         (_gcry_secmem_term): Use wipememory2 here.
188
189         * misc.c (_gcry_burn_stack): Use wipememory to avoid optimizations.
190
191         * string.c: Removed.  Was never used.
192         * global.c (gcry_strdup): Replaced by the version from string.c
193         (gcry_xstrdup): Rewritten.
194         * gcrypt.h: Removed duplicate prototype for gcry_strdup.
195
196 2004-03-29  Werner Koch  <wk@gnupg.org>
197
198         * secmem.c (_gcry_secmem_realloc): Fixed double unlock; bug
199         manifested itself due to the more rigorous checking in the changed
200         ath.h
201
202         * libgcrypt-config.in (Options): Ignore the obsolete --threads
203         option for now.
204
205 2004-03-17  Marcus Brinkmann  <marcus@g10code.de>
206
207         * libgcrypt-config.in (includedir, libdir): Quote'em.  Use
208         $gpg_error_cflags and $gpg_error_libs.  Fix construction of
209         $includes.
210
211 2004-03-14  Marcus Brinkmann  <marcus@g10code.de>
212
213         * libgcrypt-config.in (includedir, libdir): New variables.  For
214         --cflags, don't test $cflags.  Also check against /include for the
215         GNU/Hurd.  Don't overwrite but extend $cflags_final.  Likewise for
216         --libs.
217
218 2004-03-10  Marcus Brinkmann  <marcus@g10code.de>
219
220         * Makefile.am (ltlib_libgcrypt_pthread, ltlib_libgcrypt_pth): Removed.
221         (lib_LTLIBRARIES): Remove those variables from here.
222         (libgcrypt_pthread_la_SOURCES, libgcrypt_pthread_la_LDFLAGS,
223         (libgcrypt_pthread_la_DEPENDENCIES, libgcrypt_pthread_la_LIBADD,
224         (libgcrypt_pth_la_SOURCES, libgcrypt_pth_la_LDFLAGS,
225         (libgcrypt_pth_la_DEPENDENCIES, libgcrypt_pth_la_LIBADD,
226         (noinst_LTLIBRARIES): Removed.
227         (libgcrypt_real_la_SOURCES): Merge with ...
228         (libgcrypt_la_SOURCES): ... likewise.
229         (libgcrypt_real_la_DEPENDENCIES): Merge with ...
230         (libgcrypt_la_DEPENDENCIES): ... this.
231         (libgcrypt_real_la_LIBADD): Merge with ...
232         (libgcrypt_la_LIBADD): ... this.
233         * libgcrypt-config.in (libs_pthread, libs_pth, cflags_pth) 
234         (cflags_pthread, thread_module, thread_modules): Removed.
235         (Options): Remove --thread option from help output.  If the option
236         is specified, output an error and exit.
237         For --cflags and --libs option, remove pth and pthread from output.
238         * gcrypt.h: Include <sys/types.h> and <sys/socket.h>.
239         (enum gcry_ctl_cmds): Add GCRYCTL_SET_THREAD_CBS.
240         (gcry_thread_cbs): New struct.
241         * global.c (gcry_control): Implement GCRYCTL_SET_THREAD_CBS.
242         (global_init): Don't call ath_init here.
243         * ath.h: Rewritten.
244         * ath.c: Rewritten.
245
246 2004-03-06  Werner Koch  <wk@gnupg.org>
247
248         * libgcrypt-config.in: s/--soname-number/--api-version/
249         * libgcrypt.m4: Changed test for API version.
250
251 2004-03-05  Werner Koch  <wk@gnupg.org>
252
253         * libgcrypt.m4: Optionally check the SONAME number.
254
255         * libgcrypt-config.in: Add option --soname-number
256
257 2004-03-01  Marcus Brinkmann  <marcus@g10code.de>
258
259         * Makefile.am (libgcrypt_la_SOURCES): Add ath.c.
260         * ath.c (ath_init): Add missing function.
261
262         * Makefile.am (ath_pth_src): Removed.
263         (ath_pthread_src): Removed.
264         (libgcrypt_la_SOURCES): Remove ath-compat, $(ath_pth_src) and
265         $(ath_pthread_src).
266         * ath-compat.c, ath-pth-compat.c, ath-pthread-compat.c: Files
267         removed.
268         
269 2004-02-20  Werner Koch  <wk@gnupg.org>
270
271         * gcrypt.h (GCRY_PRIME_CHECK_AT_GOT_PRIME)
272         (GCRY_PRIME_CHECK_AT_FINISH),
273         (GCRY_PRIME_CHECK_AT_MAYBE_PRIME): New.
274
275 2004-02-18  Werner Koch  <wk@gnupg.org>
276
277         * libgcrypt-config.in: Ignore setting of --prefix.
278
279 2004-02-13  Werner Koch  <wk@gnupg.org>
280
281         * gcrypt.h: Added GCRY_CIPHER_RFC2268_128, alsthough not yet
282         supported.
283
284 2004-02-06  Werner Koch  <wk@gnupg.org>
285
286         * gcrypt.h: Added GCRY_CIPHER_RFC2268_40.
287
288 2004-02-03  Werner Koch  <wk@gnupg.org>
289
290         * secmem.c (_gcry_secmem_init): Do not print the "not locked into
291         core warning" if the NO_WARNING flag has been set.
292
293         * sexp.c (sexp_sscan): Allocate result in secure memory if BUFFER
294         is in secure memory. Switch to secure memory for the a secure %b
295         format item. Extra paranoid wipe on error.
296         (gcry_sexp_release): Added paranoid wiping for securely allocated
297         S-expressions.
298
299 2004-01-25  Moritz Schulte  <mo@g10code.com>
300
301         * ath.h: Include <config.h>.
302
303 2004-01-12  Moritz Schulte  <mo@g10code.com>
304
305         * gcrypt.h: Adjusted declarations of: gcry_ac_data_set,
306         gcry_ac_data_get_name, gcry_ac_data_get_index,
307         gcry_ac_key_pair_generate, gcry_ac_key_test,
308         gcry_ac_key_get_nbits, gcry_ac_key_get_grip.
309
310         * gcrypt.h (GCRY_AC_FLAG_DATA_NO_BLINDING): Removed symbol.
311         (GCRY_AC_FLAG_DEALLOC, GCRY_AC_FLAG_COPY) 
312         (GCRY_AC_FLAG_NO_BLINDING): New symbols.
313
314         * global.c (gcry_strdup): Removed function.
315         * string.c: New file.
316         * Makefile.am (libgcrypt_real_la_SOURCES): Added: string.c.
317         * string.c (gcry_strdup): New function.
318         * gcrypt.h (gcry_strdup): Declare.
319
320 2003-12-19  Werner Koch  <wk@gnupg.org>
321
322         * g10lib.h (wipememory, wipememory2): New; taken from gnupg.
323
324 2003-11-14  Werner Koch  <wk@gnupg.org>
325
326         * global.c (gcry_strdup): Don't copy the string after a malloc
327         error.
328
329 2003-11-11  Werner Koch  <wk@gnupg.org>
330
331         * sexp.c (sexp_sscan): Implemented "%b" format specifier.
332
333 2003-11-11  Moritz Schulte  <mo@g10code.com>
334
335         * libgcrypt.m4: Do not set prefix when calling libgcrypt-config.
336         Thanks to Nikos Mavroyanopoulos.
337
338 2003-11-08  Moritz Schulte  <mo@g10code.com>
339
340         * cipher.h (small_prime_numbers): Removed declaration.
341         (PUBKEY_FLAG_NO_BLINDING): Put braces around shift.
342
343 2003-11-04  Werner Koch  <wk@gnupg.org>
344
345         * cipher.h (_gcry_sha1_has_buffer): New.
346
347         * gcrypt.h (gcry_create_nonce): New.
348
349 2003-10-31  Werner Koch  <wk@gnupg.org>
350
351         * libgcrypt.vers (_gcry_generate_elg_prime): Removed this symbol;
352         gnutls does not need it anymore.
353
354         * secmem.c (mb_get_new): s/pool/block/ due to global pool.
355
356         * misc.c (gcry_set_log_handler): s/logf/f/ to avoid shadowing
357         warning against a builtin.
358
359         * ath-pth-compat.c: cast pth_connect to get rid of the const
360         prototype.
361
362 2003-10-27  Werner Koch  <wk@gnupg.org>
363
364         * ath.h (ATH_MUTEX_INITIALIZER): Removed spurious semicolon.
365
366 2003-10-27  Moritz Schulte  <mo@g10code.com>
367
368         * libgcrypt-config.in: Include libs/cflags of libgpg-error.
369
370         * sexp.c (sexp_sscan): Cleaned up, deallocate scanned sexp on
371         error.
372
373         * module.c (MODULE_ID_MIN): New symbol, use it.
374
375 2003-10-27  Werner Koch  <wk@gnupg.org>
376
377         * gcrypt.h (gcry_pk_testkey): Doc fix.
378
379 2003-09-29  Moritz Schulte  <mo@g10code.com>
380
381         * libgcrypt-config.in: Fix --algorithms option.
382
383 2003-10-23  Werner Koch  <wk@gnupg.org>
384
385         * gcrypt.h (gcry_err_code): Use GPG_ERR_INLINE instead of
386         __inline__.
387
388         * secmem.c (lock_pool): Don't print the warning for certain
389         systems, handle ENOMEM.
390
391 2003-10-21  Werner Koch  <wk@gnupg.org>
392
393         * secmem.c (_gcry_secmem_dump_stats): Fixed format sepcifier for a
394         size_t.  Reported by Stephane Corthesy.
395
396 2003-10-10  Werner Koch  <wk@gnupg.org>
397
398         * global.c (_gcry_malloc): Handle the no_secure_memory option.
399
400         * gcrypt.h (gcry_prime_group_generator): New.
401         (gcry_prime_release_factors): New.
402
403 2003-10-07  Werner Koch  <wk@gnupg.org>
404
405         * sexp.c (sexp_sscan): Check that parenthesis are matching.
406
407 2003-09-28  Moritz Schulte  <mo@g10code.com>
408
409         * g10lib.h: Declare: _gcry_malloc.
410         (GCRY_ALLOC_FLAG_SECURE): New symbol.
411
412         * global.c (_gcry_malloc): New function...
413         (gcry_malloc): ... use it.
414         (gcry_malloc_secure): Likewise.
415
416         * ath.c: Change License to LGPL.
417         * ath-pthread-compat.c: Likewise.
418         * ath-pthread.c: Likewise.
419         * ath-pth-compat.c: Likewise.
420         * ath-pth.c: Likewise.
421         * ath.h: Likewise.
422         * ath-compat.c: Likewise.
423
424         * secmem.c (_gcry_secmem_realloc): Do not forget to release secmem
425         lock.  Thanks to low halo for triggering this bug.
426
427 2003-09-04  Werner Koch  <wk@gnupg.org>
428
429         * gcrypt.h (_GCRY_ERR_SOURCE_DEFAULT): Removed cruft.
430         (gcry_prime_check_func_t): Renamed arg for clarity.
431
432 2003-09-02  Moritz Schulte  <mo@g10code.com>
433
434         * gcrypt.h (GCRY_PRIME_FLAG_SPECIAL_FACTOR): New symbol.
435
436 2003-09-01  Moritz Schulte  <mo@g10code.com>
437
438         * gcrypt.h (gcry_random_level_t): New type.
439         (gcry_prime_check_func_t): Likewise.
440         (GCRY_PRIME_FLAG_SECRET): New symbol.
441         (gcry_prime_generate, gcry_prime_check): Declare functions.
442
443 2003-08-28  Werner Koch  <wk@gnupg.org>
444
445         * Makefile.am (libgcrypt_pth_la_LDFLAGS): Removed PTH_CFLAGS cruft.
446
447 2003-08-27  Moritz Schulte  <mo@g10code.com>
448
449         * global.c (gcry_control): Remove call to ath_deinit.
450
451         * Makefile.am (libgcrypt_real_la_DEPENDENCIES): Fixed.
452         (libgcrypt_real_la_LIBADD): Fixed.
453         Removed unecessary variables.
454
455         * libgcrypt-config.in: Adjusted script for new thread handling.
456
457         * Makefile.am: New version, based on GPGMEs Makefile.am.
458
459         * ath.c, ath-compat.c, ath.h, ath-pth.c, ath-pth-compat.c,
460         ath-pthread.c, ath-pthread-compat.c: New files, merged from GPGME.
461         * ath.c, ath.h, ath-pthread.c, ath-pth.c: Removed files.
462
463 2003-08-08  Moritz Schulte  <moritz@g10code.com>
464
465         * global.c (gcry_realloc): Remove FIXME about `clearing out
466         realloced memory', since _gcry_secmem_realloc takes care of
467         overwriting old memory.
468
469 2003-08-07  Werner Koch  <wk@gnupg.org>
470
471         * module.c (_gcry_module_release): Don't act if module is NULL.
472
473 2003-07-30  Moritz Schulte  <moritz@g10code.com>
474
475         * gcrypt.h (enum gcry_ac_id): Added: GCRY_AC_ELG_E.
476         Reverted change: use gcry_md_flags enumeration list instead of
477         defines.
478
479 2003-07-29  Werner Koch  <wk@gnupg.org>
480
481         * global.c (gcry_control): Add GCRYCTL_SET_RANDOM_SEED_FILE and
482         GCRYCTL_UPDATE_RANDOM_SEED_FILE.
483         * gcrypt.h: Ditto.  Renamed index to idx, so avoid warning
484         related to the old index function.
485
486 2003-07-28  Moritz Schulte  <moritz@g10code.com>
487
488         * global.c (gcry_err_code_from_errno, gcry_err_code_to_errno)
489         (gcry_err_make_from_errno, gcry_error_from_errno): New functions.
490
491         * gcrypt.h: Declared: gcry_err_code_from_errno,
492         gcry_err_code_to_errno, gcry_err_make_from_errno,
493         gcry_error_from_errno.
494
495         * Makefile.am (include_HEADERS): Added: gcrypt-module.h.
496
497         * gcrypt.h: Include <gcrypt-module.h>.
498
499         * gcrypt-module.h: New file.
500
501 2003-07-27  Werner Koch  <wk@gnupg.org>
502
503         * gcrypt.h (gcry_mpi_scan, gcry_mpi_print): API change.
504         (gcry_mpi_dump): New.
505
506 2003-07-21  Moritz Schulte  <moritz@g10code.com>
507
508         * gcrypt.h: Declared: gcry_ac_key_data_get.
509         (gcry_pk_spec): Renamed member `sexp_names' into `aliases'.
510
511 2003-07-20  Moritz Schulte  <moritz@g10code.com>
512
513         * gcrypt.h (gcry_md_oid_spec_t): New type.
514         (gcry_md_spec): New member: oids.
515
516 2003-07-19  Moritz Schulte  <moritz@g10code.com>
517
518         * gcrypt.h (gcry_cipher_oid_spec_t): New type.
519         (gcry_cipher_spec): New member: oids;
520
521 2003-07-18  Werner Koch  <wk@gnupg.org>
522
523         * gcrypt.h (gcry_mpi_set_opaque): Add a warning comment.
524
525 2003-07-15  Moritz Schulte  <moritz@g10code.com>
526
527         * secmem.c (compress_pool): Remove function, since unused blocks
528         are automatically concatenad.
529
530         * gcrypt.h: Bumped version number up to 1.1.42-cvs.
531
532 2003-07-14  Moritz Schulte  <moritz@g10code.com>
533
534         * gcrypt.h (gcry_cipher_spec): New member: aliases.
535
536         * Makefile.am (noinst_PROGRAMS, testapi_SOURCES, testapai_LDADD,
537         benchmark_SOURCES, benchmark_LDADD): Removed.
538
539         * benchmark.c, testapi.c: Removed files.
540
541         * mpi.h: Removed disabled typedef.
542         * g10lib.h: Likewise.
543
544         * benchmark.c, g10lib.h, gcrypt.h, global.c, module.c, sexp.c:
545         Used gcry_err* wrappers for libgpg-error symbols.
546
547 2003-07-12  Moritz Schulte  <moritz@g10code.com>
548
549         * global.c: Likewise.
550
551         * gcrypt.h: New type: gcry_error_t, gcry_err_code_t and
552         gcry_err_source_t.
553         (gcry_err_make, gcry_error, gcry_err_code, gcry_err_source): New
554         functions.
555
556         * global.c (gcry_strerror): New function.
557         (gcry_strsource): New function.
558
559         * gcrypt.h: New symbol: GCRY_CIPHER_TWOFISH128.
560
561 2003-07-09  Moritz Schulte  <moritz@g10code.com>
562
563         * gcrypt.h (enum gcry_md_flags): Removed, used define instead,
564         since that is more common than an enumeration list when it comes
565         to flags that can be bitwise ORed.
566         
567 2003-07-08  Moritz Schulte  <moritz@g10code.com>
568
569         * global.c: Use new types for handlers.
570
571         * gcrypt.h: Declare: gcry_ac_data_copy.
572
573 2003-07-07  Moritz Schulte  <moritz@g10code.com>
574
575         * sexp.c (gcry_sexp_build_array): Use dummy argument pointer.
576         Thanks to Simon Josefsson <jas@extunde.com>.
577
578         * gcrypt.h: Declare: gcry_cipher_list, gcry_pk_list, gcry_md_list.
579         
580 2003-07-05  Moritz Schulte  <moritz@g10code.com>
581
582         * gcrypt.h: Declare: gcry_cipher_register, gcry_cipher_unregister,
583         gcry_md_register, gcry_md_unregister, gcry_pk_register,
584         gcry_pk_unregister.
585         (gcry_cipher_spec): Removed member: algorithm.
586         (gcry_pk_spec): Likewise.
587         (gcry_md_spec): Likewise.
588         Adjusted declarations: gcry_cipher_register, gcry_pk_register,
589         gcry_md_register.
590
591         * module.c: Replaced all occurences of `id' with `mod_id', since
592         `id' is a keyword in obj-c.
593
594         * gcrypt.h (gcry_cipher_spec): Renamed member `id' to `algorithm'.
595         (gcry_pk_spec): Likewise.
596         (gcry_md_spec): Likewise.
597
598         * cipher.h: Removed types: gcry_pubkey_generate_t,
599         gcry_pubkey_check_secret_key_t, gcry_pubkey_encrypt_t,
600         gcry_pubkey_decrypt_t, gcry_pubkey_sign_t, gcry_pubkey_verify_t,
601         gcry_pubkey_get_nbits_t, gcry_pk_spec_t, gcry_digest_init_t,
602         gcry_digest_write_t, gcry_digest_final_t, gcry_digest_read_t,
603         gcry_digest_spec_t, gcry_cipher_setkey_t, gcry_cipher_encrypt_t,
604         gcry_cipher_decrypt_t, gcry_cipher_stencrypt_t,
605         gcry_cipher_stdecrypt_t, gcry_cipher_spec_t.
606
607         * gcrypt.h: New types: gcry_pk_generate_t,
608         gcry_pk_check_secret_key_t, gcry_pk_encrypt_t, gcry_pk_decrypt_t,
609         gcry_pk_sign_t, gcry_pk_verify_t, gcry_pk_get_nbits_t,
610         gcry_pk_spec_t, gcry_md_init_t, gcry_md_write_t, gcry_md_final_t,
611         gcry_md_read_t, gcry_md_spec_t, gcry_cipher_setkey_t,
612         gcry_cipher_encrypt_t, gcry_cipher_decrypt_t,
613         gcry_cipher_stencrypt_t, gcry_cipher_stdecrypt_t,
614         gcry_cipher_spec_t, gcry_module_t.
615
616 2003-07-04  Moritz Schulte  <moritz@g10code.com>
617
618         * module.c (_gcry_module_list): New function.
619
620 2003-07-02  Moritz Schulte  <moritz@g10code.com>
621
622         * module.c (_gcry_module_lookup): Fixed typo.
623
624         * gcrypt.h: Added all definitions and declarations necessary for
625         the new ac interface.
626
627 2003-06-30  Moritz Schulte  <moritz@g10code.com>
628
629         * g10lib.h: Added declarations: _gcry_pk_module_lookup,
630         _gcry_pk_module_release.
631
632 2003-06-18  Werner Koch  <wk@gnupg.org>
633
634         * benchmark.c (cipher_bench): Adjusted for new API of get_blklen
635         and get_keylen.
636
637         * gcrypt.h (gcry_cipher_get_algo_blklen)
638         (gcry_cipher_get_algo_keylen): Replaced macro by funcion.
639
640 2003-06-18  Moritz Schulte  <moritz@g10code.com>
641
642         * cipher.h: Renamed types GcryDigestSpec, GcryCipherSpec and
643         GcryPubkeySpec into: gcry_digest_spec_t, gcry_cipher_spec_t and
644         gcry_pubkey_spec_t.
645         (gcry_pubkey_spec): Defined member `id' as unsigned.
646         (gcry_digest_spec): Likewise.
647         (gcry_cipher_spec): Likewise.
648
649         * module.c (_gcry_module_id_new): New function.
650         (_gcry_module_add): Generate a new ID via _gcry_module_id_new in
651         case `id' is zero.
652
653         * g10lib.h, module.c: Replace old type GcryModule with newer one:
654         gcry_module_t.
655
656         * module.c (_gcry_module_add): Added argument `id', use it.
657
658         * g10lib.h: Added declaration: _gcry_module_lookup_id.
659         (_gcry_module_add): Added argument `id'.
660
661         * module.c (_gcry_module_lookup_id): New function.
662
663         * g10lib.h (struct gcry_module): New member: id.
664
665         * gcrypt.h: New type: gcry_handler_progress_t,
666         gcry_handler_alloc_t, gcry_haandler_secure_check_t,
667         gcry_handler_realloc_t, gcry_handler_free_t,
668         gcry_handler_no_mem_t, gcry_handler_error_t, gcry_handler_log_t.
669         Use new types.
670
671         * cipher.h: Include <gcrypt.h>.
672         New types: gcry_pk_generate_t, gcry_pk_check_secret_key_t,
673         gcry_pk_encrypt_t, gcry_pk_decrypt_t, gcry_pk_sign_t,
674         gcry_pk_verify_t, gcry_pk_get_nbits_t, gcry_md_init_t,
675         gcry_md_write_t, gcry_md_final_t, gcry_md_read_t,
676         gcry_cipher_setkey_t, gcry_cipher_encrypt_t,
677         gcry_cipher_decrypt_t, gcry_cipher_stencrypt_t,
678         gcry_cipher_stdecrypt_t.
679         Use new types.
680
681 2003-06-17  Moritz Schulte  <moritz@g10code.com>
682
683         * Makefile.am (AM_CFLAGS): Added: @GPG_ERROR_CFLAGS@.
684
685 2003-06-16  Moritz Schulte  <moritz@g10code.com>
686
687         * g10lib.h: Replace last occurences of old type names with newer
688         names (i.e. replace MPI with gcry_mpi_t).
689         * mpi.h: Likewise.
690         * sexp.c: Likewise.
691
692 2003-06-15  Moritz Schulte  <moritz@g10code.com>
693
694         * testapi.c (test_genkey): Use gpg_strerror instead of
695         gcry_strerror.
696
697         * global.c (gcry_control): Fixed typo.
698
699         * misc.c (_gcry_fatal_error): Use gpg_strerror instead of
700         gcry_strerror.
701
702         * types.h (STRLIST): Removed type since it is not used.
703
704 2003-06-11  Moritz Schulte  <moritz@g10code.com>
705
706         * global.c (global_init): Call: _gcry_cipher_init, _gcry_md_init,
707         _gcry_pk_init.
708
709         * g10lib.h: Declare: _gcry_cipher_init, _gcry_md_init,
710         _gcry_pk_init.
711         
712         * global.c (gcry_strerror): Remove compatibility code.
713
714         * Makefile.am: Remove support libgpg-error special handling.
715         (AM_CPPFLAGS): Add @GPG_ERROR_CFLAGS@
716
717         * gcrypt.h: Likewise.
718
719 2003-06-13  Werner Koch  <wk@gnupg.org>
720
721         * gcrypt.h (gcry_md_get_algo): Reverted to old API.  This is a
722         convenience function anyway and error checking is not approriate.
723         (gcry_md_is_enabled): New.
724         (gcry_md_is_secure): Replaced macro by function and reverted to old
725         API.
726
727 2003-06-11  Werner Koch  <wk@gnupg.org>
728
729         * gcrypt.h (GCRYERR): Define _GCRY_ERR_SOURCE_DEFAULT instead of
730         GPG_ERR_SOURCE_DEFAULT, so that libgpg-error still works despite
731         the use of the old gcrypt error codes.
732         (gcry_md_copy): Swapped arguments.
733         
734 2003-06-09  Moritz Schulte  <moritz@g10code.com>
735
736         * Makefile.am: Support for libgpg-error.
737
738 2003-06-08  Moritz Schulte  <moritz@g10code.com>
739
740         * sexp.c (gcry_sexp_create): Expect sane error values from
741         gcry_sexp_canon_len instead of the `historical' values.
742
743 2003-06-07  Moritz Schulte  <moritz@g10code.com>
744
745         * ath.c, ath.c, ath-pth.c, ath-pthread.c, benchmark.c, cipher.h,
746         g10lib.h, gcrypt.h, global.c, misc.c, missing-string.c, module.c,
747         mpi.h, secmem.c, secmem.h, sexp.c, stdmem.c, stdmem.h, testapi.c,
748         types.h: Edited all preprocessor instructions to remove whitespace
749         before the '#'.  This is not required by C89, but there are some
750         compilers out there that don't like it.  Replaced any occurence of
751         the now deprecated type names with the new ones.
752         
753         * gcrypt.h: Re-organized checking for gcc features; New macro:
754         _GCRY_GCC_ATTR_DEPRECATED.
755         Include copy of libgpg-error's gpg-error.h in order to make it
756         easy to build libgcrypt without needing libgpg-error.h.
757
758         (GCRY_MPI, GcryMPI, GCRY_SEXP, GcrySexp, GCRY_CIPHER_HD,
759         GcryCipherHd, GCRY_MD_HD, GcryMDHd): Declared deprecated.
760         (gcry_mpi_t, gcry_sexp_t, gcry_cipher_hd_t, gcry_md_hd_t): New
761         types.
762
763 2003-06-04  Moritz Schulte  <moritz@g10code.com>
764
765         * sexp.c (sexp_sscan): New argument: arg_list, adjusted all
766         callers.
767         (ARG_NEXT): New macro.
768         (sexp_sscan): Use ARG_NEXT for receiving format string arguments.
769         (gcry_sexp_build_array): New function.
770
771 2003-06-02  Moritz Schulte  <moritz@g10code.com>
772
773         * gcrypt.h: Added some comments describing the gcry_sexp_*
774         functions.
775         Include <gpg-error.h> instead of <gpg/error.h>.
776
777 2003-06-01  Moritz Schulte  <moritz@g10code.com>
778
779         * sexp.c (OLDPARSECODE): Removed macro...
780         (gcry_sexp_canon_len): ... and do not use it.
781
782         * gcrypt.h (gcry_errno): Removed declaration.
783
784         * g10lib.h (string_to_pubkey_algo, pubkey_algo_to_string,
785         pubkey_nbits): Removed declarations for non-existing functions.
786
787 2003-05-31  Moritz Schulte  <moritz@g10code.com>
788
789         * cipher.h (is_RSA, is_ELGAMAL): Removed macros.
790
791         * g10lib.h (set_lasterr): Removed macro.
792         (_gcry_set_lasterr): Removed declaration.
793
794         * gcrypt.h: Changed declarations for: gcry_pk_algo_info,
795         gcry_md_open, gcry_md_copy, gcry_md_algo_info, gcry_md_info,
796         gcry_md_get_algo, gcry_random_add_bytes.
797         
798         (gcry_md_is_secure): Adjust macro for new API.
799
800 2003-05-29  Moritz Schulte  <moritz@g10code.com>
801
802         * gcrypt.h: Changed declarations for: gcry_cipher_open,
803         gcry_cipher_info, gcry_cipher_algo_info.
804         (gcry_cipher_get_algo_keylen): Adjuster for new
805         gcry_cipher_algo_info interface.
806         (gcry_cipher_get_algo_blklen): Likewise.
807
808         * global.c (gcry_errno): Removed function.
809         (gcry_strerror): Do not use gcry_errno.
810         (_gcry_set_lasterr): Removed function.
811         (last_ec): Removed variable.
812
813 2003-05-27  Moritz Schulte  <moritz@g10code.com>
814
815         * gcrypt.h (enum gcry_cipher_algos): Make Serpent IDs do not
816         conflict with OpenPGP.  Reported by Timo Schulz.
817
818         * global.c (gcry_control): Fixed name of enum list.
819
820 2003-05-25  Moritz Schulte  <moritz@g10code.com>
821
822         * cipher.h (gcry_cipher_spec): Adjust return type of `setkey' for
823         libgpg-error.
824         (gcry_pubkey_spec): Adjust return type of `generate',
825         `check_secret_key', `encrypt', `decrypt', `sign' and `verify' for
826         libgpg-error.
827
828         * sexp.c (gcry_sexp_canon_len): Adjusted for libgpg-error.
829         (gcry_sexp_create): Likewise.
830         (gcry_sexp_new): Likewise.
831         (sexp_sscan): Likewise.
832         (gcry_sexp_build): Likewise.
833         (gcry_sexp_sscan): Likewise.
834
835         * module.c (_gcry_module_add): Likewise.
836
837         * global.c (last_ec): Change type to gpg_error_t.
838         (gcry_control): Adjust for libgpg-error.
839         (gcry_errno): Likewise.
840         (gcry_strerror): Likewise.
841         (_gcry_set_lasterr): Likewise.
842         (gcry_xmalloc): Likewise.
843         (gcry_xrealloc): Likewise.
844
845 2003-05-22  Moritz Schulte  <moritz@g10code.com>
846
847         * types.h: Merged code from GnuPG regarding U64_C.
848
849         * missing-string.c (strsep): Removed function.
850
851         * g10lib.h: Removed declarations: strsep, strlwr.
852
853         * secmem.c (secmem_lock): New variable.
854         (SECMEM_LOCK, SECMEM_UNLOCK): New macros.
855         (_gcry_secmem_set_flags): Use SECMEM_LOCK and SECMEM_UNLOCK.
856         (_gcry_secmem_get_flags): Likewise.
857         (_gcry_secmem_init): Likewie.
858         (_gcry_secmem_malloc): Likewise.
859         (_gcry_secmem_free): Likewise.
860         (_gcry_secmem_malloc): Renamed to ...
861         (_gcry_secmem_malloc_internal): ... this.
862         (_gcry_secmem_malloc): New function, use SECMEM_LOCK,
863         SECMEM_UNLOCK, call _gcry_secmem_malloc_internal.
864         (_gcry_secmem_free): Renamed to ...
865         (_gcry_secmem_free_internal): ... this.
866         (_gcry_secmem_free): New function, use SECMEM_LOCK, SECMEM_UNLOCK,
867         call _gcry_secmem_free_internal.
868         (_gcry_secmem_realloc): Use SECMEM_LOCK, SECMEM_UNLOCK, call
869         _gcry_secmem_malloc_internal and _gcry_secmem_free_internal.
870         (_gcry_private_is_secure): Use SECMEM_LOCK, SECMEM_UNLOCK.
871         (_gcry_secmem_dump_stats): Likewise.
872         (_gcry_secmem_malloc_internal): Removed unused variable:
873         compressed.
874         Include "ath.h".
875
876 2003-05-21  Moritz Schulte  <moritz@g10code.com>
877
878         * gcrypt.h (GCRY_CIPHER_SERPENT128, GCRY_CIPHER_SERPENT192,
879         GCRY_CIPHER_SERPENT256): New symbols.
880
881 2003-05-19  Moritz Schulte  <moritz@g10code.com>
882
883         * gcrypt.h: Reversed changes from 2003-03-03 since they would have
884         been an unnecessary ABI break.
885
886 2003-05-13  Moritz Schulte  <moritz@g10code.com>
887
888         * secmem.c (stats_update): New function.
889         (BLOCK_HEAD_SIZE): New symbol.
890         (MB_FLAG_ACTIVE): New symbol.
891         (ADDR_TO_BLOCK, BLOCK_VALID): New macros.
892         (mb_get_next): New function.
893         (mb_get_prev): New function.
894         (mb_merge): New function.
895         (mb_get_new): New function.
896         (unused_blocks): Removed variable.
897         (init_pool): Initialize new memory pool.
898         (_gcry_secmem_malloc): Use new heap management code.
899         (_gcry_secmem_free): Likewise.
900         (_gcry_secmem_realloc): Likewise.
901         Renamed type MEMBLOCK to memblock_t.
902
903 2003-04-27  Moritz Schulte  <moritz@g10code.com>
904
905         * cipher.h (gcry_pubkey_spec): New member: sexp_names.
906
907 2003-04-23  Moritz Schulte  <moritz@g10code.com>
908
909         * cipher.h (gcry_pubkey_spec): Removed members: npkey, nskey,
910         nenc, nsig.
911         (gcry_pubkey_spec): Added members: elements_pkey, elements_skey,
912         elements_enc, elements_sig, elements_grip.
913
914 2003-04-17  Moritz Schulte  <moritz@g10code.com>
915
916         * g10lib.h (GcryModule): New typedef.
917
918         * gcrypt.h (gcry_cipher_register, gcry_cipher_unregister,
919         gcry_digest_register, gcry_digest_unregister,
920         gcry_pubkey_register, gcry_pubkey_unregister): Function
921         declarations removed - for now.
922         
923         * gcrypt.h (GcryModule): Declaration removed.
924         * gcrypt.h (GcryPubkeySpec, GcryDigestSpec, GcryCipherSpec):
925         Types Moved... 
926         * cipher.h: ... here.
927
928 2003-04-17  Moritz Schulte  <moritz@g10code.com>
929
930         * cipher.h: Declare digest_spec_sha512 and digest_spec_384.
931
932 2003-04-16  Moritz Schulte  <moritz@g10code.com>
933
934         * module.c (_gcry_module_use): New function.
935         * g10lib.h (_gcry_module_use): Declare function.
936
937         * libgcrypt-config.in: Support for --algorithms switch, which
938         prints the algorithms included in the built libgcrypt.
939
940         * global.c (gcry_set_progress_handler): Register progress
941         functions depending on the enabled algorithms.
942
943 2003-04-07  Moritz Schulte  <moritz@g10code.com>
944
945         * Makefile.am (libgcrypt_la_SOURCES): Added module.c
946
947         * module.c: New file.
948         (_gcry_module_add): New function.
949         (_gcry_module_drop): New function.
950         (_gcry_module_lookup): New function.
951         (_gcry_module_release): New function.
952
953         * g10lib.h (GcryModule): New types.
954         (FLAG_MODULE_DISABLED): New symbol.
955         Added declarations for _gcry_module_add, _gcry_module_release and
956         _gcry_module_lookup.
957
958         * gcrypt.h: New types: GcryPubkeySpec, GcryDigestSpec,
959         GcryCipherSpec.
960         Added declarations for: gcry_cipher_register,
961         gcry_cipher_unregister, gcry_digest_register,
962         gcry_digest_unregister, gcry_pubkey_register and
963         gcry_pubkey_unregister.
964
965         * cipher.h: Removed symbols: CIPHER_ALGO_NONE, CIPHER_ALGO_IDEA,
966         CIPHER_ALGO_3DES, CIPHER_ALGO_CAST5, CIPHER_ALGO_BLOWFISH,
967         CIPHER_ALGO_SAFER_SK128, CIPHER_ALGO_DES_SK, CIPHER_ALGO_TWOFISH,
968         CIPHER_ALGO_TWOFISH_OLD, CIPHER_ALGO_DUMMY, PUBKEY_USAGE_SIG,
969         PUBKEY_USAGE_ENC, DIGEST_ALGO_MD5, DIGEST_ALGO_SHA1,
970         DIGEST_ALGO_RMD160, DIGEST_ALGO_TIGER, PUBKEY_ALGO_RSA,
971         PUBKEY_ALGO_RSA_E, PUBKEY_ALGO_RSA_S, PUBKEY_ALGO_DSA,
972         PUBKEY_ALGO_ELGAMAL, PUBKEY_ALGO_ELGAMAL_E.
973
974 2003-04-02  Moritz Schulte  <moritz@g10code.com>
975
976         * benchmark.c (md_bench): Fix error message.
977
978 2003-03-31  Moritz Schulte  <moritz@g10code.com>
979
980         * benchmark.c (cipher_bench): Added CTR mode.
981
982 2003-03-30  Simon Josefsson  <jas@extundo.com>
983
984         * gcrypt.h (enum gcry_control_cmds): Add GCRY_SET_CTR.
985         (enum gcry_cipher_modes): Add GCRY_CIPHER_MODE_CTR.
986         (gcry_cipher_setctr): New macro to set counter.
987
988 2003-03-19  Moritz Schulte  <moritz@g10code.com>
989
990         * cipher.h (PUBKEY_FLAG_NO_BLINDING): New symbol.
991
992 2003-03-22  Simon Josefsson  <jas@extundo.com>
993
994         * gcrypt.h: Add GCRYCTL_SET_CBC_MAC and GCRY_CIPHER_CBC_MAC.
995
996 2003-03-19  Werner Koch  <wk@gnupg.org>
997
998         * g10lib.h: Adjusted primegen.c prototypes.
999
1000 2003-03-12  Werner Koch  <wk@gnupg.org>
1001
1002         * sexp.c (sexp_sscan): Initialize NM.  Thanks to Ian Peters for
1003         valgrinding this.
1004
1005 2003-03-06  Moritz Schulte  <mo@g10code.com>
1006
1007         * secmem.h (GCRY_SECMEM_FLAG_NO_WARNING,
1008         GCRY_SECMEM_FLAG_SUSPEND_WARNING): New symbols.
1009
1010         * global.c (gcry_control): Use
1011         GCRY_SECMEM_FLAG_{NO,SUSPEND}_WARNING, instead of hard-coded
1012         values.
1013         * secmem.c (_gcry_secmem_set_flags): Likewise.
1014         * secmem.c (_gcry_secmem_get_flags): Likewise.
1015         
1016 2003-03-03  Moritz Schulte  <moritz@g10code.com>
1017
1018         * misc.c: Removed old FIXME, since there is already a function to
1019         set the value of `verbosity_level'.
1020
1021         * gcrypt.h: Removed enumeration list: gcry_ctl_cmds.
1022         New enumeration lists: gcry_global_control_cmds,
1023         gcry_control_cmds, gcry_info_cmds, gcry_algo_info_cmds.
1024
1025 2003-03-02  Moritz Schulte  <moritz@g10code.com>
1026
1027         * gcrypt.h (gcry_cipher_reset): New macro for resetting a handle.
1028
1029 2003-02-28  Moritz Schulte  <moritz@g10code.com>
1030
1031         * secmem.c (DEFAULT_PAGESIZE): New symbol.
1032         (init_pool): Use DEFAULT_PAGESIZE.
1033
1034 2003-02-23  Moritz Schulte  <moritz@g10code.com>
1035
1036         * secmem.h: Fix typo in declaration of _gcry_secmem_term.
1037
1038         * sexp.c: Move macro definitions of `digitp', `octdigit', `alphap'
1039         and `hexdigit' ...
1040         * g10lib.h: ... here.
1041
1042         * misc.c (_gcry_burn_stack): New function (former name:
1043         burn_stack).
1044
1045         * g10lib.h (burn_stack): Declare _gcry_burn_stack().
1046
1047 2003-01-24  Werner Koch  <wk@gnupg.org>
1048
1049         * global.c (gcry_set_progress_handler): Register a random progress
1050         handler.
1051
1052 2003-01-23  Werner Koch  <wk@gnupg.org>
1053
1054         * gcrypt.h (GCRY_ENABLE_QUICK_RANDOM): New. 
1055         * global.c (gcry_control): Make use of it.
1056
1057 2003-01-21  Werner Koch  <wk@gnupg.org>
1058
1059         * gcrypt.h (gcry_random_add_bytes): Add QUALITY argument.
1060
1061 2003-01-21  Timo Schulz  <twoaday@freakmail.de>
1062
1063         * gcrypt.h (gcry_random_add_bytes): New.
1064         
1065 2003-01-20  Simon Josefsson  <jas@extundo.com>
1066
1067         * gcrypt.h (gcry_md_algos): Add GCRY_MD_CRC32,
1068         GCRY_MD_CRC32_RFC1510, GCRY_MD_CRC24_RFC2440.
1069
1070 2003-01-16  Werner Koch  <wk@gnupg.org>
1071
1072         * gcrypt.h (gcry_md_write): Changed type of 2nd argument to void*.
1073         (gcry_md_hash_buffer): Changed type of both buffers to void*.
1074         (gcry_md_setkey): Changed type of 2nd argument to void*.
1075         (gcry_md_get_asnoid): New.
1076
1077 2003-01-15  Werner Koch  <wk@gnupg.org>
1078
1079         * sexp.c (gcry_sexp_length): Fixed.  This was seriously broken.
1080
1081 2003-01-14  Werner Koch  <wk@gnupg.org>
1082
1083         * gcrypt.h (GCRYERR_INV_FLAG), global.c (gcry_strerror): New.
1084
1085 2003-01-02  Werner Koch  <wk@gnupg.org>
1086
1087         * libgcrypt.vers: Temporary export _gcry_generate_elg_prime for
1088         use by GNUTLS. 
1089
1090 2002-12-21  Werner Koch  <wk@gnupg.org>
1091
1092         * gcrypt.h: Make use of gcc's pure and malloc attributes 
1093         (gcry_md_putc): Use a helper variable to avoid multiple
1094         evaluation of H. 
1095         * g10lib.h, stdmem.h, secmem.h: Use gcc attributes pure and malloc.
1096
1097         * stdmem.c (use_m_guard): Don't default to yes.
1098
1099 2002-12-19  Werner Koch  <wk@gnupg.org>
1100
1101         * global.c (global_init): The meat was never run due to a faulty
1102         check. Thanks to Nikos for pointing this out.
1103         
1104         * global.c (gcry_control): Return 1 and not -1 for the
1105         initialization tests.
1106
1107         * libgcrypt.vers: New.
1108         * Makefile.am: Use this instead of the build symbol file.
1109
1110         * global.c (gcry_control) <initialization>: Call the random module
1111         initializer to make sure that the pool lock flag has been
1112         initialized.
1113
1114 2002-12-09  Werner Koch  <wk@gnupg.org>
1115
1116         * global.c (gcry_calloc,gcry_calloc_secure): Check for overflow.
1117         Noted by Florian Weimer. 
1118
1119 2002-11-10  Simon Josefsson  <jas@extundo.com>
1120
1121         * gcrypt.h (gcry_ctl_cmds): New GCRYCTL_SET_CBC_CTS control flag.
1122         (gcry_cipher_flags): New GCRY_CIPHER_CBC_CTS gcry_cipher_open() flag.
1123         (gcry_cipher_cts): New macro for toggling CTS.
1124
1125 2002-11-10  Werner Koch  <wk@gnupg.org>
1126
1127         * gcrypt.h (GCRY_MD_MD4): New.  We use a non OpenPGP value here. 
1128
1129 2002-09-20  Werner Koch  <wk@gnupg.org>
1130
1131         * ath.c: Include sys.time.h if sys/select.h does not exist.
1132         (ath_select, ath_waitpid): Shortcut for Windows.
1133         * ath.h: Include some Windows headers.  By Timo.
1134
1135 2002-09-18  Werner Koch  <wk@gnupg.org>
1136
1137         * ath.h: Prefix ath_deinit.
1138
1139 2002-09-17  Werner Koch  <wk@gnupg.org>
1140
1141         * benchmark.c: New.
1142         (mpi_bench, do_powm): Add a a simple test for RSA.
1143
1144         * global.c (global_init): New.  Use it instead of the setting
1145         any_init_done.  Initialize the ATH system.
1146         (gcry_check_version): Hook global_init in.  This is the suggested
1147         way to initialize the library.
1148         (_gcry_no_internal_locking): Removed.  We simply call a ath_deinit
1149         and leave it to ATH to disbale the locking.
1150
1151         * ath.c, ath.h, ath-pth.c, ath-pthread.c: New. Taken from GPGME.
1152         * mutex.h: Removed.
1153         * Makefile.am (ath_components): New.
1154
1155 2002-09-16  Werner Koch  <wk@gnupg.org>
1156
1157         * secmem.c (_gcry_secmem_dump_stats): Replaced fprintf by log_*.
1158
1159 2002-08-23  Werner Koch  <wk@gnupg.org>
1160
1161         * missing-string.c: Removed unneeded strlwr.
1162
1163         * libgcrypt.m4: Made much more simple.
1164         * libgcrypt-config.in: Made --prefix work for --libs.
1165
1166 2002-08-14  Werner Koch  <wk@gnupg.org>
1167
1168         * gcrypt.h: Add GCRY_CIPGER_DES.  Included string.h for size_t.
1169         Suggested by Simon Josefsson.
1170
1171 2002-07-25  Werner Koch  <wk@gnupg.org>
1172
1173         * cipher.h: Added prototypes for progress functions.
1174         * global.c: Include cipher.h for those prototypes.
1175
1176         * stdmem.c (_gcry_private_realloc): Replaced void* by char * for
1177         pointer arithmetic reasons.  Noted by Stephan Austermuehle.
1178
1179 2002-06-24  Werner Koch  <wk@gnupg.org>
1180
1181         * missing-string.c: Include ctype.h.
1182
1183         * gcrypt.h (gcry_mpi_invm, gcry_mpi_div, gcry_mpi_mod)
1184         (gcry_mpi_swap): New.
1185
1186 2002-06-18  Werner Koch  <wk@gnupg.org>
1187
1188         * gcrypt.h: Added a bunch of brief function descriptions.
1189
1190 2002-05-21  Werner Koch  <wk@gnupg.org>
1191
1192         * misc.c (_gcry_log_printf): Don't initialize a va_list.  Noted by
1193         Jeff Johnson.
1194
1195         * global.c (gcry_set_progress_handler): New.
1196
1197         * gcrypt.h: Replaced the typedef for byte.
1198
1199 2002-05-16  Werner Koch  <wk@gnupg.org>
1200
1201         * missing-string.c: New.
1202
1203         * gcrypt.h: Add new error codes GCRYERR_SEXP_ and typedefs
1204         GcryMPI, GcrySexp, GcryCipherHd, GcryMDHd as aliases for the old
1205         ones using an underscore.
1206
1207         * global.c (gcry_strerror): Add strings fro the new error codes.
1208         * sexp.c (gcry_sexp_canon_len): Use a macro to convert from new to
1209         old error codes.
1210         (gcry_sexp_create,gcry_sexp_new): New.
1211
1212 2002-05-15  Werner Koch  <wk@gnupg.org>
1213
1214         * mutex.h (DEFINE_LOCAL_MUTEX): Macro to define a mutex and
1215         initialize it so that we can detect an unitialized mutex and don't
1216         read from stdin.
1217
1218 2002-05-14  Werner Koch  <wk@gnupg.org>
1219
1220         Changed license of all files to the LGPL.
1221
1222 2002-05-07  Werner Koch  <wk@gnupg.org>
1223
1224         * global.c (gcry_control): Add commands
1225         GCRYCTL_ANY_INITIALIZATION_P and GCRYCTL_INITIALIZATION_FINISHED_P
1226         so that other libraries are able to check for required
1227         initializations.
1228
1229 2002-05-02  Werner Koch  <wk@gnupg.org>
1230
1231         * gcrypt.h (GCRYCTL_DISABLE_INTERNAL_LOCKING): New.
1232         * global.c (gcry_control): Implement it.
1233         (_gcry_no_internal_locking): New.
1234         * mutex.h: Prefixed all fucntions with _gcry_.  Bypass all
1235         functions when desired.
1236
1237         * gcrypt.h (GCRYCTL_DISABLE_SECMEM): New.
1238         * global.c (gcry_control,gcry_malloc_secure,gcry_is_secure):
1239         Implement it here.
1240         * secmem.c (_gcry_private_is_secure): Return false if the pool is
1241         not initialized.
1242
1243         * gcrypt.h (GCRYCTL_INITIALIZATION_FINISHED): New.
1244
1245         * gcrypt.h (gcry_cipher_algos): Replaced RINDAEL by AES and change
1246         the macros to expand from rijdael to aes.
1247
1248         * stdmem.c (_gcry_private_malloc): Return NULL for 0 byte allocation.
1249         (_gcry_private_malloc_secure): Ditto.
1250
1251         * g10lib.h:  Copied the JNLIB_GCC macros from ../jnlib/mischelp.h
1252         and removed the inclusion of that file.
1253
1254 2002-04-15  Werner Koch  <wk@gnupg.org>
1255
1256         * global.c (gcry_strdup): New.
1257
1258 2002-03-18  Werner Koch  <wk@gnupg.org>
1259
1260         * mutex.h: New file with a portable thread mutex implementation
1261         written by Marcus Brinkmann.  Taken from GPGME.
1262
1263 2002-02-18  Werner Koch  <wk@gnupg.org>
1264
1265         * sexp.c (gcry_sexp_sscan): Don't initialize the dummy
1266         variable.  Suggested by Jordi Mallach.
1267
1268 2002-01-31  Werner Koch  <wk@gnupg.org>
1269
1270         * sexp.c (suitable_encoding,convert_to_hex,convert_to_string)
1271         (convert_to_token): New.
1272         (gcry_sexp_sprint): Better formatting of advanced encoding, does
1273         now insert LFs and escapes all unprintable characters.
1274         (unquote_string): New.
1275         (sexp_sscan): Implemented the missing conversion of quoted strings.
1276
1277 2002-01-26  Werner Koch  <wk@gnupg.org>
1278
1279         * libgcrypt-config.in: Add copyright notice.
1280
1281 2002-01-11  Werner Koch  <wk@gnupg.org>
1282
1283         * sexp.c (gcry_sexp_canon_len): Fixed last change.
1284
1285 2002-01-01  Timo Schulz <ts@winpt.org>
1286
1287         * stdmem.c (_gcry_private_realloc): If pointer is NULL now realloc
1288         behaves like malloc.
1289
1290 2001-12-20  Werner Koch  <wk@gnupg.org>
1291
1292         * sexp.c (gcry_sexp_canon_len): Describe the error codes and
1293         return an error if this is not a S-Exp; i.e. it does not start
1294         with an open parenthesis.
1295
1296 2001-12-18  Werner Koch  <wk@gnupg.org>
1297
1298         * sexp.c (gcry_sexp_canon_len): Fixed the test on NULL buffer.
1299
1300         * Makefile.am (DISTCLEANFILES): Include libgcrypt.sym
1301
1302         * sexp.c: Removed the commented test code because we now have a
1303         test in ../tests/
1304
1305 2001-12-17  Werner Koch  <wk@gnupg.org>
1306
1307         * sexp.c (gcry_sexp_canon_len): New.
1308
1309 2001-12-11  Werner Koch  <wk@gnupg.org>
1310
1311         * gcrypt.h: Fixed AES128 macro, add enum for OFB mode.
1312
1313 2001-12-05  Werner Koch  <wk@gnupg.org>
1314
1315         * misc.c (_gcry_log_printf): New.
1316         * sexp.c (dump_string,gcry_sexp_dump): Use logging functions
1317         instead of stderr.
1318
1319 2001-11-16  Werner Koch  <wk@gnupg.org>
1320
1321         * gcrypt.h: New constant GCRYCTL_IS_ALGO_ENABLED.
1322
1323 2001-10-02  Werner Koch  <wk@gnupg.org>
1324
1325         * gcrypt.h: Removed a couple of trailing commas.
1326
1327 2001-08-28  Werner Koch  <wk@gnupg.org>
1328
1329         * sexp.c (sexp_sscan): Add an argument to enable the
1330         arg_ptr. Changed all callers.  Suggested by Tom Holroyd.
1331
1332 2001-08-03  Werner Koch  <wk@gnupg.org>
1333
1334         * global.c (gcry_strerror): Updated list of error codes.
1335
1336 2001-07-23  Werner Koch  <wk@gnupg.org>
1337
1338         * gcrypt.h: Replaced the last ulong.  Noted by Rami Lehti.
1339
1340 2001-05-31  Werner Koch  <wk@gnupg.org>
1341
1342         * gcrypt.h, mpi.h: Made some mpi functions public.
1343
1344         * wrapper.c: Removed.
1345         * global.c: Renamed all g10_ prefixed functions which had wrappers 
1346         to gcry_xxx. So we now use the exported memory functions inernally.
1347
1348         Renamed all g10_ prefixed functions to _gcry_ prefixed ones.
1349         
1350         * g10lib.h (_GCRYPT_IN_LIBGCRYPT): Replace defintion by a test on it.
1351
1352 2001-05-28  Werner Koch  <wk@gnupg.org>
1353
1354         * libgcrypt.m4: Check GCRYPT_VERSION macro and not LIBGCRYPT_VERSION.
1355
1356         * mpi.h: Removed mpi_fromstr prototype.
1357
1358 2001-01-11  Werner Koch  <wk@gnupg.org>
1359
1360         * Makefile.am (libgcrypt_la_SOURCES): Add mpi.h
1361
1362 2000-12-19  Werner Koch  <wk@gnupg.org>
1363
1364         * types.h: Moved from ../include to here.
1365
1366         Major change:
1367         Removed all GnuPG stuff and renamed this piece of software
1368         to gcrypt. 
1369
1370 2000-11-14  Werner Koch  <wk@gnupg.org>
1371
1372         * mpi.h: Moved to ../mpi.
1373
1374         * Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency
1375         problems.
1376
1377 2000-10-11  Werner Koch  <wk@gnupg.org>
1378
1379         * mpi.h: Changed the way mpi_limb_t is defined.
1380
1381 2000-10-10  Werner Koch  <wk@gnupg.org>
1382
1383         * Makefile.am: Take version-info from configure.
1384
1385 2000-10-09  Werner Koch  <wk@gnupg.org>
1386
1387         * gcrypt.h: New cipher mode, new algo Arcfour and new error code
1388         GCRYERR_INV_CIPHER_MODE.
1389         * global.c (gcry_strerror): New errorcode.
1390
1391 Wed Oct  4 13:16:18 CEST 2000  Werner Koch  <wk@openit.de>
1392
1393         * gcrypt.h (gcry_md_setkey): Replaced macro by function prototype.
1394
1395 Mon Sep 18 16:35:45 CEST 2000  Werner Koch  <wk@openit.de>
1396
1397         * gcrypt.h (GCRYCTL_GET_ALGO_USAGE): New.
1398
1399         * secmem.c (secmem_realloc): check for failed secmem_malloc.  By
1400         Matt Kraai.
1401
1402 Mon Jul 31 10:04:47 CEST 2000  Werner Koch  <wk@openit.de>
1403
1404   * sexp.c: Removed the datalen fields from list tags.
1405   (gcry_sexp_car_data,gcry_sexp_cdr_data,gcry_sexp_car_mpi,
1406    gcry_sexp_cdr_mpi): Removed.
1407   (gcry_sexp_nth,gcry_sexp_nth_data,gcry_sexp_nth_mpi): New.
1408
1409 Fri Jul 28 18:19:11 CEST 2000  Werner Koch  <wk@openit.de>
1410
1411   * sexp.c (sexp_sscan): Fixed reallocation to secure memory.
1412   (new_empty_list): Removed
1413   (gcry_sexp_length): New.
1414   (gcry_sexp_enum): Removed.
1415   (normalize): New. Reworked the whole thing to use NULL for an empty list.
1416   (make_space): New instead of the macro.
1417
1418 Tue Jul 25 17:44:15 CEST 2000  Werner Koch  <wk@openit.de>
1419
1420   * sexp.c: Major rewrite.
1421   (gcry_sexp_sscan): Reordered arguments.  Moved functionality to ..
1422   (sexp_sscan): .. this.
1423   (gcry_sexp_build): New.
1424   (gcry_sexp_new_name_mpi, gcry_sexp_new_name_data, gcry_sexp_new_data,
1425    gcry_sexp_new_mpi): Removed.
1426
1427 Fri Jul 14 19:38:23 CEST 2000  Werner Koch  <wk@>
1428
1429   * gcrypt.h (gcry_md_start_debug, gcry_md_stop_debug): New.
1430   (gcry_ctl_cmds): New control values
1431
1432   * sexp.c (gcry_sexp_sscan): Add hex format parsing.
1433
1434   * secmem.c (lock_pool): Check for ENOSYS return my mlock() on old SCOs.
1435   (pool_is_mmapped): Made volatile.
1436   (lock_pool): No more warning for QNX. By Sam Roberts.
1437   (lock_pool,secmem_init): Additional check for dropped privs.
1438
1439 2000-03-21 09:18:48  Werner Koch  (wk@habibti.gnupg.de)
1440
1441         * gcrypt.h (gcry_md_setkey): New.
1442         (GCRY_MD_FLAG_HMAC): New.
1443
1444 Mon Jan 31 16:37:34 CET 2000  Werner Koch  <wk@gnupg.de>
1445
1446         * Makefile.am: Add g10lib.h
1447
1448 Thu Jan 27 18:00:44 CET 2000  Werner Koch  <wk@gnupg.de>
1449
1450         * sexp.c (gcry_sexp_sscan): Allow NULL for erroff.
1451
1452 Mon Jan 24 22:24:38 CET 2000  Werner Koch  <wk@gnupg.de>
1453
1454         * sexp.c (gcry_sexp_alist): New.
1455
1456 Mon Jan 24 13:04:28 CET 2000  Werner Koch  <wk@gnupg.de>
1457
1458         * secmem.c: Moved from ../util to here.
1459         * secmem.h: New.
1460         * stdmem.c: New. Based on the old ../util/memory.c.
1461         * stdmem.h: New.
1462
1463 Wed Dec  8 21:58:32 CET 1999  Werner Koch  <wk@gnupg.de>
1464
1465         * gcrypt.m4: New.
1466         * gcrypt-config: New.
1467
1468         * mpi.h (mpi_get_nbit_info): Removed
1469         (mpi_set_nbit_info): Removed.
1470         (struct gcry_mpi): Removed the nbits field.
1471
1472         * misc.c (g10_log_verbosity): New.
1473
1474         * global.c (g10_xstrdup): New.
1475
1476         * mpiapi.c: Removed.
1477
1478         * mpi.h: Moved from ../include to here.  Removed some obsolete
1479         prototypes and the iobuf.h header.
1480         * cipher.h: Moved from ../include to here. Removed the mpi.h header.
1481         * g10lib.h: Moved from ../include to here.
1482
1483 Fri Nov 19 17:15:20 CET 1999  Werner Koch  <wk@gnupg.de>
1484
1485         * sexp.c (dump_string): New.  Taken from gnupg/util/miscutil.c.
1486         (do_dump_list): s/print_string/dump_string/.
1487
1488         * testapi.c: New.
1489
1490         * mpiapi.c (gcry_mpi_randomize): Use new random API.
1491
1492 Sat Nov 13 17:44:23 CET 1999  Werner Koch  <wk@gnupg.de>
1493
1494         * gloabl.c (gcry_control): Add cases for dumping random
1495         and secmem stats.
1496
1497 Tue Oct 26 14:10:21 CEST 1999  Werner Koch  <wk@gnupg.de>
1498
1499         * pkapi.c: Removed.
1500
1501         * symapi.c: Removed.
1502
1503         * g10lib.h:  Moved to ../include.
1504
1505         * mdapi.c: Removed.
1506
1507 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1508
1509         * sexp.c: New.
1510
1511 Tue Dec  8 13:15:16 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
1512
1513         * gcrypt.h: New
1514         * mpiapi.c: New
1515
1516         
1517  Copyright (C) 1998,1999,2000,2001,2002,2003
1518                2004, 2005 Free Software Foundation, Inc.
1519
1520  This file is free software; as a special exception the author gives
1521  unlimited permission to copy and/or distribute it, with or without
1522  modifications, as long as this notice is preserved.
1523
1524  This file is distributed in the hope that it will be useful, but
1525  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1526  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.