Fix possible realloc overflow for gpgsm and uiserver engines.
[gpgme.git] / NEWS
diff --git a/NEWS b/NEWS
index 4d42032..ff75e9c 100644 (file)
--- a/NEWS
+++ b/NEWS
-Noteworthy changes in version 1.1.7 (unreleased)
+Noteworthy changes in version 1.5.1 (unreleased) [C__/A__/R_]
+-------------------------------------------------------------
+
+ * Fix possible overflow in gpgsm and uiserver engines.
+   [CVE-2014-35640]
+
+ * Add support for GnuPG 2.1's --with-secret option.
+
+ * Interface changes relative to the 1.5.0 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ GPGME_KEYLIST_MODE_WITH_SECRET NEW.
+
+
+Noteworthy changes in version 1.5.0 (2014-05-21) [C23/A12/R0]
+-------------------------------------------------------------
+
+ * On Unices the engine file names are not not anymore hardwired but
+   located via the envvar PATH.  All options to set the name of the
+   engines for the configure run are removed.
+
+ * If GPGME finds the gpgconf binary it defaults to using gpg2 or
+   whatever gpgconf tells as name for the OpenPGP engine.  If gpgconf
+   is not found, GPGME looks for an engine named "gpg".
+
+ * New feature to use the gpgme I/O subsystem to run arbitrary
+   commands.
+
+ * New flag to use encryption without the default compression step.
+
+ * New function to access "gpg-conf --list-dirs"
+
+ * New configure option --enable-fixed-path for use by Android.
+
+ * Support ECC algorithms.
+
+ * Interface changes relative to the 1.4.3 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gpgme_get_dirinfo              NEW.
+ gpgme_op_spawn_start           NEW.
+ gpgme_op_spawn                 NEW.
+ GPGME_PROTOCOL_SPAWN           NEW.
+ GPGME_SPAWN_DETACHED           NEW.
+ GPGME_SPAWN_ALLOW_SET_FG       NEW.
+ GPGME_ENCRYPT_NO_COMPRESS      NEW.
+ GPGME_PK_ECC                   NEW.
+ GPGME_MD_SHA224                NEW.
+ gpgme_subkey_t                 EXTENDED: New field curve.
+ GPGME_STATUS_PLAINTEXT_LENGTH  NEW.
+ GPGME_STATUS_MOUNTPOINT        NEW.
+ GPGME_STATUS_PINENTRY_LAUNCHED NEW.
+ GPGME_STATUS_ATTRIBUTE         NEW.
+ GPGME_STATUS_BEGIN_SIGNING     NEW.
+ GPGME_STATUS_KEY_NOT_CREATED   NEW.
+
+
+Noteworthy changes in version 1.4.3 (2013-08-12) [C22/A11/R0]
+-------------------------------------------------------------
+
+ * The default engine names are now taken from the output of gpgconf.
+   If gpgconf is not found the use of gpg 1 is assumed.
+
+ * Under Windows the default engines names are first searched in the
+   installation directory of the gpgme DLL.
+
+ * New function gpgme_data_identify to detect the type of a message.
+
+ * Interface changes relative to the 1.4.2 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gpgme_signers_count            NEW.
+ gpgme_data_type_t              NEW.
+ gpgme_data_identify            NEW.
+
+
+Noteworthy changes in version 1.4.2 (2013-05-28) [C21/A10/R0]
+-------------------------------------------------------------
+
+ * Allow symmetric encryption with gpgme_op_encrypt_sign.
+
+ * Fixed mismatching off_t definitions on Windows.
+
+ * Interface changes relative to the 1.4.1 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gpgme_off_t                    NEW.
+ gpgme_size_t                   NEW.
+ GPGME_PROTOCOL_OPENPGP         NEW alias.
+
+
+Noteworthy changes in version 1.4.1 (2013-05-01) [C20/A9/R1]
+------------------------------------------------------------
+
+ * Fixed reading of gpg.conf files with excessive use of the group
+   option.
+
+ * Fixed building with the i686-w64-mingw32 toolchain.
+
+ * Disabled FD passing by default for Apple.
+
+
+Noteworthy changes in version 1.4.0 (2013-02-26) [C20/A9/R0]
+------------------------------------------------------------
+
+ * New function gpgme_set_global_flag to help debugging on Android.
+
+ * New function gpgme_io_writen as a convenience wrapper around
+   gpgme_io_write.
+
+ * New functions to support the pinentry mode feature of GnuPG 2.1.
+
+ * New macro GPGME_VERSION_NUMBER to allow supporting different API
+   versions without the need for a configure test.
+
+ * Several improvements for gpgme-tool.
+
+ * Better logging of the common "invalid engine" error code.
+
+ * Support for FD passing is now enabled by default.  The configure
+   option --disable-fd-passing may be used to disable this.
+
+ * Interface changes relative to the 1.3.1 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ GPGME_VERSION_NUMBER           NEW.
+ gpgme_io_writen                NEW.
+ gpgme_set_global_flag          NEW.
+ gpgme_set_pinentry_mode        NEW.
+ gpgme_get_pinentry_mode        NEW.
+ gpgme_pinentry_mode_t          NEW.
+ GPGME_PINENTRY_MODE_DEFAULT    NEW.
+ GPGME_PINENTRY_MODE_ASK        NEW.
+ GPGME_PINENTRY_MODE_CANCEL     NEW.
+ GPGME_PINENTRY_MODE_ERROR      NEW.
+ GPGME_PINENTRY_MODE_LOOPBACK   NEW.
+
+
+Noteworthy changes in version 1.3.2 (2012-05-02)
 ------------------------------------------------
 
