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