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