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