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