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