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