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