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