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