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