ChangeLog:
[libgcrypt.git] / src / ChangeLog
1 2005-04-22  Moritz Schulte  <moritz@g10code.com>
2
3         * Makefile.am (pkgconfigdir, pkgconfig_DATA): New; support for
4         pkgconfig provided by Albert Chin.
5         * libgcrypt.pc.in (Cflags): New file.
6
7 2005-04-16  Moritz Schulte  <moritz@g10code.com>
8
9         * g10lib.h (_gcry_ac_init): Declare.
10         * global.c (global_init): Call _gcry_ac_init; don't forget to set
11         err.
12
13 2005-04-14  Werner Koch  <wk@g10code.com>
14
15         * sexp.c (whitespacep): New.
16         (sexp_sscan): Replaced isdigit and isspace by whitespacep and
17         digitp.
18
19 2005-04-11  Moritz Schulte  <moritz@g10code.com>
20
21         * gcrypt.h (gcry_md_algos): Added: GCRY_MD_WHIRLPOOL.
22         * cipher.h (_gcry_digest_spec_whirlpool): Declare.
23
24 2005-03-30  Moritz Schulte  <moritz@g10code.com>
25
26         * libgcrypt.vers: Added: gcry_ac_io_init, gry_ac_io_init_va.
27
28         * gcrypt.h (gcry_ac_data_read_cb_t, gcry_ac_data_write_cb_t,
29         gcry_ac_io_mode_t, gcry_ac_io_type_t, gcry_ac_io_t): New types.
30         (gcry_ac_io_init_va): Declare function.
31         (gcry_ac_data_encode, gcry_ac_data_decode,
32         gcry_ac_data_encrypt_scheme, gcry_ac_data_decrypt_scheme,
33         gcry_ac_data_sign_scheme, gcry_ac_data_verify_scheme): Use
34         gcry_ac_io_type_t objects instead of memory strings directly.
35
36 2005-03-03  Moritz Schulte  <moritz@g10code.com>
37
38         * libgcrypt.vers: Added: gcry_ac_data_to_sexp() and
39         gcry_ac_data_from_sexp().
40
41 2005-02-22  Werner Koch  <wk@g10code.com>
42
43         * global.c (_gcry_malloc): Make sure ERRNO is set if we return
44         NULL.  Remove unneeded initialization of M to allow the compiler
45         to catch errors.
46         (gcry_realloc): Make sure ERRNO is set if we return NULL>
47
48 2005-02-13  Moritz Schulte  <moritz@g10code.com>
49
50         * gcrypt.h: Declare new functions: gcry_ac_data_encrypt_scheme,
51         gcry_ac_data_decrypt_scheme, gcry_ac_data_sign_scheme,
52         gcry_ac_data_verify_scheme, gcry_ac_data_encode,
53         gcry_ac_data_decode, gcry_ac_data_to_sexp, gcry_ac_data_from_sexp.
54         New types: gcry_ac_emsa_pkcs_v1_5_t, gcry_ac_ssa_pkcs_v1_5_t,
55         gcry_md_algo_t.
56         New enumeration lists: gcry_ac_scheme_t, gcry_ac_em_t.
57         * libgcrypt.vers: Added new ac functions.
58         * g10lib.h: Declare function: _gcry_pk_get_elements.
59         * mpi.h (mpi_get_ui): New macro.
60         Declare function: _gcry_mpi_get_ui.
61
62 2004-11-09  Werner Koch  <wk@g10code.com>
63
64         * gcrypt.h: Removed 3 trailing commas from enums.  Noted by Heiko
65         Stamer.
66
67 2004-09-21  Werner Koch  <wk@g10code.de>
68
69         * sexp.c (sexp_sscan): Removed C++ style comments.  Noted by Yoann
70         Vandoorselaere.
71
72 2004-08-23  Moritz Schulte  <moritz@g10code.com>
73
74         * global.c: Do not include <assert.h>. 
75         * sexp.c: Likewise.
76         * module.c: Likewise.
77         * misc.c: Likewise.
78
79 2004-08-18  Moritz Schulte  <moritz@g10code.com>
80
81         * secmem.c (_gcry_secmem_init): Try to lock pool into core not
82         only when running with root privileges.
83
84 2004-08-16  Werner Koch  <wk@g10code.de>
85
86         * secmem.h (_gcry_secmem_set_flags,_gcry_secmem_get_flags):
87         Removed __pure__.
88         (GCRY_SECMEM_FLAG_NO_WARNING): Put macro value into parens.
89
90         * secmem.c (_gcry_secmem_init): Defer printing of the warning.
91
92 2004-08-10  Moritz Schulte  <moritz@g10code.com>
93
94         * gcrypt.h: Include <sys/time.h>, thanks to Simon Josefsson.
95
96 2004-05-07  Werner Koch  <wk@gnupg.org>
97
98         * gcrypt.h: Added GCRYCTL_FAST_POLL.
99         (gcry_fast_random_poll): New.
100         * global.c (gcry_control) <INITIALIZATION_FINISHED>: Do only basic
101         random subsystem init.
102         (gcry_control) <FAST_POLL>: New.
103
104 2004-04-22  Marcus Brinkmann  <marcus@g10code.de>
105
106         * libgcrypt.m4: Quote first argument to AC_DEFUN.
107
108 2004-04-15  Werner Koch  <wk@gnupg.org>
109
110         * secmem.c (_gcry_secmem_malloc_internal): Removed old extra info
111         error output.
112         (_gcry_secmem_term): Use wipememory2 here.
113
114         * misc.c (_gcry_burn_stack): Use wipememory to avoid optimizations.
115
116         * string.c: Removed.  Was never used.
117         * global.c (gcry_strdup): Replaced by the version from string.c
118         (gcry_xstrdup): Rewritten.
119         * gcrypt.h: Removed duplicate prototype for gcry_strdup.
120
121 2004-03-29  Werner Koch  <wk@gnupg.org>
122
123         * secmem.c (_gcry_secmem_realloc): Fixed double unlock; bug
124         manifested itself due to the more rigorous checking in the changed
125         ath.h
126
127         * libgcrypt-config.in (Options): Ignore the obsolete --threads
128         option for now.
129
130 2004-03-17  Marcus Brinkmann  <marcus@g10code.de>
131
132         * libgcrypt-config.in (includedir, libdir): Quote'em.  Use
133         $gpg_error_cflags and $gpg_error_libs.  Fix construction of
134         $includes.
135
136 2004-03-14  Marcus Brinkmann  <marcus@g10code.de>
137
138         * libgcrypt-config.in (includedir, libdir): New variables.  For
139         --cflags, don't test $cflags.  Also check against /include for the
140         GNU/Hurd.  Don't overwrite but extend $cflags_final.  Likewise for
141         --libs.
142
143 2004-03-10  Marcus Brinkmann  <marcus@g10code.de>
144
145         * Makefile.am (ltlib_libgcrypt_pthread, ltlib_libgcrypt_pth): Removed.
146         (lib_LTLIBRARIES): Remove those variables from here.
147         (libgcrypt_pthread_la_SOURCES, libgcrypt_pthread_la_LDFLAGS,
148         (libgcrypt_pthread_la_DEPENDENCIES, libgcrypt_pthread_la_LIBADD,
149         (libgcrypt_pth_la_SOURCES, libgcrypt_pth_la_LDFLAGS,
150         (libgcrypt_pth_la_DEPENDENCIES, libgcrypt_pth_la_LIBADD,
151         (noinst_LTLIBRARIES): Removed.
152         (libgcrypt_real_la_SOURCES): Merge with ...
153         (libgcrypt_la_SOURCES): ... likewise.
154         (libgcrypt_real_la_DEPENDENCIES): Merge with ...
155         (libgcrypt_la_DEPENDENCIES): ... this.
156         (libgcrypt_real_la_LIBADD): Merge with ...
157         (libgcrypt_la_LIBADD): ... this.
158         * libgcrypt-config.in (libs_pthread, libs_pth, cflags_pth) 
159         (cflags_pthread, thread_module, thread_modules): Removed.
160         (Options): Remove --thread option from help output.  If the option
161         is specified, output an error and exit.
162         For --cflags and --libs option, remove pth and pthread from output.
163         * gcrypt.h: Include <sys/types.h> and <sys/socket.h>.
164         (enum gcry_ctl_cmds): Add GCRYCTL_SET_THREAD_CBS.
165         (gcry_thread_cbs): New struct.
166         * global.c (gcry_control): Implement GCRYCTL_SET_THREAD_CBS.
167         (global_init): Don't call ath_init here.
168         * ath.h: Rewritten.
169         * ath.c: Rewritten.
170
171 2004-03-06  Werner Koch  <wk@gnupg.org>
172
173         * libgcrypt-config.in: s/--soname-number/--api-version/
174         * libgcrypt.m4: Changed test for API version.
175
176 2004-03-05  Werner Koch  <wk@gnupg.org>
177
178         * libgcrypt.m4: Optionally check the SONAME number.
179
180         * libgcrypt-config.in: Add option --soname-number
181
182 2004-03-01  Marcus Brinkmann  <marcus@g10code.de>
183
184         * Makefile.am (libgcrypt_la_SOURCES): Add ath.c.
185         * ath.c (ath_init): Add missing function.
186
187         * Makefile.am (ath_pth_src): Removed.
188         (ath_pthread_src): Removed.
189         (libgcrypt_la_SOURCES): Remove ath-compat, $(ath_pth_src) and
190         $(ath_pthread_src).
191         * ath-compat.c, ath-pth-compat.c, ath-pthread-compat.c: Files
192         removed.
193         
194 2004-02-20  Werner Koch  <wk@gnupg.org>
195
196         * gcrypt.h (GCRY_PRIME_CHECK_AT_GOT_PRIME)
197         (GCRY_PRIME_CHECK_AT_FINISH),
198         (GCRY_PRIME_CHECK_AT_MAYBE_PRIME): New.
199
200 2004-02-18  Werner Koch  <wk@gnupg.org>
201
202         * libgcrypt-config.in: Ignore setting of --prefix.
203
204 2004-02-13  Werner Koch  <wk@gnupg.org>
205
206         * gcrypt.h: Added GCRY_CIPHER_RFC2268_128, alsthough not yet
207         supported.
208
209 2004-02-06  Werner Koch  <wk@gnupg.org>
210
211         * gcrypt.h: Added GCRY_CIPHER_RFC2268_40.
212
213 2004-02-03  Werner Koch  <wk@gnupg.org>
214
215         * secmem.c (_gcry_secmem_init): Do not print the "not locked into
216         core warning" if the NO_WARNING flag has been set.
217
218         * sexp.c (sexp_sscan): Allocate result in secure memory if BUFFER
219         is in secure memory. Switch to secure memory for the a secure %b
220         format item. Extra paranoid wipe on error.
221         (gcry_sexp_release): Added paranoid wiping for securely allocated
222         S-expressions.
223
224 2004-01-25  Moritz Schulte  <mo@g10code.com>
225
226         * ath.h: Include <config.h>.
227
228 2004-01-12  Moritz Schulte  <mo@g10code.com>
229
230         * gcrypt.h: Adjusted declarations of: gcry_ac_data_set,
231         gcry_ac_data_get_name, gcry_ac_data_get_index,
232         gcry_ac_key_pair_generate, gcry_ac_key_test,
233         gcry_ac_key_get_nbits, gcry_ac_key_get_grip.
234
235         * gcrypt.h (GCRY_AC_FLAG_DATA_NO_BLINDING): Removed symbol.
236         (GCRY_AC_FLAG_DEALLOC, GCRY_AC_FLAG_COPY) 
237         (GCRY_AC_FLAG_NO_BLINDING): New symbols.
238
239         * global.c (gcry_strdup): Removed function.
240         * string.c: New file.
241         * Makefile.am (libgcrypt_real_la_SOURCES): Added: string.c.
242         * string.c (gcry_strdup): New function.
243         * gcrypt.h (gcry_strdup): Declare.
244
245 2003-12-19  Werner Koch  <wk@gnupg.org>
246
247         * g10lib.h (wipememory, wipememory2): New; taken from gnupg.
248
249 2003-11-14  Werner Koch  <wk@gnupg.org>
250
251         * global.c (gcry_strdup): Don't copy the string after a malloc
252         error.
253
254 2003-11-11  Werner Koch  <wk@gnupg.org>
255
256         * sexp.c (sexp_sscan): Implemented "%b" format specifier.
257
258 2003-11-11  Moritz Schulte  <mo@g10code.com>
259
260         * libgcrypt.m4: Do not set prefix when calling libgcrypt-config.
261         Thanks to Nikos Mavroyanopoulos.
262
263 2003-11-08  Moritz Schulte  <mo@g10code.com>
264
265         * cipher.h (small_prime_numbers): Removed declaration.
266         (PUBKEY_FLAG_NO_BLINDING): Put braces around shift.
267
268 2003-11-04  Werner Koch  <wk@gnupg.org>
269
270         * cipher.h (_gcry_sha1_has_buffer): New.
271
272         * gcrypt.h (gcry_create_nonce): New.
273
274 2003-10-31  Werner Koch  <wk@gnupg.org>
275
276         * libgcrypt.vers (_gcry_generate_elg_prime): Removed this symbol;
277         gnutls does not need it anymore.
278
279         * secmem.c (mb_get_new): s/pool/block/ due to global pool.
280
281         * misc.c (gcry_set_log_handler): s/logf/f/ to avoid shadowing
282         warning against a builtin.
283
284         * ath-pth-compat.c: cast pth_connect to get rid of the const
285         prototype.
286
287 2003-10-27  Werner Koch  <wk@gnupg.org>
288
289         * ath.h (ATH_MUTEX_INITIALIZER): Removed spurious semicolon.
290
291 2003-10-27  Moritz Schulte  <mo@g10code.com>
292
293         * libgcrypt-config.in: Include libs/cflags of libgpg-error.
294
295         * sexp.c (sexp_sscan): Cleaned up, deallocate scanned sexp on
296         error.
297
298         * module.c (MODULE_ID_MIN): New symbol, use it.
299
300 2003-10-27  Werner Koch  <wk@gnupg.org>
301
302         * gcrypt.h (gcry_pk_testkey): Doc fix.
303
304 2003-09-29  Moritz Schulte  <mo@g10code.com>
305
306         * libgcrypt-config.in: Fix --algorithms option.
307
308 2003-10-23  Werner Koch  <wk@gnupg.org>
309
310         * gcrypt.h (gcry_err_code): Use GPG_ERR_INLINE instead of
311         __inline__.
312
313         * secmem.c (lock_pool): Don't print the warning for certain
314         systems, handle ENOMEM.
315
316 2003-10-21  Werner Koch  <wk@gnupg.org>
317
318         * secmem.c (_gcry_secmem_dump_stats): Fixed format sepcifier for a
319         size_t.  Reported by Stephane Corthesy.
320
321 2003-10-10  Werner Koch  <wk@gnupg.org>
322
323         * global.c (_gcry_malloc): Handle the no_secure_memory option.
324
325         * gcrypt.h (gcry_prime_group_generator): New.
326         (gcry_prime_release_factors): New.
327
328 2003-10-07  Werner Koch  <wk@gnupg.org>
329
330         * sexp.c (sexp_sscan): Check that parenthesis are matching.
331
332 2003-09-28  Moritz Schulte  <mo@g10code.com>
333
334         * g10lib.h: Declare: _gcry_malloc.
335         (GCRY_ALLOC_FLAG_SECURE): New symbol.
336
337         * global.c (_gcry_malloc): New function...
338         (gcry_malloc): ... use it.
339         (gcry_malloc_secure): Likewise.
340
341         * ath.c: Change License to LGPL.
342         * ath-pthread-compat.c: Likewise.
343         * ath-pthread.c: Likewise.
344         * ath-pth-compat.c: Likewise.
345         * ath-pth.c: Likewise.
346         * ath.h: Likewise.
347         * ath-compat.c: Likewise.
348
349         * secmem.c (_gcry_secmem_realloc): Do not forget to release secmem
350         lock.  Thanks to low halo for triggering this bug.
351
352 2003-09-04  Werner Koch  <wk@gnupg.org>
353
354         * gcrypt.h (_GCRY_ERR_SOURCE_DEFAULT): Removed cruft.
355         (gcry_prime_check_func_t): Renamed arg for clarity.
356
357 2003-09-02  Moritz Schulte  <mo@g10code.com>
358
359         * gcrypt.h (GCRY_PRIME_FLAG_SPECIAL_FACTOR): New symbol.
360
361 2003-09-01  Moritz Schulte  <mo@g10code.com>
362
363         * gcrypt.h (gcry_random_level_t): New type.
364         (gcry_prime_check_func_t): Likewise.
365         (GCRY_PRIME_FLAG_SECRET): New symbol.
366         (gcry_prime_generate, gcry_prime_check): Declare functions.
367
368 2003-08-28  Werner Koch  <wk@gnupg.org>
369
370         * Makefile.am (libgcrypt_pth_la_LDFLAGS): Removed PTH_CFLAGS cruft.
371
372 2003-08-27  Moritz Schulte  <mo@g10code.com>
373
374         * global.c (gcry_control): Remove call to ath_deinit.
375
376         * Makefile.am (libgcrypt_real_la_DEPENDENCIES): Fixed.
377         (libgcrypt_real_la_LIBADD): Fixed.
378         Removed unecessary variables.
379
380         * libgcrypt-config.in: Adjusted script for new thread handling.
381
382         * Makefile.am: New version, based on GPGMEs Makefile.am.
383
384         * ath.c, ath-compat.c, ath.h, ath-pth.c, ath-pth-compat.c,
385         ath-pthread.c, ath-pthread-compat.c: New files, merged from GPGME.
386         * ath.c, ath.h, ath-pthread.c, ath-pth.c: Removed files.
387
388 2003-08-08  Moritz Schulte  <moritz@g10code.com>
389
390         * global.c (gcry_realloc): Remove FIXME about `clearing out
391         realloced memory', since _gcry_secmem_realloc takes care of
392         overwriting old memory.
393
394 2003-08-07  Werner Koch  <wk@gnupg.org>
395
396         * module.c (_gcry_module_release): Don't act if module is NULL.
397
398 2003-07-30  Moritz Schulte  <moritz@g10code.com>
399
400         * gcrypt.h (enum gcry_ac_id): Added: GCRY_AC_ELG_E.
401         Reverted change: use gcry_md_flags enumeration list instead of
402         defines.
403
404 2003-07-29  Werner Koch  <wk@gnupg.org>
405
406         * global.c (gcry_control): Add GCRYCTL_SET_RANDOM_SEED_FILE and
407         GCRYCTL_UPDATE_RANDOM_SEED_FILE.
408         * gcrypt.h: Ditto.  Renamed index to idx, so avoid warning
409         related to the old index function.
410
411 2003-07-28  Moritz Schulte  <moritz@g10code.com>
412
413         * global.c (gcry_err_code_from_errno, gcry_err_code_to_errno)
414         (gcry_err_make_from_errno, gcry_error_from_errno): New functions.
415
416         * gcrypt.h: Declared: gcry_err_code_from_errno,
417         gcry_err_code_to_errno, gcry_err_make_from_errno,
418         gcry_error_from_errno.
419
420         * Makefile.am (include_HEADERS): Added: gcrypt-module.h.
421
422         * gcrypt.h: Include <gcrypt-module.h>.
423
424         * gcrypt-module.h: New file.
425
426 2003-07-27  Werner Koch  <wk@gnupg.org>
427
428         * gcrypt.h (gcry_mpi_scan, gcry_mpi_print): API change.
429         (gcry_mpi_dump): New.
430
431 2003-07-21  Moritz Schulte  <moritz@g10code.com>
432
433         * gcrypt.h: Declared: gcry_ac_key_data_get.
434         (gcry_pk_spec): Renamed member `sexp_names' into `aliases'.
435
436 2003-07-20  Moritz Schulte  <moritz@g10code.com>
437
438         * gcrypt.h (gcry_md_oid_spec_t): New type.
439         (gcry_md_spec): New member: oids.
440
441 2003-07-19  Moritz Schulte  <moritz@g10code.com>
442
443         * gcrypt.h (gcry_cipher_oid_spec_t): New type.
444         (gcry_cipher_spec): New member: oids;
445
446 2003-07-18  Werner Koch  <wk@gnupg.org>
447
448         * gcrypt.h (gcry_mpi_set_opaque): Add a warning comment.
449
450 2003-07-15  Moritz Schulte  <moritz@g10code.com>
451
452         * secmem.c (compress_pool): Remove function, since unused blocks
453         are automatically concatenad.
454
455         * gcrypt.h: Bumped version number up to 1.1.42-cvs.
456
457 2003-07-14  Moritz Schulte  <moritz@g10code.com>
458
459         * gcrypt.h (gcry_cipher_spec): New member: aliases.
460
461         * Makefile.am (noinst_PROGRAMS, testapi_SOURCES, testapai_LDADD,
462         benchmark_SOURCES, benchmark_LDADD): Removed.
463
464         * benchmark.c, testapi.c: Removed files.
465
466         * mpi.h: Removed disabled typedef.
467         * g10lib.h: Likewise.
468
469         * benchmark.c, g10lib.h, gcrypt.h, global.c, module.c, sexp.c:
470         Used gcry_err* wrappers for libgpg-error symbols.
471
472 2003-07-12  Moritz Schulte  <moritz@g10code.com>
473
474         * global.c: Likewise.
475
476         * gcrypt.h: New type: gcry_error_t, gcry_err_code_t and
477         gcry_err_source_t.
478         (gcry_err_make, gcry_error, gcry_err_code, gcry_err_source): New
479         functions.
480
481         * global.c (gcry_strerror): New function.
482         (gcry_strsource): New function.
483
484         * gcrypt.h: New symbol: GCRY_CIPHER_TWOFISH128.
485
486 2003-07-09  Moritz Schulte  <moritz@g10code.com>
487
488         * gcrypt.h (enum gcry_md_flags): Removed, used define instead,
489         since that is more common than an enumeration list when it comes
490         to flags that can be bitwise ORed.
491         
492 2003-07-08  Moritz Schulte  <moritz@g10code.com>
493
494         * global.c: Use new types for handlers.
495
496         * gcrypt.h: Declare: gcry_ac_data_copy.
497
498 2003-07-07  Moritz Schulte  <moritz@g10code.com>
499
500         * sexp.c (gcry_sexp_build_array): Use dummy argument pointer.
501         Thanks to Simon Josefsson <jas@extunde.com>.
502
503         * gcrypt.h: Declare: gcry_cipher_list, gcry_pk_list, gcry_md_list.
504         
505 2003-07-05  Moritz Schulte  <moritz@g10code.com>
506
507         * gcrypt.h: Declare: gcry_cipher_register, gcry_cipher_unregister,
508         gcry_md_register, gcry_md_unregister, gcry_pk_register,
509         gcry_pk_unregister.
510         (gcry_cipher_spec): Removed member: algorithm.
511         (gcry_pk_spec): Likewise.
512         (gcry_md_spec): Likewise.
513         Adjusted declarations: gcry_cipher_register, gcry_pk_register,
514         gcry_md_register.
515
516         * module.c: Replaced all occurences of `id' with `mod_id', since
517         `id' is a keyword in obj-c.
518
519         * gcrypt.h (gcry_cipher_spec): Renamed member `id' to `algorithm'.
520         (gcry_pk_spec): Likewise.
521         (gcry_md_spec): Likewise.
522
523         * cipher.h: Removed types: gcry_pubkey_generate_t,
524         gcry_pubkey_check_secret_key_t, gcry_pubkey_encrypt_t,
525         gcry_pubkey_decrypt_t, gcry_pubkey_sign_t, gcry_pubkey_verify_t,
526         gcry_pubkey_get_nbits_t, gcry_pk_spec_t, gcry_digest_init_t,
527         gcry_digest_write_t, gcry_digest_final_t, gcry_digest_read_t,
528         gcry_digest_spec_t, gcry_cipher_setkey_t, gcry_cipher_encrypt_t,
529         gcry_cipher_decrypt_t, gcry_cipher_stencrypt_t,
530         gcry_cipher_stdecrypt_t, gcry_cipher_spec_t.
531
532         * gcrypt.h: New types: gcry_pk_generate_t,
533         gcry_pk_check_secret_key_t, gcry_pk_encrypt_t, gcry_pk_decrypt_t,
534         gcry_pk_sign_t, gcry_pk_verify_t, gcry_pk_get_nbits_t,
535         gcry_pk_spec_t, gcry_md_init_t, gcry_md_write_t, gcry_md_final_t,
536         gcry_md_read_t, gcry_md_spec_t, gcry_cipher_setkey_t,
537         gcry_cipher_encrypt_t, gcry_cipher_decrypt_t,
538         gcry_cipher_stencrypt_t, gcry_cipher_stdecrypt_t,
539         gcry_cipher_spec_t, gcry_module_t.
540
541 2003-07-04  Moritz Schulte  <moritz@g10code.com>
542
543         * module.c (_gcry_module_list): New function.
544
545 2003-07-02  Moritz Schulte  <moritz@g10code.com>
546
547         * module.c (_gcry_module_lookup): Fixed typo.
548
549         * gcrypt.h: Added all definitions and declarations necessary for
550         the new ac interface.
551
552 2003-06-30  Moritz Schulte  <moritz@g10code.com>
553
554         * g10lib.h: Added declarations: _gcry_pk_module_lookup,
555         _gcry_pk_module_release.
556
557 2003-06-18  Werner Koch  <wk@gnupg.org>
558
559         * benchmark.c (cipher_bench): Adjusted for new API of get_blklen
560         and get_keylen.
561
562         * gcrypt.h (gcry_cipher_get_algo_blklen)
563         (gcry_cipher_get_algo_keylen): Replaced macro by funcion.
564
565 2003-06-18  Moritz Schulte  <moritz@g10code.com>
566
567         * cipher.h: Renamed types GcryDigestSpec, GcryCipherSpec and
568         GcryPubkeySpec into: gcry_digest_spec_t, gcry_cipher_spec_t and
569         gcry_pubkey_spec_t.
570         (gcry_pubkey_spec): Defined member `id' as unsigned.
571         (gcry_digest_spec): Likewise.
572         (gcry_cipher_spec): Likewise.
573
574         * module.c (_gcry_module_id_new): New function.
575         (_gcry_module_add): Generate a new ID via _gcry_module_id_new in
576         case `id' is zero.
577
578         * g10lib.h, module.c: Replace old type GcryModule with newer one:
579         gcry_module_t.
580
581         * module.c (_gcry_module_add): Added argument `id', use it.
582
583         * g10lib.h: Added declaration: _gcry_module_lookup_id.
584         (_gcry_module_add): Added argument `id'.
585
586         * module.c (_gcry_module_lookup_id): New function.
587
588         * g10lib.h (struct gcry_module): New member: id.
589
590         * gcrypt.h: New type: gcry_handler_progress_t,
591         gcry_handler_alloc_t, gcry_haandler_secure_check_t,
592         gcry_handler_realloc_t, gcry_handler_free_t,
593         gcry_handler_no_mem_t, gcry_handler_error_t, gcry_handler_log_t.
594         Use new types.
595
596         * cipher.h: Include <gcrypt.h>.
597         New types: gcry_pk_generate_t, gcry_pk_check_secret_key_t,
598         gcry_pk_encrypt_t, gcry_pk_decrypt_t, gcry_pk_sign_t,
599         gcry_pk_verify_t, gcry_pk_get_nbits_t, gcry_md_init_t,
600         gcry_md_write_t, gcry_md_final_t, gcry_md_read_t,
601         gcry_cipher_setkey_t, gcry_cipher_encrypt_t,
602         gcry_cipher_decrypt_t, gcry_cipher_stencrypt_t,
603         gcry_cipher_stdecrypt_t.
604         Use new types.
605
606 2003-06-17  Moritz Schulte  <moritz@g10code.com>
607
608         * Makefile.am (AM_CFLAGS): Added: @GPG_ERROR_CFLAGS@.
609
610 2003-06-16  Moritz Schulte  <moritz@g10code.com>
611
612         * g10lib.h: Replace last occurences of old type names with newer
613         names (i.e. replace MPI with gcry_mpi_t).
614         * mpi.h: Likewise.
615         * sexp.c: Likewise.
616
617 2003-06-15  Moritz Schulte  <moritz@g10code.com>
618
619         * testapi.c (test_genkey): Use gpg_strerror instead of
620         gcry_strerror.
621
622         * global.c (gcry_control): Fixed typo.
623
624         * misc.c (_gcry_fatal_error): Use gpg_strerror instead of
625         gcry_strerror.
626
627         * types.h (STRLIST): Removed type since it is not used.
628
629 2003-06-11  Moritz Schulte  <moritz@g10code.com>
630
631         * global.c (global_init): Call: _gcry_cipher_init, _gcry_md_init,
632         _gcry_pk_init.
633
634         * g10lib.h: Declare: _gcry_cipher_init, _gcry_md_init,
635         _gcry_pk_init.
636         
637         * global.c (gcry_strerror): Remove compatibility code.
638
639         * Makefile.am: Remove support libgpg-error special handling.
640         (AM_CPPFLAGS): Add @GPG_ERROR_CFLAGS@
641
642         * gcrypt.h: Likewise.
643
644 2003-06-13  Werner Koch  <wk@gnupg.org>
645
646         * gcrypt.h (gcry_md_get_algo): Reverted to old API.  This is a
647         convenience function anyway and error checking is not approriate.
648         (gcry_md_is_enabled): New.
649         (gcry_md_is_secure): Replaced macro by function and reverted to old
650         API.
651
652 2003-06-11  Werner Koch  <wk@gnupg.org>
653
654         * gcrypt.h (GCRYERR): Define _GCRY_ERR_SOURCE_DEFAULT instead of
655         GPG_ERR_SOURCE_DEFAULT, so that libgpg-error still works despite
656         the use of the old gcrypt error codes.
657         (gcry_md_copy): Swapped arguments.
658         
659 2003-06-09  Moritz Schulte  <moritz@g10code.com>
660
661         * Makefile.am: Support for libgpg-error.
662
663 2003-06-08  Moritz Schulte  <moritz@g10code.com>
664
665         * sexp.c (gcry_sexp_create): Expect sane error values from
666         gcry_sexp_canon_len instead of the `historical' values.
667
668 2003-06-07  Moritz Schulte  <moritz@g10code.com>
669
670         * ath.c, ath.c, ath-pth.c, ath-pthread.c, benchmark.c, cipher.h,
671         g10lib.h, gcrypt.h, global.c, misc.c, missing-string.c, module.c,
672         mpi.h, secmem.c, secmem.h, sexp.c, stdmem.c, stdmem.h, testapi.c,
673         types.h: Edited all preprocessor instructions to remove whitespace
674         before the '#'.  This is not required by C89, but there are some
675         compilers out there that don't like it.  Replaced any occurence of
676         the now deprecated type names with the new ones.
677         
678         * gcrypt.h: Re-organized checking for gcc features; New macro:
679         _GCRY_GCC_ATTR_DEPRECATED.
680         Include copy of libgpg-error's gpg-error.h in order to make it
681         easy to build libgcrypt without needing libgpg-error.h.
682
683         (GCRY_MPI, GcryMPI, GCRY_SEXP, GcrySexp, GCRY_CIPHER_HD,
684         GcryCipherHd, GCRY_MD_HD, GcryMDHd): Declared deprecated.
685         (gcry_mpi_t, gcry_sexp_t, gcry_cipher_hd_t, gcry_md_hd_t): New
686         types.
687
688 2003-06-04  Moritz Schulte  <moritz@g10code.com>
689
690         * sexp.c (sexp_sscan): New argument: arg_list, adjusted all
691         callers.
692         (ARG_NEXT): New macro.
693         (sexp_sscan): Use ARG_NEXT for receiving format string arguments.
694         (gcry_sexp_build_array): New function.
695
696 2003-06-02  Moritz Schulte  <moritz@g10code.com>
697
698         * gcrypt.h: Added some comments describing the gcry_sexp_*
699         functions.
700         Include <gpg-error.h> instead of <gpg/error.h>.
701
702 2003-06-01  Moritz Schulte  <moritz@g10code.com>
703
704         * sexp.c (OLDPARSECODE): Removed macro...
705         (gcry_sexp_canon_len): ... and do not use it.
706
707         * gcrypt.h (gcry_errno): Removed declaration.
708
709         * g10lib.h (string_to_pubkey_algo, pubkey_algo_to_string,
710         pubkey_nbits): Removed declarations for non-existing functions.
711
712 2003-05-31  Moritz Schulte  <moritz@g10code.com>
713
714         * cipher.h (is_RSA, is_ELGAMAL): Removed macros.
715
716         * g10lib.h (set_lasterr): Removed macro.
717         (_gcry_set_lasterr): Removed declaration.
718
719         * gcrypt.h: Changed declarations for: gcry_pk_algo_info,
720         gcry_md_open, gcry_md_copy, gcry_md_algo_info, gcry_md_info,
721         gcry_md_get_algo, gcry_random_add_bytes.
722         
723         (gcry_md_is_secure): Adjust macro for new API.
724
725 2003-05-29  Moritz Schulte  <moritz@g10code.com>
726
727         * gcrypt.h: Changed declarations for: gcry_cipher_open,
728         gcry_cipher_info, gcry_cipher_algo_info.
729         (gcry_cipher_get_algo_keylen): Adjuster for new
730         gcry_cipher_algo_info interface.
731         (gcry_cipher_get_algo_blklen): Likewise.
732
733         * global.c (gcry_errno): Removed function.
734         (gcry_strerror): Do not use gcry_errno.
735         (_gcry_set_lasterr): Removed function.
736         (last_ec): Removed variable.
737
738 2003-05-27  Moritz Schulte  <moritz@g10code.com>
739
740         * gcrypt.h (enum gcry_cipher_algos): Make Serpent IDs do not
741         conflict with OpenPGP.  Reported by Timo Schulz.
742
743         * global.c (gcry_control): Fixed name of enum list.
744
745 2003-05-25  Moritz Schulte  <moritz@g10code.com>
746
747         * cipher.h (gcry_cipher_spec): Adjust return type of `setkey' for
748         libgpg-error.
749         (gcry_pubkey_spec): Adjust return type of `generate',
750         `check_secret_key', `encrypt', `decrypt', `sign' and `verify' for
751         libgpg-error.
752
753         * sexp.c (gcry_sexp_canon_len): Adjusted for libgpg-error.
754         (gcry_sexp_create): Likewise.
755         (gcry_sexp_new): Likewise.
756         (sexp_sscan): Likewise.
757         (gcry_sexp_build): Likewise.
758         (gcry_sexp_sscan): Likewise.
759
760         * module.c (_gcry_module_add): Likewise.
761
762         * global.c (last_ec): Change type to gpg_error_t.
763         (gcry_control): Adjust for libgpg-error.
764         (gcry_errno): Likewise.
765         (gcry_strerror): Likewise.
766         (_gcry_set_lasterr): Likewise.
767         (gcry_xmalloc): Likewise.
768         (gcry_xrealloc): Likewise.
769
770 2003-05-22  Moritz Schulte  <moritz@g10code.com>
771
772         * types.h: Merged code from GnuPG regarding U64_C.
773
774         * missing-string.c (strsep): Removed function.
775
776         * g10lib.h: Removed declarations: strsep, strlwr.
777
778         * secmem.c (secmem_lock): New variable.
779         (SECMEM_LOCK, SECMEM_UNLOCK): New macros.
780         (_gcry_secmem_set_flags): Use SECMEM_LOCK and SECMEM_UNLOCK.
781         (_gcry_secmem_get_flags): Likewise.
782         (_gcry_secmem_init): Likewie.
783         (_gcry_secmem_malloc): Likewise.
784         (_gcry_secmem_free): Likewise.
785         (_gcry_secmem_malloc): Renamed to ...
786         (_gcry_secmem_malloc_internal): ... this.
787         (_gcry_secmem_malloc): New function, use SECMEM_LOCK,
788         SECMEM_UNLOCK, call _gcry_secmem_malloc_internal.
789         (_gcry_secmem_free): Renamed to ...
790         (_gcry_secmem_free_internal): ... this.
791         (_gcry_secmem_free): New function, use SECMEM_LOCK, SECMEM_UNLOCK,
792         call _gcry_secmem_free_internal.
793         (_gcry_secmem_realloc): Use SECMEM_LOCK, SECMEM_UNLOCK, call
794         _gcry_secmem_malloc_internal and _gcry_secmem_free_internal.
795         (_gcry_private_is_secure): Use SECMEM_LOCK, SECMEM_UNLOCK.
796         (_gcry_secmem_dump_stats): Likewise.
797         (_gcry_secmem_malloc_internal): Removed unused variable:
798         compressed.
799         Include "ath.h".
800
801 2003-05-21  Moritz Schulte  <moritz@g10code.com>
802
803         * gcrypt.h (GCRY_CIPHER_SERPENT128, GCRY_CIPHER_SERPENT192,
804         GCRY_CIPHER_SERPENT256): New symbols.
805
806 2003-05-19  Moritz Schulte  <moritz@g10code.com>
807
808         * gcrypt.h: Reversed changes from 2003-03-03 since they would have
809         been an unnecessary ABI break.
810
811 2003-05-13  Moritz Schulte  <moritz@g10code.com>
812
813         * secmem.c (stats_update): New function.
814         (BLOCK_HEAD_SIZE): New symbol.
815         (MB_FLAG_ACTIVE): New symbol.
816         (ADDR_TO_BLOCK, BLOCK_VALID): New macros.
817         (mb_get_next): New function.
818         (mb_get_prev): New function.
819         (mb_merge): New function.
820         (mb_get_new): New function.
821         (unused_blocks): Removed variable.
822         (init_pool): Initialize new memory pool.
823         (_gcry_secmem_malloc): Use new heap management code.
824         (_gcry_secmem_free): Likewise.
825         (_gcry_secmem_realloc): Likewise.
826         Renamed type MEMBLOCK to memblock_t.
827
828 2003-04-27  Moritz Schulte  <moritz@g10code.com>
829
830         * cipher.h (gcry_pubkey_spec): New member: sexp_names.
831
832 2003-04-23  Moritz Schulte  <moritz@g10code.com>
833
834         * cipher.h (gcry_pubkey_spec): Removed members: npkey, nskey,
835         nenc, nsig.
836         (gcry_pubkey_spec): Added members: elements_pkey, elements_skey,
837         elements_enc, elements_sig, elements_grip.
838
839 2003-04-17  Moritz Schulte  <moritz@g10code.com>
840
841         * g10lib.h (GcryModule): New typedef.
842
843         * gcrypt.h (gcry_cipher_register, gcry_cipher_unregister,
844         gcry_digest_register, gcry_digest_unregister,
845         gcry_pubkey_register, gcry_pubkey_unregister): Function
846         declarations removed - for now.
847         
848         * gcrypt.h (GcryModule): Declaration removed.
849         * gcrypt.h (GcryPubkeySpec, GcryDigestSpec, GcryCipherSpec):
850         Types Moved... 
851         * cipher.h: ... here.
852
853 2003-04-17  Moritz Schulte  <moritz@g10code.com>
854
855         * cipher.h: Declare digest_spec_sha512 and digest_spec_384.
856
857 2003-04-16  Moritz Schulte  <moritz@g10code.com>
858
859         * module.c (_gcry_module_use): New function.
860         * g10lib.h (_gcry_module_use): Declare function.
861
862         * libgcrypt-config.in: Support for --algorithms switch, which
863         prints the algorithms included in the built libgcrypt.
864
865         * global.c (gcry_set_progress_handler): Register progress
866         functions depending on the enabled algorithms.
867
868 2003-04-07  Moritz Schulte  <moritz@g10code.com>
869
870         * Makefile.am (libgcrypt_la_SOURCES): Added module.c
871
872         * module.c: New file.
873         (_gcry_module_add): New function.
874         (_gcry_module_drop): New function.
875         (_gcry_module_lookup): New function.
876         (_gcry_module_release): New function.
877
878         * g10lib.h (GcryModule): New types.
879         (FLAG_MODULE_DISABLED): New symbol.
880         Added declarations for _gcry_module_add, _gcry_module_release and
881         _gcry_module_lookup.
882
883         * gcrypt.h: New types: GcryPubkeySpec, GcryDigestSpec,
884         GcryCipherSpec.
885         Added declarations for: gcry_cipher_register,
886         gcry_cipher_unregister, gcry_digest_register,
887         gcry_digest_unregister, gcry_pubkey_register and
888         gcry_pubkey_unregister.
889
890         * cipher.h: Removed symbols: CIPHER_ALGO_NONE, CIPHER_ALGO_IDEA,
891         CIPHER_ALGO_3DES, CIPHER_ALGO_CAST5, CIPHER_ALGO_BLOWFISH,
892         CIPHER_ALGO_SAFER_SK128, CIPHER_ALGO_DES_SK, CIPHER_ALGO_TWOFISH,
893         CIPHER_ALGO_TWOFISH_OLD, CIPHER_ALGO_DUMMY, PUBKEY_USAGE_SIG,
894         PUBKEY_USAGE_ENC, DIGEST_ALGO_MD5, DIGEST_ALGO_SHA1,
895         DIGEST_ALGO_RMD160, DIGEST_ALGO_TIGER, PUBKEY_ALGO_RSA,
896         PUBKEY_ALGO_RSA_E, PUBKEY_ALGO_RSA_S, PUBKEY_ALGO_DSA,
897         PUBKEY_ALGO_ELGAMAL, PUBKEY_ALGO_ELGAMAL_E.
898
899 2003-04-02  Moritz Schulte  <moritz@g10code.com>
900
901         * benchmark.c (md_bench): Fix error message.
902
903 2003-03-31  Moritz Schulte  <moritz@g10code.com>
904
905         * benchmark.c (cipher_bench): Added CTR mode.
906
907 2003-03-30  Simon Josefsson  <jas@extundo.com>
908
909         * gcrypt.h (enum gcry_control_cmds): Add GCRY_SET_CTR.
910         (enum gcry_cipher_modes): Add GCRY_CIPHER_MODE_CTR.
911         (gcry_cipher_setctr): New macro to set counter.
912
913 2003-03-19  Moritz Schulte  <moritz@g10code.com>
914
915         * cipher.h (PUBKEY_FLAG_NO_BLINDING): New symbol.
916
917 2003-03-22  Simon Josefsson  <jas@extundo.com>
918
919         * gcrypt.h: Add GCRYCTL_SET_CBC_MAC and GCRY_CIPHER_CBC_MAC.
920
921 2003-03-19  Werner Koch  <wk@gnupg.org>
922
923         * g10lib.h: Adjusted primegen.c prototypes.
924
925 2003-03-12  Werner Koch  <wk@gnupg.org>
926
927         * sexp.c (sexp_sscan): Initialize NM.  Thanks to Ian Peters for
928         valgrinding this.
929
930 2003-03-06  Moritz Schulte  <mo@g10code.com>
931
932         * secmem.h (GCRY_SECMEM_FLAG_NO_WARNING,
933         GCRY_SECMEM_FLAG_SUSPEND_WARNING): New symbols.
934
935         * global.c (gcry_control): Use
936         GCRY_SECMEM_FLAG_{NO,SUSPEND}_WARNING, instead of hard-coded
937         values.
938         * secmem.c (_gcry_secmem_set_flags): Likewise.
939         * secmem.c (_gcry_secmem_get_flags): Likewise.
940         
941 2003-03-03  Moritz Schulte  <moritz@g10code.com>
942
943         * misc.c: Removed old FIXME, since there is already a function to
944         set the value of `verbosity_level'.
945
946         * gcrypt.h: Removed enumeration list: gcry_ctl_cmds.
947         New enumeration lists: gcry_global_control_cmds,
948         gcry_control_cmds, gcry_info_cmds, gcry_algo_info_cmds.
949
950 2003-03-02  Moritz Schulte  <moritz@g10code.com>
951
952         * gcrypt.h (gcry_cipher_reset): New macro for resetting a handle.
953
954 2003-02-28  Moritz Schulte  <moritz@g10code.com>
955
956         * secmem.c (DEFAULT_PAGESIZE): New symbol.
957         (init_pool): Use DEFAULT_PAGESIZE.
958
959 2003-02-23  Moritz Schulte  <moritz@g10code.com>
960
961         * secmem.h: Fix typo in declaration of _gcry_secmem_term.
962
963         * sexp.c: Move macro definitions of `digitp', `octdigit', `alphap'
964         and `hexdigit' ...
965         * g10lib.h: ... here.
966
967         * misc.c (_gcry_burn_stack): New function (former name:
968         burn_stack).
969
970         * g10lib.h (burn_stack): Declare _gcry_burn_stack().
971
972 2003-01-24  Werner Koch  <wk@gnupg.org>
973
974         * global.c (gcry_set_progress_handler): Register a random progress
975         handler.
976
977 2003-01-23  Werner Koch  <wk@gnupg.org>
978
979         * gcrypt.h (GCRY_ENABLE_QUICK_RANDOM): New. 
980         * global.c (gcry_control): Make use of it.
981
982 2003-01-21  Werner Koch  <wk@gnupg.org>
983
984         * gcrypt.h (gcry_random_add_bytes): Add QUALITY argument.
985
986 2003-01-21  Timo Schulz  <twoaday@freakmail.de>
987
988         * gcrypt.h (gcry_random_add_bytes): New.
989         
990 2003-01-20  Simon Josefsson  <jas@extundo.com>
991
992         * gcrypt.h (gcry_md_algos): Add GCRY_MD_CRC32,
993         GCRY_MD_CRC32_RFC1510, GCRY_MD_CRC24_RFC2440.
994
995 2003-01-16  Werner Koch  <wk@gnupg.org>
996
997         * gcrypt.h (gcry_md_write): Changed type of 2nd argument to void*.
998         (gcry_md_hash_buffer): Changed type of both buffers to void*.
999         (gcry_md_setkey): Changed type of 2nd argument to void*.
1000         (gcry_md_get_asnoid): New.
1001
1002 2003-01-15  Werner Koch  <wk@gnupg.org>
1003
1004         * sexp.c (gcry_sexp_length): Fixed.  This was seriously broken.
1005
1006 2003-01-14  Werner Koch  <wk@gnupg.org>
1007
1008         * gcrypt.h (GCRYERR_INV_FLAG), global.c (gcry_strerror): New.
1009
1010 2003-01-02  Werner Koch  <wk@gnupg.org>
1011
1012         * libgcrypt.vers: Temporary export _gcry_generate_elg_prime for
1013         use by GNUTLS. 
1014
1015 2002-12-21  Werner Koch  <wk@gnupg.org>
1016
1017         * gcrypt.h: Make use of gcc's pure and malloc attributes 
1018         (gcry_md_putc): Use a helper variable to avoid multiple
1019         evaluation of H. 
1020         * g10lib.h, stdmem.h, secmem.h: Use gcc attributes pure and malloc.
1021
1022         * stdmem.c (use_m_guard): Don't default to yes.
1023
1024 2002-12-19  Werner Koch  <wk@gnupg.org>
1025
1026         * global.c (global_init): The meat was never run due to a faulty
1027         check. Thanks to Nikos for pointing this out.
1028         
1029         * global.c (gcry_control): Return 1 and not -1 for the
1030         initialization tests.
1031
1032         * libgcrypt.vers: New.
1033         * Makefile.am: Use this instead of the build symbol file.
1034
1035         * global.c (gcry_control) <initialization>: Call the random module
1036         initializer to make sure that the pool lock flag has been
1037         initialized.
1038
1039 2002-12-09  Werner Koch  <wk@gnupg.org>
1040
1041         * global.c (gcry_calloc,gcry_calloc_secure): Check for overflow.
1042         Noted by Florian Weimer. 
1043
1044 2002-11-10  Simon Josefsson  <jas@extundo.com>
1045
1046         * gcrypt.h (gcry_ctl_cmds): New GCRYCTL_SET_CBC_CTS control flag.
1047         (gcry_cipher_flags): New GCRY_CIPHER_CBC_CTS gcry_cipher_open() flag.
1048         (gcry_cipher_cts): New macro for toggling CTS.
1049
1050 2002-11-10  Werner Koch  <wk@gnupg.org>
1051
1052         * gcrypt.h (GCRY_MD_MD4): New.  We use a non OpenPGP value here. 
1053
1054 2002-09-20  Werner Koch  <wk@gnupg.org>
1055
1056         * ath.c: Include sys.time.h if sys/select.h does not exist.
1057         (ath_select, ath_waitpid): Shortcut for Windows.
1058         * ath.h: Include some Windows headers.  By Timo.
1059
1060 2002-09-18  Werner Koch  <wk@gnupg.org>
1061
1062         * ath.h: Prefix ath_deinit.
1063
1064 2002-09-17  Werner Koch  <wk@gnupg.org>
1065
1066         * benchmark.c: New.
1067         (mpi_bench, do_powm): Add a a simple test for RSA.
1068
1069         * global.c (global_init): New.  Use it instead of the setting
1070         any_init_done.  Initialize the ATH system.
1071         (gcry_check_version): Hook global_init in.  This is the suggested
1072         way to initialize the library.
1073         (_gcry_no_internal_locking): Removed.  We simply call a ath_deinit
1074         and leave it to ATH to disbale the locking.
1075
1076         * ath.c, ath.h, ath-pth.c, ath-pthread.c: New. Taken from GPGME.
1077         * mutex.h: Removed.
1078         * Makefile.am (ath_components): New.
1079
1080 2002-09-16  Werner Koch  <wk@gnupg.org>
1081
1082         * secmem.c (_gcry_secmem_dump_stats): Replaced fprintf by log_*.
1083
1084 2002-08-23  Werner Koch  <wk@gnupg.org>
1085
1086         * missing-string.c: Removed unneeded strlwr.
1087
1088         * libgcrypt.m4: Made much more simple.
1089         * libgcrypt-config.in: Made --prefix work for --libs.
1090
1091 2002-08-14  Werner Koch  <wk@gnupg.org>
1092
1093         * gcrypt.h: Add GCRY_CIPGER_DES.  Included string.h for size_t.
1094         Suggested by Simon Josefsson.
1095
1096 2002-07-25  Werner Koch  <wk@gnupg.org>
1097
1098         * cipher.h: Added prototypes for progress functions.
1099         * global.c: Include cipher.h for those prototypes.
1100
1101         * stdmem.c (_gcry_private_realloc): Replaced void* by char * for
1102         pointer arithmetic reasons.  Noted by Stephan Austermuehle.
1103
1104 2002-06-24  Werner Koch  <wk@gnupg.org>
1105
1106         * missing-string.c: Include ctype.h.
1107
1108         * gcrypt.h (gcry_mpi_invm, gcry_mpi_div, gcry_mpi_mod)
1109         (gcry_mpi_swap): New.
1110
1111 2002-06-18  Werner Koch  <wk@gnupg.org>
1112
1113         * gcrypt.h: Added a bunch of brief function descriptions.
1114
1115 2002-05-21  Werner Koch  <wk@gnupg.org>
1116
1117         * misc.c (_gcry_log_printf): Don't initialize a va_list.  Noted by
1118         Jeff Johnson.
1119
1120         * global.c (gcry_set_progress_handler): New.
1121
1122         * gcrypt.h: Replaced the typedef for byte.
1123
1124 2002-05-16  Werner Koch  <wk@gnupg.org>
1125
1126         * missing-string.c: New.
1127
1128         * gcrypt.h: Add new error codes GCRYERR_SEXP_ and typedefs
1129         GcryMPI, GcrySexp, GcryCipherHd, GcryMDHd as aliases for the old
1130         ones using an underscore.
1131
1132         * global.c (gcry_strerror): Add strings fro the new error codes.
1133         * sexp.c (gcry_sexp_canon_len): Use a macro to convert from new to
1134         old error codes.
1135         (gcry_sexp_create,gcry_sexp_new): New.
1136
1137 2002-05-15  Werner Koch  <wk@gnupg.org>
1138
1139         * mutex.h (DEFINE_LOCAL_MUTEX): Macro to define a mutex and
1140         initialize it so that we can detect an unitialized mutex and don't
1141         read from stdin.
1142
1143 2002-05-14  Werner Koch  <wk@gnupg.org>
1144
1145         Changed license of all files to the LGPL.
1146
1147 2002-05-07  Werner Koch  <wk@gnupg.org>
1148
1149         * global.c (gcry_control): Add commands
1150         GCRYCTL_ANY_INITIALIZATION_P and GCRYCTL_INITIALIZATION_FINISHED_P
1151         so that other libraries are able to check for required
1152         initializations.
1153
1154 2002-05-02  Werner Koch  <wk@gnupg.org>
1155
1156         * gcrypt.h (GCRYCTL_DISABLE_INTERNAL_LOCKING): New.
1157         * global.c (gcry_control): Implement it.
1158         (_gcry_no_internal_locking): New.
1159         * mutex.h: Prefixed all fucntions with _gcry_.  Bypass all
1160         functions when desired.
1161
1162         * gcrypt.h (GCRYCTL_DISABLE_SECMEM): New.
1163         * global.c (gcry_control,gcry_malloc_secure,gcry_is_secure):
1164         Implement it here.
1165         * secmem.c (_gcry_private_is_secure): Return false if the pool is
1166         not initialized.
1167
1168         * gcrypt.h (GCRYCTL_INITIALIZATION_FINISHED): New.
1169
1170         * gcrypt.h (gcry_cipher_algos): Replaced RINDAEL by AES and change
1171         the macros to expand from rijdael to aes.
1172
1173         * stdmem.c (_gcry_private_malloc): Return NULL for 0 byte allocation.
1174         (_gcry_private_malloc_secure): Ditto.
1175
1176         * g10lib.h:  Copied the JNLIB_GCC macros from ../jnlib/mischelp.h
1177         and removed the inclusion of that file.
1178
1179 2002-04-15  Werner Koch  <wk@gnupg.org>
1180
1181         * global.c (gcry_strdup): New.
1182
1183 2002-03-18  Werner Koch  <wk@gnupg.org>
1184
1185         * mutex.h: New file with a portable thread mutex implementation
1186         written by Marcus Brinkmann.  Taken from GPGME.
1187
1188 2002-02-18  Werner Koch  <wk@gnupg.org>
1189
1190         * sexp.c (gcry_sexp_sscan): Don't initialize the dummy
1191         variable.  Suggested by Jordi Mallach.
1192
1193 2002-01-31  Werner Koch  <wk@gnupg.org>
1194
1195         * sexp.c (suitable_encoding,convert_to_hex,convert_to_string)
1196         (convert_to_token): New.
1197         (gcry_sexp_sprint): Better formatting of advanced encoding, does
1198         now insert LFs and escapes all unprintable characters.
1199         (unquote_string): New.
1200         (sexp_sscan): Implemented the missing conversion of quoted strings.
1201
1202 2002-01-26  Werner Koch  <wk@gnupg.org>
1203
1204         * libgcrypt-config.in: Add copyright notice.
1205
1206 2002-01-11  Werner Koch  <wk@gnupg.org>
1207
1208         * sexp.c (gcry_sexp_canon_len): Fixed last change.
1209
1210 2002-01-01  Timo Schulz <ts@winpt.org>
1211
1212         * stdmem.c (_gcry_private_realloc): If pointer is NULL now realloc
1213         behaves like malloc.
1214
1215 2001-12-20  Werner Koch  <wk@gnupg.org>
1216
1217         * sexp.c (gcry_sexp_canon_len): Describe the error codes and
1218         return an error if this is not a S-Exp; i.e. it does not start
1219         with an open parenthesis.
1220
1221 2001-12-18  Werner Koch  <wk@gnupg.org>
1222
1223         * sexp.c (gcry_sexp_canon_len): Fixed the test on NULL buffer.
1224
1225         * Makefile.am (DISTCLEANFILES): Include libgcrypt.sym
1226
1227         * sexp.c: Removed the commented test code because we now have a
1228         test in ../tests/
1229
1230 2001-12-17  Werner Koch  <wk@gnupg.org>
1231
1232         * sexp.c (gcry_sexp_canon_len): New.
1233
1234 2001-12-11  Werner Koch  <wk@gnupg.org>
1235
1236         * gcrypt.h: Fixed AES128 macro, add enum for OFB mode.
1237
1238 2001-12-05  Werner Koch  <wk@gnupg.org>
1239
1240         * misc.c (_gcry_log_printf): New.
1241         * sexp.c (dump_string,gcry_sexp_dump): Use logging functions
1242         instead of stderr.
1243
1244 2001-11-16  Werner Koch  <wk@gnupg.org>
1245
1246         * gcrypt.h: New constant GCRYCTL_IS_ALGO_ENABLED.
1247
1248 2001-10-02  Werner Koch  <wk@gnupg.org>
1249
1250         * gcrypt.h: Removed a couple of trailing commas.
1251
1252 2001-08-28  Werner Koch  <wk@gnupg.org>
1253
1254         * sexp.c (sexp_sscan): Add an argument to enable the
1255         arg_ptr. Changed all callers.  Suggested by Tom Holroyd.
1256
1257 2001-08-03  Werner Koch  <wk@gnupg.org>
1258
1259         * global.c (gcry_strerror): Updated list of error codes.
1260
1261 2001-07-23  Werner Koch  <wk@gnupg.org>
1262
1263         * gcrypt.h: Replaced the last ulong.  Noted by Rami Lehti.
1264
1265 2001-05-31  Werner Koch  <wk@gnupg.org>
1266
1267         * gcrypt.h, mpi.h: Made some mpi functions public.
1268
1269         * wrapper.c: Removed.
1270         * global.c: Renamed all g10_ prefixed functions which had wrappers 
1271         to gcry_xxx. So we now use the exported memory functions inernally.
1272
1273         Renamed all g10_ prefixed functions to _gcry_ prefixed ones.
1274         
1275         * g10lib.h (_GCRYPT_IN_LIBGCRYPT): Replace defintion by a test on it.
1276
1277 2001-05-28  Werner Koch  <wk@gnupg.org>
1278
1279         * libgcrypt.m4: Check GCRYPT_VERSION macro and not LIBGCRYPT_VERSION.
1280
1281         * mpi.h: Removed mpi_fromstr prototype.
1282
1283 2001-01-11  Werner Koch  <wk@gnupg.org>
1284
1285         * Makefile.am (libgcrypt_la_SOURCES): Add mpi.h
1286
1287 2000-12-19  Werner Koch  <wk@gnupg.org>
1288
1289         * types.h: Moved from ../include to here.
1290
1291         Major change:
1292         Removed all GnuPG stuff and renamed this piece of software
1293         to gcrypt. 
1294
1295 2000-11-14  Werner Koch  <wk@gnupg.org>
1296
1297         * mpi.h: Moved to ../mpi.
1298
1299         * Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency
1300         problems.
1301
1302 2000-10-11  Werner Koch  <wk@gnupg.org>
1303
1304         * mpi.h: Changed the way mpi_limb_t is defined.
1305
1306 2000-10-10  Werner Koch  <wk@gnupg.org>
1307
1308         * Makefile.am: Take version-info from configure.
1309
1310 2000-10-09  Werner Koch  <wk@gnupg.org>
1311
1312         * gcrypt.h: New cipher mode, new algo Arcfour and new error code
1313         GCRYERR_INV_CIPHER_MODE.
1314         * global.c (gcry_strerror): New errorcode.
1315
1316 Wed Oct  4 13:16:18 CEST 2000  Werner Koch  <wk@openit.de>
1317
1318         * gcrypt.h (gcry_md_setkey): Replaced macro by function prototype.
1319
1320 Mon Sep 18 16:35:45 CEST 2000  Werner Koch  <wk@openit.de>
1321
1322         * gcrypt.h (GCRYCTL_GET_ALGO_USAGE): New.
1323
1324         * secmem.c (secmem_realloc): check for failed secmem_malloc.  By
1325         Matt Kraai.
1326
1327 Mon Jul 31 10:04:47 CEST 2000  Werner Koch  <wk@openit.de>
1328
1329   * sexp.c: Removed the datalen fields from list tags.
1330   (gcry_sexp_car_data,gcry_sexp_cdr_data,gcry_sexp_car_mpi,
1331    gcry_sexp_cdr_mpi): Removed.
1332   (gcry_sexp_nth,gcry_sexp_nth_data,gcry_sexp_nth_mpi): New.
1333
1334 Fri Jul 28 18:19:11 CEST 2000  Werner Koch  <wk@openit.de>
1335
1336   * sexp.c (sexp_sscan): Fixed reallocation to secure memory.
1337   (new_empty_list): Removed
1338   (gcry_sexp_length): New.
1339   (gcry_sexp_enum): Removed.
1340   (normalize): New. Reworked the whole thing to use NULL for an empty list.
1341   (make_space): New instead of the macro.
1342
1343 Tue Jul 25 17:44:15 CEST 2000  Werner Koch  <wk@openit.de>
1344
1345   * sexp.c: Major rewrite.
1346   (gcry_sexp_sscan): Reordered arguments.  Moved functionality to ..
1347   (sexp_sscan): .. this.
1348   (gcry_sexp_build): New.
1349   (gcry_sexp_new_name_mpi, gcry_sexp_new_name_data, gcry_sexp_new_data,
1350    gcry_sexp_new_mpi): Removed.
1351
1352 Fri Jul 14 19:38:23 CEST 2000  Werner Koch  <wk@>
1353
1354   * gcrypt.h (gcry_md_start_debug, gcry_md_stop_debug): New.
1355   (gcry_ctl_cmds): New control values
1356
1357   * sexp.c (gcry_sexp_sscan): Add hex format parsing.
1358
1359   * secmem.c (lock_pool): Check for ENOSYS return my mlock() on old SCOs.
1360   (pool_is_mmapped): Made volatile.
1361   (lock_pool): No more warning for QNX. By Sam Roberts.
1362   (lock_pool,secmem_init): Additional check for dropped privs.
1363
1364 2000-03-21 09:18:48  Werner Koch  (wk@habibti.gnupg.de)
1365
1366         * gcrypt.h (gcry_md_setkey): New.
1367         (GCRY_MD_FLAG_HMAC): New.
1368
1369 Mon Jan 31 16:37:34 CET 2000  Werner Koch  <wk@gnupg.de>
1370
1371         * Makefile.am: Add g10lib.h
1372
1373 Thu Jan 27 18:00:44 CET 2000  Werner Koch  <wk@gnupg.de>
1374
1375         * sexp.c (gcry_sexp_sscan): Allow NULL for erroff.
1376
1377 Mon Jan 24 22:24:38 CET 2000  Werner Koch  <wk@gnupg.de>
1378
1379         * sexp.c (gcry_sexp_alist): New.
1380
1381 Mon Jan 24 13:04:28 CET 2000  Werner Koch  <wk@gnupg.de>
1382
1383         * secmem.c: Moved from ../util to here.
1384         * secmem.h: New.
1385         * stdmem.c: New. Based on the old ../util/memory.c.
1386         * stdmem.h: New.
1387
1388 Wed Dec  8 21:58:32 CET 1999  Werner Koch  <wk@gnupg.de>
1389
1390         * gcrypt.m4: New.
1391         * gcrypt-config: New.
1392
1393         * mpi.h (mpi_get_nbit_info): Removed
1394         (mpi_set_nbit_info): Removed.
1395         (struct gcry_mpi): Removed the nbits field.
1396
1397         * misc.c (g10_log_verbosity): New.
1398
1399         * global.c (g10_xstrdup): New.
1400
1401         * mpiapi.c: Removed.
1402
1403         * mpi.h: Moved from ../include to here.  Removed some obsolete
1404         prototypes and the iobuf.h header.
1405         * cipher.h: Moved from ../include to here. Removed the mpi.h header.
1406         * g10lib.h: Moved from ../include to here.
1407
1408 Fri Nov 19 17:15:20 CET 1999  Werner Koch  <wk@gnupg.de>
1409
1410         * sexp.c (dump_string): New.  Taken from gnupg/util/miscutil.c.
1411         (do_dump_list): s/print_string/dump_string/.
1412
1413         * testapi.c: New.
1414
1415         * mpiapi.c (gcry_mpi_randomize): Use new random API.
1416
1417 Sat Nov 13 17:44:23 CET 1999  Werner Koch  <wk@gnupg.de>
1418
1419         * gloabl.c (gcry_control): Add cases for dumping random
1420         and secmem stats.
1421
1422 Tue Oct 26 14:10:21 CEST 1999  Werner Koch  <wk@gnupg.de>
1423
1424         * pkapi.c: Removed.
1425
1426         * symapi.c: Removed.
1427
1428         * g10lib.h:  Moved to ../include.
1429
1430         * mdapi.c: Removed.
1431
1432 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1433
1434         * sexp.c: New.
1435
1436 Tue Dec  8 13:15:16 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
1437
1438         * gcrypt.h: New
1439         * mpiapi.c: New
1440
1441         
1442  Copyright (C) 1998,1999,2000,2001,2002,2003
1443                2004, 2005 Free Software Foundation, Inc.
1444
1445  This file is free software; as a special exception the author gives
1446  unlimited permission to copy and/or distribute it, with or without
1447  modifications, as long as this notice is preserved.
1448
1449  This file is distributed in the hope that it will be useful, but
1450  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1451  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.