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