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