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