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