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