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