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