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