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