- * 
+ * Remove support for libgpgme-pth.  As far as we know, this was never used,
+   and GnuPG is going to use our own npth in the future.
+
+ * Fix signature summary information for a missing X.509 key.
+
+ * Fix parsing of dates >= year 2038.
+
+
+Noteworthy changes in version 1.3.1 (2011-06-16)
+------------------------------------------------
+
+ * Ported to Windows CE.
+
+ * Detect GPG versions not supporting ---passwd.
+
+ * Interface changes relative to the 1.3.0 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ GPGME_EXPORT_MODE_MINIMAL      NEW
+ GPGME_STATUS_SUCCESS          NEW
+ gpgme_err_code_from_syserror   NEW
+ gpgme_err_set_errno            NEW
+ gpgme_error_from_errno                CHANGED: Return gpgme_error_t (compatible type).
+ gpgme_error_from_syserror      NEW
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Noteworthy changes in version 1.3.0 (2010-01-11)
+------------------------------------------------
+
+ * GPGME does not come with an internal libassuan version anymore.
+   The external libassuan 1.1.0 release or later is required.  For
+   application programmers on systems that can resolve inter-library
+   dependencies at runtime, this is a transparent change.
+
+ * New engine GPGME_PROTOCOL_G13 to support the new g13 tool.
+
+ * New engine GPGME_PROTOCOL_UISERVER to support UI Servers.
+
+ * New API to change the passphrase of a key.
+
+ * Interface changes relative to the 1.2.0 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ GPGME_STATUS_INV_SGNR    NEW.
+ GPGME_STATUS_NO_SGNR     NEW.
+ GPGME_PROTOCOL_G13      NEW.
+ gpgme_op_g13_mount      NEW.
+ gpgme_g13_result_t      NEW.
+ GPGME_PK_ECDSA           NEW.
+ GPGME_PK_ECDH            NEW.
+ gpgme_op_passwd_start    NEW.
+ gpgme_op_passwd          NEW.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Noteworthy changes in version 1.2.0 (2009-06-18)
+------------------------------------------------
+
+ * New encryption flag GPGME_ENCRYPT_NO_ENCRYPT_TO to disable default
+   recipients.
+
+ * gpgme_new will fail if gpgme_check_version was not called, or a
+   selftest failed (for example, if -mms-bitfields was not used on
+   MingW32 targets).
+
+ * New functions gpgme_io_read and gpgme_io_write for use with
+   gpgme_passphrase_cb_t and gpgme_edit_cb_t functions.
+
+ * New functions gpgme_result_ref and gpgme_result_unref to detach
+   result structures from a context.
+
+ * New functions gpgme_op_export_keys_start and gpgme_op_export_keys
+   that allow to specify exported keys through gpgme_key_t objects
+   instead of patterns.
+
+ * New mode of operation gpgme_export_mode_t that allows exporting
+   external keys.
+
+ * Interface changes relative to the 1.1.7 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ GPGME_KEYLIST_MODE_EPHEMERAL   NEW.
+ GPGME_PROTOCOL_ASSUAN          NEW.
+ gpgme_assuan_data_cb_t         NEW.
+ gpgme_assuan_inquire_cb_t      NEW.
+ gpgme_assuan_status_cb_t       NEW.
+ gpgme_op_assuan_transact_start NEW.
+ gpgme_op_assuan_transact       NEW.
+ gpgme_op_assuan_result         NEW.
+ gpgme_op_import_keys           NEW.
+ gpgme_op_import_keys_start     NEW.
+ gpgme_subkey_t                 EXTENDED: New fields is_cardkey, card_number.
+ GPGME_ENCRYPT_NO_ENCRYPT_TO    NEW.
+ gpgme_check_version            CHANGED: Is now a macro.
+ gpgme_new                      EXTENDED: More failure codes.
+ gpgme_io_read                  NEW.
+ gpgme_io_write                 NEW.
+ gpgme_result_ref               NEW.
+ gpgme_result_unref             NEW.
+ gpgme_export_mode_t            NEW.
+ gpgme_export_ext_start         EXTENDED: Arg RESERVED is now a MODE flag.
+ gpgme_op_export                EXTENDED: Arg RESERVED is now a MODE flag.
+ gpgme_op_export_ext_start      EXTENDED: Arg RESERVED is now a MODE flag.
+ gpgme_op_export_ext            EXTENDED: Arg RESERVED is now a MODE flag.
+ gpgme_op_export_keys_start     NEW.
+ gpgme_op_export_keys           NEW.
+ GPGME_DATA_ENCODING_URL        NEW.
+ GPGME_DATA_ENCODING_URL0       NEW.
+ GPGME_DATA_ENCODING_URLESC     NEW.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Noteworthy changes in version 1.1.8 (2008-12-08)
+------------------------------------------------
+
+ * SIGPIPE is now again ignored as described in the manual.  Fixes
+   regresion introduced with 1.1.6.
+
+
+Noteworthy changes in version 1.1.7 (2008-10-17)
+------------------------------------------------
+
+ * Using GPGME_KEYLIST_MODE_LOCAL combined with
+   GPGME_KEYLIST_MODE_EXTERN is now supported; it uses the
+   --locate-keys feature of gpg (>= 2.0.10).
+
+ * The encoding of gpgme_data_t objects can affect the output encoding
+   of export, sign and encrypt operations now (the same operations
+   that are also affected by the ASCII mode switch).  We believe this
+   change in the ABI is innocent enough not to break existing
+   applications (it only affects the S/MIME backend on certain
+   operations).
+
+ * The reference manual now includes the specification of "The GnuPG
+   UI Server protocol".
+
+ * A new function gpgme_cancel_async can be used to asynchronously
+   cancel any pending operation at any time, from any thread.
 
  * Interface changes relative to the 1.1.6 release:
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gpgme_op_encrypt               CHANGED: Output encoding can affect result.
+gpgme_op_encrypt_start         CHANGED: Output encoding can affect result.
+gpgme_op_encrypt_sign          CHANGED: Output encoding can affect result.
+gpgme_op_encrypt_sign_start    CHANGED: Output encoding can affect result.
+gpgme_op_sign                  CHANGED: Output encoding can affect result.
+gpgme_op_sign_start            CHANGED: Output encoding can affect result.
+gpgme_op_export                        CHANGED: Output encoding can affect result.
+gpgme_op_export_start          CHANGED: Output encoding can affect result.
+gpgme_op_export_ext            CHANGED: Output encoding can affect result.
+gpgme_op_export_ext_start      CHANGED: Output encoding can affect result.
+gpgme_cancel_async             NEW
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
@@ -622,7 +901,7 @@ Noteworthy changes in version 0.4.1 (2003-06-06)
    So, instead:
 
    char *fpr;
