Preparing the release
[libgcrypt.git] / NEWS
1 Noteworthy changes in version 1.4.1 (2008-04-25)
2 ------------------------------------------------
3
4  * Fixed a bug introduced by 1.3.1 which led to the comsumption of far
5    too much entropy for the intial seeding.
6
7  * Improved AES performance for CFB and CBC modes.
8
9  * Removed build problems for the Padlock support.
10
11
12 Noteworthy changes in version 1.4.0 (2007-12-10)
13 ------------------------------------------------
14
15  * New configure option --disable-padlock-support which is mostly
16    useful in case of build problems.
17
18
19 Noteworthy changes in version 1.3.2 (2007-12-03)
20 ------------------------------------------------
21
22  * The visibility attribute is now used if supported by the toolchain.
23
24  * The ACE engine of VIA processors is now used for AES-128.
25
26  * The ASN.1 DER template for SHA-224 has been fixed.
27
28
29 Noteworthy changes in version 1.3.1 (2007-10-26)
30 ------------------------------------------------
31
32  * The entire library is now under the LGPL. The helper programs and
33    the manual are under the GPL.  Kudos to Peter Gutmann for giving
34    permissions to relicense the rndw32 and rndunix modules.
35
36  * The Camellia cipher is now under the LGPL and included by default.
37
38  * Fixed a bug in the detection of symbol prefixes which inhibited the
39    build of optimzied assembler code on certain systems.
40
41  * Updated the entropy gatherer for W32.
42
43
44 Noteworthy changes in version 1.3.0 (2007-05-04)
45 ------------------------------------------------
46
47  * Changed the way the RNG gets initialized. This allows to keep it
48    uninitialized as long as no random numbers are used.  To override
49    this, the new macro gcry_fast_random_poll may be used.  It is in
50    general a good idea to spread this macro into the application code
51    to make sure that these polls happen often enough.
52
53  * Made the RNG immune against fork without exec.
54
55  * Reading and writing the random seed file is now protected by a
56    fcntl style file lock on systems that provide this function.
57
58  * Support for SHA-224 and HMAC using SHA-384 and SHA-512.
59
60  * Support for the SEED cipher.
61
62  * Support for the Camellia cipher.  Note that Camellia is disabled by
63    default, and that enabling it changes the license of libgcrypt from
64    LGPL to GPL.
65
66  * Support for OFB encryption mode.
67
68  * gcry_mpi_rshift does not anymore truncate the shift count.
69
70  * Reserved algorithm ranges for use by applications.
71
72  * Support for DSA2.
73
74  * The new function gcry_md_debug should be used instead of the
75    gcry_md_start_debug and gcry_md_stop_debug macros.
76
77  * New configure option --enable-random-daemon to support a system
78    wide random daemon.  The daemon code is experimental and not yet
79    very well working.  It will eventually allow to keep a global
80    random pool for the sake of short living processes.
81
82  * Non executable stack support is now used by default on systems
83    supporting it.
84
85  * Support for Microsoft Windows.
86
87  * Assembler support for the AMD64 architecture.
88
89  * New configure option --enable-mpi-path for optimized builds.
90
91  * Experimental support for ECDSA; should only be used for testing.
92
93  * New control code GCRYCTL_PRINT_CONFIG to print the build
94    configuration.
95
96  * Minor changes to some function declarations.  Buffer arguments are
97    now typed as void pointer.  This should not affect any compilation.
98    Fixed two bugs in return values and clarified documentation.
99
100  * Interface changes relative to the 1.2.0 release:
101  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
102  gcry_fast_random_poll   NEW
103  gcry_md_debug           NEW
104  gcry_sexp_nth_string    NEW
105  GCRY_MD_SHA224          NEW
106  GCRY_PK_USAGE_CERT      NEW
107  GCRY_PK_USAGE_AUTH      NEW
108  GCRY_PK_USAGE_UNKN      NEW
109  GCRY_PK_ECDSA           NEW
110  GCRY_CIPHER_SEED        NEW
111  GCRY_CIPHER_CAMELLIA128 NEW
112  GCRY_CIPHER_CAMELLIA192 NEW
113  GCRY_CIPHER_CAMELLIA256 NEW
114  GCRYCTL_FAKED_RANDOM_P  NEW 
115  GCRYCTL_PRINT_CONFIG    NEW
116  GCRYCTL_SET_RNDEGD_SOCKET  NEW.
117  gcry_mpi_scan           CHANGED: Argument BUFFER is now void*.
118  gcry_pk_algo_name       CHANGED: Returns "?" instead of NULL.
119  gcry_cipher_algo_name   CHANGED: Returns "?" instead of "".
120  gcry_pk_spec_t          CHANGED: Element ALIASES is now const ptr.
121  gcry_md_write_t         CHANGED: Argument BUF is now a const void*.
122  gcry_md_ctl             CHANGED: Argument BUFFER is now void*.
123  gcry_cipher_encrypt     CHANGED: Arguments IN and OUT are now void*.
124  gcry_cipher_decrypt     CHANGED: Arguments IN and OUT are now void*.
125  gcry_sexp_sprint        CHANGED: Argument BUFFER is now void*.
126  gcry_create_nonce       CHANGED: Argument BUFFER is now void*.
127  gcry_randomize          CHANGED: Argument BUFFER is now void*.
128  gcry_cipher_register    CHANGED: Argument ALGORITHM_ID is now int*.
129  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
130
131
132 Noteworthy changes in version 1.2.0 (2004-04-15)
133 ------------------------------------------------
134
135  * First stable release.
136
137
138 Noteworthy changes in version 1.1.94 (2004-03-29)
139 -------------------------------------------------
140
141  * The support for multi-threaded users goes into its third
142    incarnation.  We removed compile time support for thread libraries.
143    To support the thread library of your choice, you have to set up
144    callback handlers at initialization time.  New data structures, a
145    new control command, and default initializers are provided for this
146    purpose.
147
148  * Interface changes relative to the 1.1.93 release:
149 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
150 libgcrypt-config --thread       OBSOLETE
151 libgcrypt-pth.la                REMOVED
152 libgcrypt-pthread.la            REMOVED
153 GCRYCTL_SET_THREAD_CBS          NEW
154 struct gcrypt_thread_cbs        NEW
155 enum gcry_thread_option         NEW
156 GCRY_THREAD_OPTION_PTH_IMPL     NEW
157 GCRY_THREAD_OPTION_PTHREAD_IMPL NEW
158 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
159
160 Noteworthy changes in version 1.1.93 (2004-03-06)
161 -------------------------------------------------
162
163  * The automatic thread library detection has finally been removed.
164    From now on, only linking explicitely to libgcrypt, libgcrypt-pth
165    or libgcrypt-pthread is supported.
166
167 Noteworthy changes in version 1.1.92 (2004-02-20)
168 -------------------------------------------------
169
170  * Minor bug fixes.
171
172  * Included a limited implementation of RFC2268.
173
174  * Changed API of the gcry_ac_ functions.  Only a very few programs
175    should be affected by this.
176
177  * Interface changes relative to the 1.1.91 release:
178 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
179 GCRY_CIPHER_RFC2268_40          NEW.
180 gcry_ac_data_set                CHANGED: New argument FLAGS.
181 gcry_ac_data_get_name           CHANGED: New argument FLAGS.
182 gcry_ac_data_get_index          CHANGED: New argument FLAGS.
183 gcry_ac_key_pair_generate       CHANGED: New and reordered arguments.
184 gcry_ac_key_test                CHANGED: New argument HANDLE.
185 gcry_ac_key_get_nbits           CHANGED: New argument HANDLE.
186 gcry_ac_key_get_grip            CHANGED: New argument HANDLE.
187 gcry_ac_data_search             REMOVED.
188 gcry_ac_data_add                REMOVED.
189 GCRY_AC_DATA_FLAG_NO_BLINDING   REMOVED.
190 GCRY_AC_FLAG_NO_BLINDING        NEW: Replaces above.
191
192
193 Noteworthy changes in version 1.1.91 (2003-12-19)
194 -------------------------------------------------
195
196  * Code cleanups and minor bug fixes.
197
198
199 Noteworthy changes in version 1.1.90 (2003-11-14)
200 -------------------------------------------------
201
202  * The use of the GCRY_WEAK_RANDOM level is now deprecated in favor of
203    the new gcry_create_nonce function.
204
205  * gcry_sexp_build now supports a "%b" format to include a memory buffer.
206
207  * Minor configuration fixes.
208  
209  * Interface changes relative to the 1.1.44 release:
210 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
211 gcry_create_nonce               NEW
212 gcry_sexp_build                 ENHANCED
213
214
215 Noteworthy changes in version 1.1.44 (2003-10-31)
216 -------------------------------------------------
217
218  * Bug fixes and more code cleanups.
219
220  * Enhanced the prime API.
221
222  * Interface changes relative to the 1.1.43 release:
223 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
224 gcry_prime_group_generator      NEW
225 gcry_prime_release_factors      NEW
226
227
228 Noteworthy changes in version 1.1.43 (2003-09-04)
229 -------------------------------------------------
230
231  * Bug fixes and internal code cleanups.
232
233  * Support for the Serpent cipher algorithm.
234
235  * Interface changes relative to the 1.1.42 release:
236 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
237 gcry_prime_generate             NEW
238 gcry_prime_check                NEW
239
240
241 Noteworthy changes in version 1.1.42 (2003-07-31)
242 -------------------------------------------------
243
244  * Major API cleanup.  Applications need to be converted to the new
245    API.  See README.apichanges for hints on how to do that.  Backward
246    compatibility is provided where it was possible without too much
247    effort and did not collide with the overall sanitization effort.
248    However, this is only for ease of transition.  NO DEPRECATED
249    FUNCTION OR DATA TYPE IS CONSIDERED A PART OF THE API OR ABI AND
250    WILL BE DROPPED IN THE FUTURE WITHOUT CHANGING THE SONAME OF THE
251    LIBRARY. 
252
253  * If gcrypt.h is included in sources compiled by GCC 3.1 or later,
254    deprecated attributes will warn about use of obsolete functions and
255    type definitions.  You can suppress these warnings by passing
256    -Wno-deprecated-declarations to the gcc command.
257
258  * gcry_check_version must be called from now on to initialize the
259    library, it is not longer optional.
260
261  * Removed `libgcrypt errno' concept.
262
263  * Libgcrypt depends on libgpg-error, a library that provides error
264    codes and according functions for all GnuPG components.  Functions
265    that used to return error codes asa `int' have been changed to
266    return a code of type `gcry_error_t'.  All GCRYERR_* error symbols
267    have been removed, since they are now contained in libgpg-error
268    (GPG_ERR_*). All functions and types in libgpg-error have also been
269    wrapped in Libgcrypt. The new types are gcry_err_code_t and
270    gcry_err_source_t.  The new functions are gcry_err_code,
271    gcry_err_source, gcry_error, gcry_err_make, gcry_error_from_errno,
272    gcry_err_make_from_errno, gcry_err_code_from_errno,
273    gcry_err_code_to_errno, gcry_strsource.
274
275  * New function gcry_mpi_dump to help in debugging. 
276
277  * Added alternative interface for asymmetric cryptography.
278
279  * CRC-32, CRC-32 a'la RFC 1510, CRC-24 a'la RFC 2440 are now
280    supported.
281
282  * SHA-256, SHA-384 and SHA-512 are now supported.
283
284  * 128 bit Twofish is now supported.
285
286  * The random module won't print the "not enough random bytes
287    available" anymore.  A new progress status is issued instead.
288
289  * CBC-MAC for block ciphers is now supported, by using a
290    GCRY_CIPHER_CBC_MAC cipher flag.
291
292  * CTR mode for block ciphers is now supported.
293
294  * The public RSA exponent can now be specified in key generation. 
295
296  * RSA blinding is now supported and is used automatically for RSA
297    decryption.  It can be explicitely disabled by using the
298    `no-blinding' symbol in the `flags' S-Expression or by using the
299    GCRY_AC_FLAG_DATA_NO_BLINDING flag when using the ac interface.
300
301  * gcry_sexp_canon_len does not use a `historically encoded' error
302    code anymore.
303
304
305  * Interface changes relative to the 1.1.12 release:
306 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
307 GCRY_MPI                        DEPRECATED; Use: gcry_mpi_t
308 GcryMPI                         DEPRECATED; Use: gcry_mpi_t
309 GCRY_SEXP                       DEPRECATED; Use: gcry_sexp_t
310 GcrySexp                        DEPRECATED; Use: gcry_sexp_t
311 GCRY_CIPHER_HD                  DEPRECATED; Use: gcry_cipher_hd_t
312 GcryCipherHd                    DEPRECATED; Use: gcry_cipher_hd_t
313 GCRY_MD_HD                      DEPRECATED; Use: gcry_md_hd_t
314 GcryMDHd                        DEPRECATED; Use: gcry_md_hd_t
315 gcry_error_t                    NEW
316 gcry_err_code_t                 NEW
317 gcry_err_source_t               NEW
318 gcry_err_make                   NEW
319 gcry_error                      NEW
320 gcry_err_code                   NEW
321 gcry_err_source                 NEW
322 gcry_err_code_from_errno        NEW
323 gcry_err_code_to_errno          NEW
324 gcry_err_make_from_errno        NEW
325 gcry_error_from_errno           NEW
326 gcry_strsource                  NEW
327 GCRYERR_{some error code}       REMOVED; Use GPG_ERR_*
328                                          from libgpg-error instead.
329 gcry_errno                      REMOVED
330 gcry_sexp_canon_len             CHANGED
331 gcry_sexp_build_array           NEW
332 gcry_mpi_scan                   CHANGED: New argument to separate in/out args.
333 gcry_mpi_print                  CHANGED: Ditto.
334 gcry_mpi_dump                   NEW
335 gcry_cipher_open                CHANGED
336 gcry_cipher_reset               NEW
337 gcry_cipher_register            NEW
338 gcry_cipher_unregister          NEW
339 gcry_cipher_list                NEW
340 gcry_cipher_algo_keylen         REPLACED macro with function.
341 gcry_cipher_algo_blklen         REPLACED macro with function.
342 gcry_pk_register                NEW
343 gcry_pk_unregister              NEW
344 gcry_pk_list                    NEW
345 gcry_pk_decrypt                 ENHANCED: Allows flag to return
346                                           complete S-expression.
347 gcry_md_open                    CHANGED
348 gcry_md_copy                    CHANGED
349 gcry_md_is_enabled              NEW
350 gcry_md_is_secure               NEW
351 gcry_md_register                NEW
352 gcry_md_unregister              NEW
353 gcry_md_list                    NEW
354 gcry_ac_data_t                  NEW
355 gcry_ac_key_t                   NEW
356 gcry_ac_key_pair_t              NEW
357 gcry_ac_handle_t                NEW
358 gcry_ac_key_spec_rsa_t          NEW
359 gcry_ac_data_new                NEW
360 gcry_ac_data_destroy            NEW
361 gcry_ac_data_set                NEW
362 gcry_ac_data_copy               NEW
363 gcry_ac_data_length             NEW
364 gcry_ac_data_get_name           NEW
365 gcry_ac_data_get_index          NEW
366 gcry_ac_data_clear              NEW
367 gcry_ac_open                    NEW
368 gcry_ac_close                   NEW
369 gcry_ac_key_init                NEW
370 gcry_ac_key_pair_generate       NEW
371 gcry_ac_key_pair_extract        NEW
372 gcry_ac_key_data_get            NEW
373 gcry_ac_key_test                NEW
374 gcry_ac_key_get_nbits           NEW
375 gcry_ac_key_get_grip            NEW
376 gcry_ac_key_destroy             NEW
377 gcry_ac_key_pair_destroy        NEW
378 gcry_ac_data_encrypt            NEW
379 gcry_ac_data_decrypt            NEW
380 gcry_ac_data_sign               NEW
381 gcry_ac_data_verify             NEW
382 gcry_ac_id_to_name              NEW
383 gcry_ac_name_to_id              NEW
384 gcry_handler_progress_t         NEW
385 gcry_handler_alloc_t            NEW
386 gcry_handler_secure_check_t     NEW
387 gcry_handle_realloc_t           NEW
388 gcry_handler_free_t             NEW
389 gcry_handler_no_mem_t           NEW
390 gcry_handler_error_t            NEW
391 gcry_handler_log_t              NEW
392 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
393
394 Noteworthy changes in version 1.1.12 (2003-01-20)
395 -------------------------------------------------
396
397  * gcry_pk_sign, gcry_pk_verify and gcry_pk_encrypt can now handle an
398    optional pkcs1 flags parameter in the S-expression.  A similar flag
399    may be passed to gcry_pk_decrypt but it is only syntactically
400    implemented.
401
402  * New convenience macro gcry_md_get_asnoid.
403
404  * There is now some real stuff in the manual.
405
406
407 Noteworthy changes in version 1.1.11 (2002-12-21)
408 -------------------------------------------------
409
410  * Don't export internal symbols anymore (currently only for GNU systems)
411
412  * New algorithm: MD4
413
414  * Implemented ciphertext stealing.
415
416  * Smaller bugs fixes and a few new OIDs.
417
418  * Interface changes relative to the 1.1.8 release:
419 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
420 gcry_cipher_cts                   NEW
421 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
422
423
424 Noteworthy changes in version 1.1.10 (2002-09-20)
425 -------------------------------------------------
426
427  * Fixed shared library builds for i386, PPC and Sparc.
428
429  * Added simple benchmark tool.
430
431  * Replaced the internal mutexes by code which automatically adapts to
432    the used threading library.  Currently Pth and Pthread are
433    supported.  For non-ELF systems the GNU toolchain is now required..
434
435  * Added untested support to build Windows DLLs.
436
437 Noteworthy changes in version 1.1.9 (2002-08-23)
438 ------------------------------------------------
439
440  * Support for plain old DES.
441
442
443 Noteworthy changes in version 1.1.8 (2002-06-25)
444 ------------------------------------------------
445
446  * Minor cleanups and exported a few new functions.
447
448  * Interface changes relative to the 1.1.7 release:
449 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
450 gcry_mpi_div                      NEW
451 gcry_mpi_mod                      NEW
452 gcry_mpi_invm                     NEW
453 gcry_mpi_swap                     NEW
454 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
455
456 Noteworthy changes in version 1.1.7 (2002-05-21)
457 ------------------------------------------------
458
459 * Libgcrypt is now distributed under the terms of the GNU Lesser
460   General Public License; see the README file for details.    
461   
462 * It is possible to use libgcrypt w/o intialized secure memory.
463
464 * Libgcrypt should now be thread safe after the initialization.
465   gcry_control (GCRYCRL_INITIALIZATION_FINISHED,NULL,0) should have
466   been called before creating additional threads.
467
468  * Interface changes relative to the 1.1.6 release:
469 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
470 GCRYCTL_DISABLE_INTERNAL_LOCKING  NEW
471 GCRYCTL_DISABLE_SECMEM            NEW
472 GCRYCTL_INITIALIZATION_FINISHED   NEW
473 GCRYCTL_INITIALIZATION_FINISHED_P NEW
474 GCRYCTL_ANY_INITIALIZATION_P      NEW
475 gcry_strdup                       NEW
476 gcry_sexp_create                  NEW
477 gcry_sexp_new                     NEW
478 gcry_set_progress_handler         NEW
479 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
480
481 Noteworthy changes in version 1.1.6 (2002-02-07)
482 ------------------------------------------------
483
484   * Enhanced the S-expression conversion functions.
485         
486 Noteworthy changes in version 1.1.5 (2001-12-18)
487 ------------------------------------------------
488
489   * gcry_{cipher,md}_map_name are now able to map stringified object IDs.
490
491   * New functions gcry_sexp_canon_len and gcry_cipher_mode_from_oid.
492
493   * Closed some memory leaks.
494
495
496 Noteworthy changes in version 1.1.4 (2001-08-03)
497 ------------------------------------------------
498
499   * Arcfour does now work.                   
500
501   * Some minor fixes.
502
503   * Added a first test program
504
505   * Migrated to autoconf 2.52.
506
507
508 Noteworthy changes in version 1.1.3 (2001-05-31)
509 ------------------------------------------------
510
511   * First release of Libgcrypt which is a result of splitting GnuPG
512     into into libgcrypt and GnuPG.
513
514
515 Copyright 2001, 2002, 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
516
517 This file is free software; as a special exception the author gives
518 unlimited permission to copy and/or distribute it, with or without
519 modifications, as long as this notice is preserved.
520
521 This file is distributed in the hope that it will be useful, but
522 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
523 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.