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