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