SHA-1: Add SSSE3 implementation
[libgcrypt.git] / NEWS
1 Noteworthy changes in version 1.6.0 (unreleased)
2 ------------------------------------------------
3
4  * Removed the long deprecated gcry_ac interface.  Thus Libgcrypt is
5    not anymore ABI compatible to previous versions if they used the ac
6    interface.
7
8  * Removed the module register subsystem.
9
10  * The deprecated message digest debug macros have been removed.  Use
11    gcry_md_debug instead.
12
13  * Removed deprecated control codes.
14
15  * Added support for the IDEA cipher algorithm.
16
17  * Added support for the Salsa20 and reduced Salsa20/12 stream ciphers.
18
19  * Added limited support for the GOST 28147-89 cipher algorithm.
20
21  * Added support for the GOST R 34.11-94 and R 34.11-2012 (Stribog)
22    hash algorithms.
23
24  * Added a random number generator to directly use the system's RNG.
25    Also added an interface to prefer the use of a specified RNG.
26
27  * Added support for the SCRYPT algorithm.
28
29  * Mitigated the Yarom/Falkner flush+reload side-channel attack on RSA
30    secret keys.  See <http://eprint.iacr.org/2013/448> [CVE-2013-4242].
31
32  * Added support for Deterministic DSA as per RFC-6969.
33
34  * Added support for curve Ed25519.
35
36  * Added a scatter gather hash convenience function.
37
38  * Added several MPI amd SEXP helper functions.
39
40  * Added support for negative numbers to gcry_mpi_print,
41    gcry_mpi_aprint and gcry_mpi_scan.
42
43  * The algorithm ids GCRY_PK_ECDSA and GCRY_PK_ECDH are now
44    deprecated.  Use GCRY_PK_ECC if you need an algorithm id.
45
46  * Changed gcry_pk_genkey for "ecc" to only include the curve name and
47    not the parameters.  The flag "param" may be used to revert this.
48
49  * Added a feature to globally disable selected hardware features.
50
51  * Interface changes relative to the 1.5.0 release:
52  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
53  gcry_ac_*                       REMOVED.
54  GCRY_AC_*                       REMOVED.
55  gcry_module_t                   REMOVED.
56  gcry_cipher_register            REMOVED.
57  gcry_cipher_unregister          REMOVED.
58  gcry_cipher_list                REMOVED.
59  gcry_pk_register                REMOVED.
60  gcry_pk_unregister              REMOVED.
61  gcry_pk_list                    REMOVED.
62  gcry_md_register                REMOVED.
63  gcry_md_unregister              REMOVED.
64  gcry_md_list                    REMOVED.
65  gcry_md_start_debug             REMOVED (macro).
66  gcry_md_stop_debug              REMOVED (macro).
67  GCRYCTL_SET_KEY                 REMOVED.
68  GCRYCTL_SET_IV                  REMOVED.
69  GCRYCTL_SET_CTR                 REMOVED.
70  GCRYCTL_DISABLE_ALGO            CHANGED: Not anymore thread-safe.
71  gcry_pk_genkey                  CHANGED: ECC curve params not returned.
72  gcry_md_hash_buffers            NEW.
73  gcry_buffer_t                   NEW.
74  GCRYCTL_SET_ENFORCED_FIPS_FLAG  NEW.
75  GCRYCTL_SET_PREFERRED_RNG_TYPE  NEW.
76  GCRYCTL_GET_CURRENT_RNG_TYPE    NEW.
77  GCRYCTL_CLOSE_RANDOM_DEVICE     NEW.
78  GCRY_RNG_TYPE_STANDARD          NEW.
79  GCRY_RNG_TYPE_FIPS              NEW.
80  GCRY_RNG_TYPE_SYSTEM            NEW.
81  gcry_mpi_is_neg                 NEW.
82  gcry_mpi_neg                    NEW.
83  gcry_mpi_abs                    NEW.
84  gcry_mpi_snatch                 NEW.
85  gcry_mpi_set_opaque_copy        NEW.
86  gcry_mpi_point_t                NEW.
87  gcry_mpi_point_new              NEW.
88  gcry_mpi_point_release          NEW.
89  gcry_mpi_point_get              NEW.
90  gcry_mpi_point_snatch_get       NEW.
91  gcry_mpi_point_set              NEW.
92  gcry_mpi_point_snatch_set       NEW.
93  gcry_ctx_t                      NEW.
94  gcry_ctx_release                NEW.
95  gcry_mpi_ec_new                 NEW.
96  gcry_mpi_ec_get_mpi             NEW.
97  gcry_mpi_ec_get_point           NEW.
98  gcry_mpi_ec_set_mpi             NEW.
99  gcry_mpi_ec_set_point           NEW.
100  gcry_mpi_ec_get_affine          NEW.
101  gcry_mpi_ec_dup                 NEW.
102  gcry_mpi_ec_add                 NEW.
103  gcry_mpi_ec_mul                 NEW.
104  gcry_mpi_ec_curve_point         NEW.
105  GCRYMPI_FLAG_IMMUTABLE          NEW.
106  GCRYMPI_FLAG_CONST              NEW.
107  GCRYMPI_FLAG_USER1              NEW.
108  GCRYMPI_FLAG_USER2              NEW.
109  GCRYMPI_FLAG_USER3              NEW.
110  GCRYMPI_FLAG_USER4              NEW.
111  GCRYMPI_CONST_ONE               NEW.
112  GCRYMPI_CONST_TWO               NEW.
113  GCRYMPI_CONST_THREE             NEW.
114  GCRYMPI_CONST_FOUR              NEW.
115  GCRYMPI_CONST_EIGHT             NEW.
116  GCRYMPI_FMT_OPAQUE              NEW.
117  GCRYPT_VERSION_NUMBER           NEW.
118  GCRY_KDF_SCRYPT                 NEW.
119  gcry_pubkey_get_sexp            NEW.
120  GCRYCTL_DISABLE_LOCKED_SECMEM   NEW.
121  GCRYCTL_DISABLE_PRIV_DROP       NEW.
122  GCRY_CIPHER_SALSA20             NEW.
123  gcry_sexp_nth_buffer            NEW.
124  gcry_sexp_extract_param         NEW.
125  GCRY_CIPHER_SALSA20R12          NEW.
126  GCRY_CIPHER_GOST28147           NEW.
127  GCRY_MD_GOSTR3411_94            NEW.
128  GCRY_MD_STRIBOG256              NEW.
129  GCRY_MD_STRIBOG512              NEW.
130  GCRY_PK_ECC                     NEW.
131  gcry_log_debug                  NEW.
132  gcry_log_debughex               NEW.
133  gcry_log_debugmpi               NEW.
134  gcry_log_debugpnt               NEW.
135
136
137 Noteworthy changes in version 1.5.0 (2011-06-29)
138 ------------------------------------------------
139
140  * New function gcry_kdf_derive implementing OpenPGP S2K algorithms
141    and PBKDF2.
142
143  * Support for WindowsCE.
144
145  * Support for ECDH.
146
147  * Support for OAEP and PSS methods as described by RFC-3447.
148
149  * Fixed PKCS v1.5 code to always return the leading zero.
150
151  * New format specifiers "%M" and "%u" for gcry_sexp_build.
152
153  * Support opaque MPIs with "%m" and "%M" in gcry_sexp_build.
154
155  * New functions gcry_pk_get_curve and gcry_pk_get_param to map ECC
156    parameters to a curve name and to retrieve parameter values.
157
158  * gcry_mpi_cmp applied to opaque values has a defined semantic now.
159
160  * Uses the Intel AES-NI instructions if available.
161
162  * The use of the deprecated Alternative Public Key Interface
163    (gcry_ac_*) will now print compile time warnings.
164
165  * The module register subsystem has been deprecated.  This subsystem
166    is not flexible enough and would always require ABI changes to
167    extend the internal interfaces.  It will eventually be removed.
168    Please contact us on the gcrypt-devel mailing list to discuss
169    whether you really need this feature or how it can be replaced by
170    an internal plugin mechanism.
171
172  * CTR mode may now be used with data chunks of arbitrary length.
173
174  * Changes also done in 1.4.6 (2010-07-13):
175  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
176
177  * New variants of the TIGER algorithm.
178
179  * New cipher algorithm mode for AES-WRAP.
180
181  * Changes also done in 1.4.5 (2009-12-11):
182  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
183
184  * Fixed minor memory leak in DSA key generation.
185
186  * No more switching to FIPS mode if /proc/version is not readable.
187
188  * Fixed sigill during Padlock detection on old CPUs.
189
190  * Fixed a hang on some W2000 machines.
191
192  * Boosted SHA-512 performance by 30% on ia32 boxes and gcc 4.3;
193    SHA-256 went up by 25%.
194
195  * Interface changes relative to the 1.4.6 release:
196  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
197  GCRY_PK_ECDH               NEW.
198  gcry_pk_get_curve          NEW.
199  gcry_pk_get_param          NEW.
200  GCRYCTL_DISABLE_HWF        NEW.
201  gcry_kdf_derive            NEW.
202  gcry_pk_encrypt            EXTENDED: Support OAEP.
203  gcry_pk_decrypt            EXTENDED: Support OAEP.
204  gcry_pk_sign               EXTENDED: Support PSS.
205  gcry_pk_verify             EXTENDED: Support PSS.
206  gcry_sexp_build            EXTENDED: Add format specifiers M and u.
207
208  * Interface changes relative to the 1.4.2 release:
209  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
210  GCRY_CIPHER_MODE_AESWRAP   NEW.
211  GCRY_MD_TIGER1             NEW.
212  GCRY_MD_TIGER2             NEW.
213
214
215 Noteworthy changes in version 1.4.4 (2009-01-22)
216 ------------------------------------------------
217
218  * Publish GCRY_MODULE_ID_USER and GCRY_MODULE_ID_USER_LAST constants.
219    This functionality has been in Libgcrypt since 1.3.0.
220
221  * MD5 may now be used in non-enforced fips mode.
222
223  * Fixed HMAC for SHA-384 and SHA-512 with keys longer than 64 bytes.
224
225  * In fips mode, RSA keys are now generated using the X9.31 algorithm
226    and DSA keys using the FIPS 186-2 algorithm.
227
228  * The transient-key flag is now also supported for DSA key
229    generation.  DSA domain parameters may be given as well.
230
231
232 Noteworthy changes in version 1.4.3 (2008-09-18)
233 ------------------------------------------------
234
235  * Try to auto-initialize Libgcrypt to minimize the effect of
236    applications not doing that correctly.  This is not a perfect
237    solution but given that many applicationion would totally fail
238    without such a hack, we try to help at least with the most common
239    cases.  Folks, please read the manual to learn how to properly
240    initialize Libgcrypt!
241
242  * Auto-initialize the secure memory to 32k instead of aborting the
243    process.
244
245  * Log fatal errors via syslog.
246
247  * Changed the name and the semantics of the fips mode config file.
248
249  * Add convenience macro gcry_fips_mode_active.
250
251  * More self-tests.
252
253  * Documentation cleanups.
254
255
256 Noteworthy changes in version 1.4.2 (2008-09-08)
257 ------------------------------------------------
258
259  * The long missing gcry_mpi_lshift function has been added.
260
261  * RSA key generation now supports a "transient-key" flag.
262
263  * The keygrip computation for ECDSA has been implemented thus ECDSA
264    is now fully supported.
265
266  * A few macros have been replaced by functions for better type
267    checking.
268
269  * The thread initialization structure now carries version
270    information.
271
272  * The manual describes more clearly how to initialize Libgcrypt.
273
274  * The library may now be switched into a FIPS mode.
275
276  * Interface changes relative to the 1.3.0 release:
277  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
278  GCRYCTL_OPERATIONAL_P   NEW.
279  GCRYCTL_FIPS_MODE_P     NEW.
280  GCRYCTL_FORCE_FIPS_MODE NEW.
281  gcry_cipher_setkey      NEW: Replaces macro.
282  gcry_cipher_setiv       NEW: Replaces macro.
283  gcry_cipher_setctr      NEW: Replaces macro.
284  gcry_mpi_lshift         NEW.
285  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
286
287
288 Noteworthy changes in version 1.4.1 (2008-04-25)
289 ------------------------------------------------
290
291  * Fixed a bug introduced by 1.3.1 which led to the comsumption of far
292    too much entropy for the intial seeding.
293
294  * Improved AES performance for CFB and CBC modes.
295
296  * Removed build problems for the Padlock support.
297
298
299 Noteworthy changes in version 1.4.0 (2007-12-10)
300 ------------------------------------------------
301
302  * New configure option --disable-padlock-support which is mostly
303    useful in case of build problems.
304
305
306 Noteworthy changes in version 1.3.2 (2007-12-03)
307 ------------------------------------------------
308
309  * The visibility attribute is now used if supported by the toolchain.
310
311  * The ACE engine of VIA processors is now used for AES-128.
312
313  * The ASN.1 DER template for SHA-224 has been fixed.
314
315
316 Noteworthy changes in version 1.3.1 (2007-10-26)
317 ------------------------------------------------
318
319  * The entire library is now under the LGPL. The helper programs and
320    the manual are under the GPL.  Kudos to Peter Gutmann for giving
321    permissions to relicense the rndw32 and rndunix modules.
322
323  * The Camellia cipher is now under the LGPL and included by default.
324
325  * Fixed a bug in the detection of symbol prefixes which inhibited the
326    build of optimzied assembler code on certain systems.
327
328  * Updated the entropy gatherer for W32.
329
330
331 Noteworthy changes in version 1.3.0 (2007-05-04)
332 ------------------------------------------------
333
334  * Changed the way the RNG gets initialized. This allows to keep it
335    uninitialized as long as no random numbers are used.  To override
336    this, the new macro gcry_fast_random_poll may be used.  It is in
337    general a good idea to spread this macro into the application code
338    to make sure that these polls happen often enough.
339
340  * Made the RNG immune against fork without exec.
341
342  * Reading and writing the random seed file is now protected by a
343    fcntl style file lock on systems that provide this function.
344
345  * Support for SHA-224 and HMAC using SHA-384 and SHA-512.
346
347  * Support for the SEED cipher.
348
349  * Support for the Camellia cipher.  Note that Camellia is disabled by
350    default, and that enabling it changes the license of libgcrypt from
351    LGPL to GPL.
352
353  * Support for OFB encryption mode.
354
355  * gcry_mpi_rshift does not anymore truncate the shift count.
356
357  * Reserved algorithm ranges for use by applications.
358
359  * Support for DSA2.
360
361  * The new function gcry_md_debug should be used instead of the
362    gcry_md_start_debug and gcry_md_stop_debug macros.
363
364  * New configure option --enable-random-daemon to support a system
365    wide random daemon.  The daemon code is experimental and not yet
366    very well working.  It will eventually allow to keep a global
367    random pool for the sake of short living processes.
368
369  * Non executable stack support is now used by default on systems
370    supporting it.
371
372  * Support for Microsoft Windows.
373
374  * Assembler support for the AMD64 architecture.
375
376  * New configure option --enable-mpi-path for optimized builds.
377
378  * Experimental support for ECDSA; should only be used for testing.
379
380  * New control code GCRYCTL_PRINT_CONFIG to print the build
381    configuration.
382
383  * Minor changes to some function declarations.  Buffer arguments are
384    now typed as void pointer.  This should not affect any compilation.
385    Fixed two bugs in return values and clarified documentation.
386
387  * Interface changes relative to the 1.2.0 release:
388  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
389  gcry_fast_random_poll   NEW
390  gcry_md_debug           NEW
391  gcry_sexp_nth_string    NEW
392  GCRY_MD_SHA224          NEW
393  GCRY_PK_USAGE_CERT      NEW
394  GCRY_PK_USAGE_AUTH      NEW
395  GCRY_PK_USAGE_UNKN      NEW
396  GCRY_PK_ECDSA           NEW
397  GCRY_CIPHER_SEED        NEW
398  GCRY_CIPHER_CAMELLIA128 NEW
399  GCRY_CIPHER_CAMELLIA192 NEW
400  GCRY_CIPHER_CAMELLIA256 NEW
401  GCRYCTL_FAKED_RANDOM_P  NEW
402  GCRYCTL_PRINT_CONFIG    NEW
403  GCRYCTL_SET_RNDEGD_SOCKET  NEW.
404  gcry_mpi_scan           CHANGED: Argument BUFFER is now void*.
405  gcry_pk_algo_name       CHANGED: Returns "?" instead of NULL.
406  gcry_cipher_algo_name   CHANGED: Returns "?" instead of "".
407  gcry_pk_spec_t          CHANGED: Element ALIASES is now const ptr.
408  gcry_md_write_t         CHANGED: Argument BUF is now a const void*.
409  gcry_md_ctl             CHANGED: Argument BUFFER is now void*.
410  gcry_cipher_encrypt     CHANGED: Arguments IN and OUT are now void*.
411  gcry_cipher_decrypt     CHANGED: Arguments IN and OUT are now void*.
412  gcry_sexp_sprint        CHANGED: Argument BUFFER is now void*.
413  gcry_create_nonce       CHANGED: Argument BUFFER is now void*.
414  gcry_randomize          CHANGED: Argument BUFFER is now void*.
415  gcry_cipher_register    CHANGED: Argument ALGORITHM_ID is now int*.
416  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
417
418
419 Noteworthy changes in version 1.2.0 (2004-04-15)
420 ------------------------------------------------
421
422  * First stable release.
423
424
425 Noteworthy changes in version 1.1.94 (2004-03-29)
426 -------------------------------------------------
427
428  * The support for multi-threaded users goes into its third
429    incarnation.  We removed compile time support for thread libraries.
430    To support the thread library of your choice, you have to set up
431    callback handlers at initialization time.  New data structures, a
432    new control command, and default initializers are provided for this
433    purpose.
434
435  * Interface changes relative to the 1.1.93 release:
436 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
437 libgcrypt-config --thread       OBSOLETE
438 libgcrypt-pth.la                REMOVED
439 libgcrypt-pthread.la            REMOVED
440 GCRYCTL_SET_THREAD_CBS          NEW
441 struct gcrypt_thread_cbs        NEW
442 enum gcry_thread_option         NEW
443 GCRY_THREAD_OPTION_PTH_IMPL     NEW
444 GCRY_THREAD_OPTION_PTHREAD_IMPL NEW
445 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
446
447 Noteworthy changes in version 1.1.93 (2004-03-06)
448 -------------------------------------------------
449
450  * The automatic thread library detection has finally been removed.
451    From now on, only linking explicitely to libgcrypt, libgcrypt-pth
452    or libgcrypt-pthread is supported.
453
454 Noteworthy changes in version 1.1.92 (2004-02-20)
455 -------------------------------------------------
456
457  * Minor bug fixes.
458
459  * Included a limited implementation of RFC2268.
460
461  * Changed API of the gcry_ac_ functions.  Only a very few programs
462    should be affected by this.
463
464  * Interface changes relative to the 1.1.91 release:
465 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
466 GCRY_CIPHER_RFC2268_40          NEW.
467 gcry_ac_data_set                CHANGED: New argument FLAGS.
468 gcry_ac_data_get_name           CHANGED: New argument FLAGS.
469 gcry_ac_data_get_index          CHANGED: New argument FLAGS.
470 gcry_ac_key_pair_generate       CHANGED: New and reordered arguments.
471 gcry_ac_key_test                CHANGED: New argument HANDLE.
472 gcry_ac_key_get_nbits           CHANGED: New argument HANDLE.
473 gcry_ac_key_get_grip            CHANGED: New argument HANDLE.
474 gcry_ac_data_search             REMOVED.
475 gcry_ac_data_add                REMOVED.
476 GCRY_AC_DATA_FLAG_NO_BLINDING   REMOVED.
477 GCRY_AC_FLAG_NO_BLINDING        NEW: Replaces above.
478
479
480 Noteworthy changes in version 1.1.91 (2003-12-19)
481 -------------------------------------------------
482
483  * Code cleanups and minor bug fixes.
484
485
486 Noteworthy changes in version 1.1.90 (2003-11-14)
487 -------------------------------------------------
488
489  * The use of the GCRY_WEAK_RANDOM level is now deprecated in favor of
490    the new gcry_create_nonce function.
491
492  * gcry_sexp_build now supports a "%b" format to include a memory buffer.
493
494  * Minor configuration fixes.
495
496  * Interface changes relative to the 1.1.44 release:
497 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
498 gcry_create_nonce               NEW
499 gcry_sexp_build                 ENHANCED
500
501
502 Noteworthy changes in version 1.1.44 (2003-10-31)
503 -------------------------------------------------
504
505  * Bug fixes and more code cleanups.
506
507  * Enhanced the prime API.
508
509  * Interface changes relative to the 1.1.43 release:
510 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
511 gcry_prime_group_generator      NEW
512 gcry_prime_release_factors      NEW
513
514
515 Noteworthy changes in version 1.1.43 (2003-09-04)
516 -------------------------------------------------
517
518  * Bug fixes and internal code cleanups.
519
520  * Support for the Serpent cipher algorithm.
521
522  * Interface changes relative to the 1.1.42 release:
523 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
524 gcry_prime_generate             NEW
525 gcry_prime_check                NEW
526
527
528 Noteworthy changes in version 1.1.42 (2003-07-31)
529 -------------------------------------------------
530
531  * Major API cleanup.  Applications need to be converted to the new
532    API.  See README.apichanges for hints on how to do that.  Backward
533    compatibility is provided where it was possible without too much
534    effort and did not collide with the overall sanitization effort.
535    However, this is only for ease of transition.  NO DEPRECATED
536    FUNCTION OR DATA TYPE IS CONSIDERED A PART OF THE API OR ABI AND
537    WILL BE DROPPED IN THE FUTURE WITHOUT CHANGING THE SONAME OF THE
538    LIBRARY.
539
540  * If gcrypt.h is included in sources compiled by GCC 3.1 or later,
541    deprecated attributes will warn about use of obsolete functions and
542    type definitions.  You can suppress these warnings by passing
543    -Wno-deprecated-declarations to the gcc command.
544
545  * gcry_check_version must be called from now on to initialize the
546    library, it is not longer optional.
547
548  * Removed `libgcrypt errno' concept.
549
550  * Libgcrypt depends on libgpg-error, a library that provides error
551    codes and according functions for all GnuPG components.  Functions
552    that used to return error codes asa `int' have been changed to
553    return a code of type `gcry_error_t'.  All GCRYERR_* error symbols
554    have been removed, since they are now contained in libgpg-error
555    (GPG_ERR_*). All functions and types in libgpg-error have also been
556    wrapped in Libgcrypt. The new types are gcry_err_code_t and
557    gcry_err_source_t.  The new functions are gcry_err_code,
558    gcry_err_source, gcry_error, gcry_err_make, gcry_error_from_errno,
559    gcry_err_make_from_errno, gcry_err_code_from_errno,
560    gcry_err_code_to_errno, gcry_strsource.
561
562  * New function gcry_mpi_dump to help in debugging.
563
564  * Added alternative interface for asymmetric cryptography.
565
566  * CRC-32, CRC-32 a'la RFC 1510, CRC-24 a'la RFC 2440 are now
567    supported.
568
569  * SHA-256, SHA-384 and SHA-512 are now supported.
570
571  * 128 bit Twofish is now supported.
572
573  * The random module won't print the "not enough random bytes
574    available" anymore.  A new progress status is issued instead.
575
576  * CBC-MAC for block ciphers is now supported, by using a
577    GCRY_CIPHER_CBC_MAC cipher flag.
578
579  * CTR mode for block ciphers is now supported.
580
581  * The public RSA exponent can now be specified in key generation.
582
583  * RSA blinding is now supported and is used automatically for RSA
584    decryption.  It can be explicitely disabled by using the
585    `no-blinding' symbol in the `flags' S-Expression or by using the
586    GCRY_AC_FLAG_DATA_NO_BLINDING flag when using the ac interface.
587
588  * gcry_sexp_canon_len does not use a `historically encoded' error
589    code anymore.
590
591
592  * Interface changes relative to the 1.1.12 release:
593 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
594 GCRY_MPI                        DEPRECATED; Use: gcry_mpi_t
595 GcryMPI                         DEPRECATED; Use: gcry_mpi_t
596 GCRY_SEXP                       DEPRECATED; Use: gcry_sexp_t
597 GcrySexp                        DEPRECATED; Use: gcry_sexp_t
598 GCRY_CIPHER_HD                  DEPRECATED; Use: gcry_cipher_hd_t
599 GcryCipherHd                    DEPRECATED; Use: gcry_cipher_hd_t
600 GCRY_MD_HD                      DEPRECATED; Use: gcry_md_hd_t
601 GcryMDHd                        DEPRECATED; Use: gcry_md_hd_t
602 gcry_error_t                    NEW
603 gcry_err_code_t                 NEW
604 gcry_err_source_t               NEW
605 gcry_err_make                   NEW
606 gcry_error                      NEW
607 gcry_err_code                   NEW
608 gcry_err_source                 NEW
609 gcry_err_code_from_errno        NEW
610 gcry_err_code_to_errno          NEW
611 gcry_err_make_from_errno        NEW
612 gcry_error_from_errno           NEW
613 gcry_strsource                  NEW
614 GCRYERR_{some error code}       REMOVED; Use GPG_ERR_*
615                                          from libgpg-error instead.
616 gcry_errno                      REMOVED
617 gcry_sexp_canon_len             CHANGED
618 gcry_sexp_build_array           NEW
619 gcry_mpi_scan                   CHANGED: New argument to separate in/out args.
620 gcry_mpi_print                  CHANGED: Ditto.
621 gcry_mpi_dump                   NEW
622 gcry_cipher_open                CHANGED
623 gcry_cipher_reset               NEW
624 gcry_cipher_register            NEW
625 gcry_cipher_unregister          NEW
626 gcry_cipher_list                NEW
627 gcry_cipher_algo_keylen         REPLACED macro with function.
628 gcry_cipher_algo_blklen         REPLACED macro with function.
629 gcry_pk_register                NEW
630 gcry_pk_unregister              NEW
631 gcry_pk_list                    NEW
632 gcry_pk_decrypt                 ENHANCED: Allows flag to return
633                                           complete S-expression.
634 gcry_md_open                    CHANGED
635 gcry_md_copy                    CHANGED
636 gcry_md_is_enabled              NEW
637 gcry_md_is_secure               NEW
638 gcry_md_register                NEW
639 gcry_md_unregister              NEW
640 gcry_md_list                    NEW
641 gcry_ac_data_t                  NEW
642 gcry_ac_key_t                   NEW
643 gcry_ac_key_pair_t              NEW
644 gcry_ac_handle_t                NEW
645 gcry_ac_key_spec_rsa_t          NEW
646 gcry_ac_data_new                NEW
647 gcry_ac_data_destroy            NEW
648 gcry_ac_data_set                NEW
649 gcry_ac_data_copy               NEW
650 gcry_ac_data_length             NEW
651 gcry_ac_data_get_name           NEW
652 gcry_ac_data_get_index          NEW
653 gcry_ac_data_clear              NEW
654 gcry_ac_open                    NEW
655 gcry_ac_close                   NEW
656 gcry_ac_key_init                NEW
657 gcry_ac_key_pair_generate       NEW
658 gcry_ac_key_pair_extract        NEW
659 gcry_ac_key_data_get            NEW
660 gcry_ac_key_test                NEW
661 gcry_ac_key_get_nbits           NEW
662 gcry_ac_key_get_grip            NEW
663 gcry_ac_key_destroy             NEW
664 gcry_ac_key_pair_destroy        NEW
665 gcry_ac_data_encrypt            NEW
666 gcry_ac_data_decrypt            NEW
667 gcry_ac_data_sign               NEW
668 gcry_ac_data_verify             NEW
669 gcry_ac_id_to_name              NEW
670 gcry_ac_name_to_id              NEW
671 gcry_handler_progress_t         NEW
672 gcry_handler_alloc_t            NEW
673 gcry_handler_secure_check_t     NEW
674 gcry_handle_realloc_t           NEW
675 gcry_handler_free_t             NEW
676 gcry_handler_no_mem_t           NEW
677 gcry_handler_error_t            NEW
678 gcry_handler_log_t              NEW
679 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
680
681 Noteworthy changes in version 1.1.12 (2003-01-20)
682 -------------------------------------------------
683
684  * gcry_pk_sign, gcry_pk_verify and gcry_pk_encrypt can now handle an
685    optional pkcs1 flags parameter in the S-expression.  A similar flag
686    may be passed to gcry_pk_decrypt but it is only syntactically
687    implemented.
688
689  * New convenience macro gcry_md_get_asnoid.
690
691  * There is now some real stuff in the manual.
692
693
694 Noteworthy changes in version 1.1.11 (2002-12-21)
695 -------------------------------------------------
696
697  * Don't export internal symbols anymore (currently only for GNU systems)
698
699  * New algorithm: MD4
700
701  * Implemented ciphertext stealing.
702
703  * Smaller bugs fixes and a few new OIDs.
704
705  * Interface changes relative to the 1.1.8 release:
706 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
707 gcry_cipher_cts                   NEW
708 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
709
710
711 Noteworthy changes in version 1.1.10 (2002-09-20)
712 -------------------------------------------------
713
714  * Fixed shared library builds for i386, PPC and Sparc.
715
716  * Added simple benchmark tool.
717
718  * Replaced the internal mutexes by code which automatically adapts to
719    the used threading library.  Currently Pth and Pthread are
720    supported.  For non-ELF systems the GNU toolchain is now required..
721
722  * Added untested support to build Windows DLLs.
723
724 Noteworthy changes in version 1.1.9 (2002-08-23)
725 ------------------------------------------------
726
727  * Support for plain old DES.
728
729
730 Noteworthy changes in version 1.1.8 (2002-06-25)
731 ------------------------------------------------
732
733  * Minor cleanups and exported a few new functions.
734
735  * Interface changes relative to the 1.1.7 release:
736 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
737 gcry_mpi_div                      NEW
738 gcry_mpi_mod                      NEW
739 gcry_mpi_invm                     NEW
740 gcry_mpi_swap                     NEW
741 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
742
743 Noteworthy changes in version 1.1.7 (2002-05-21)
744 ------------------------------------------------
745
746 * Libgcrypt is now distributed under the terms of the GNU Lesser
747   General Public License; see the README file for details.
748
749 * It is possible to use libgcrypt w/o intialized secure memory.
750
751 * Libgcrypt should now be thread safe after the initialization.
752   gcry_control (GCRYCRL_INITIALIZATION_FINISHED,NULL,0) should have
753   been called before creating additional threads.
754
755  * Interface changes relative to the 1.1.6 release:
756 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
757 GCRYCTL_DISABLE_INTERNAL_LOCKING  NEW
758 GCRYCTL_DISABLE_SECMEM            NEW
759 GCRYCTL_INITIALIZATION_FINISHED   NEW
760 GCRYCTL_INITIALIZATION_FINISHED_P NEW
761 GCRYCTL_ANY_INITIALIZATION_P      NEW
762 gcry_strdup                       NEW
763 gcry_sexp_create                  NEW
764 gcry_sexp_new                     NEW
765 gcry_set_progress_handler         NEW
766 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
767
768 Noteworthy changes in version 1.1.6 (2002-02-07)
769 ------------------------------------------------
770
771   * Enhanced the S-expression conversion functions.
772
773 Noteworthy changes in version 1.1.5 (2001-12-18)
774 ------------------------------------------------
775
776   * gcry_{cipher,md}_map_name are now able to map stringified object IDs.
777
778   * New functions gcry_sexp_canon_len and gcry_cipher_mode_from_oid.
779
780   * Closed some memory leaks.
781
782
783 Noteworthy changes in version 1.1.4 (2001-08-03)
784 ------------------------------------------------
785
786   * Arcfour does now work.
787
788   * Some minor fixes.
789
790   * Added a first test program
791
792   * Migrated to autoconf 2.52.
793
794
795 Noteworthy changes in version 1.1.3 (2001-05-31)
796 ------------------------------------------------
797
798   * First release of Libgcrypt which is a result of splitting GnuPG
799     into into libgcrypt and GnuPG.
800
801
802 Copyright 2001, 2002, 2003, 2004, 2007, 2008,
803           2009, 2011 Free Software Foundation, Inc.
804 Copyright 2013 g10 Code GmbH
805
806 This file is free software; as a special exception the author gives
807 unlimited permission to copy and/or distribute it, with or without
808 modifications, as long as this notice is preserved.
809
810 This file is distributed in the hope that it will be useful, but
811 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
812 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.