-   err = gpgme_op_genkey (ctx, NULL, NULL, &fpr); 
+   err = gpgme_op_genkey (ctx, NULL, NULL, &fpr);
    if (!err && fpr)
      printf ("%s\n", fpr);
 
@@ -823,7 +1102,7 @@ gpgme_trust_item_release   DEPRECATED: Use gpgme_trust_item_unref.
 gpgme_trust_item_get_string_attr DEPRECATED
 gpgme_trust_item_get_ulong_attr        DEPRECATED
 gpgme_get_key                  CHANGED: Removed force_update argument.
-gpgme_sub_key_t                        NEW
+gpgme_subkey_t                 NEW
 gpgme_key_sig_t                        NEW
 gpgme_user_id_t                        NEW
 gpgme_key_t                    CHANGED: Now has user accessible data members.
@@ -910,7 +1189,7 @@ Noteworthy changes in version 0.3.13 (2002-11-20)
 Noteworthy changes in version 0.3.12 (2002-10-15)
 -------------------------------------------------
 
- * Fixed some bux with key listings.  
+ * Fixed some bux with key listings.
 
  * The development has been branched to clean up some API issues.
    This 0.3 series will be kept for compatibility reasons; so do don't
@@ -918,7 +1197,7 @@ Noteworthy changes in version 0.3.12 (2002-10-15)
 
 Noteworthy changes in version 0.3.11 (2002-09-20)
 -------------------------------------------------
-        
+
  * Bug fixes.
 
 Noteworthy changes in version 0.3.10 (2002-09-02)
@@ -1124,7 +1403,7 @@ gpgme_register_idle             NEW
 
 Noteworthy changes in version 0.3.0 (2001-12-19)
 ------------------------------------------------
+
  * New interface gpgme_set_protocol() to set the protocol and thus the
    crypto engine to be used by the context.  Currently, the OpenPGP
    and the CMS protocols are supported.  They are specified by the new
@@ -1194,7 +1473,7 @@ Noteworthy changes in version 0.2.3 (2001-09-17)
 
 Noteworthy changes in version 0.2.2 (2001-06-12)
 ------------------------------------------------
+
  * Implemented a key cache.
 
  * Fixed a race condition under W32 and some other bug fixes.
@@ -1211,7 +1490,8 @@ Noteworthy changes in version 0.2.1 (2001-04-02)
  * Made the W32 support more robust.
 
 
- Copyright 2001, 2002, 2003, 2004, 2005, 2007 g10 Code GmbH
+ Copyright 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009,
+           2010 g10 Code GmbH
 
  This file is free software; as a special exception the author gives
  unlimited permission to copy and/or distribute it, with or without