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