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