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