Fix possible realloc overflow for gpgsm and uiserver engines.
[gpgme.git] / NEWS
diff --git a/NEWS b/NEWS
index 9c7925f..ff75e9c 100644 (file)
--- a/NEWS
+++ b/NEWS
-Noteworthy changes in version 1.1.0 (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
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Noteworthy changes in version 1.1.6 (2008-01-04)
+------------------------------------------------
+
+ * Bug fixes for for W32.
+
+ * A new, experimental (and thus undocumented and potentially
+   unstable) interface for accessing gpg-conf through GPGME has been
+   added.
+
+ * Interface changes relative to the 1.1.1 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gpgme_signature_t               EXTENDED: New field chain_model.
+ gpgme_op_getauditlog_start      NEW.
+ gpgme_op_getauditlog            NEW.
+ GPGME_AUDITLOG_HTML             NEW.
+ GPGME_AUDITLOG_WITH_HELP        NEW.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Noteworthy changes in version 1.1.5 (2007-07-09)
 ------------------------------------------------
 
+ * Bug and portability fixes (mainly for W32).
+
+
+Noteworthy changes in version 1.1.4 (2007-03-05)
+------------------------------------------------
+
+ * Detect and bail out on double plaintext messages.  This is required
+   so that applications can properly detect the signed parts of a
+   message.  Actual there is now a double protection as GnuPG 1.4.7
+   will detect this case too.
+
+
+Noteworthy changes in version 1.1.3 (2007-01-29)
+------------------------------------------------
+
+ * Fixed a memory leak in gpgme_data_release_and_get_mem.
+
+ * Fixed a bug in Windows command line quoting.
+
+
+Noteworthy changes in version 1.1.2 (2006-03-02)
+------------------------------------------------
+
+ * Fixed a bug in the W32 glib backend.
+
+
+Noteworthy changes in version 1.1.1 (2006-02-23)
+------------------------------------------------
+
+ * Fixed a bug in that the fingerprints of subkeys are not available.
+
+ * Clarified usage of the SECRET flag in key listings.  It is now
+   reset for stub keys.
+
+ * Reading signature notations and policy URLs on key signatures is
+   supported.  They can be found in the new field notations of the
+   gpgme_key_sig_t structure.  This has to be enabled with the keylist
+   mode flag GPGME_KEYLIST_MODE_SIG_NOTATIONS.
+
+ * A new gpgme_free() function solves the problem of using different
+   allocators in a single program.  This function should now be used
+   instead calling free() to release the buffer returned by
+   gpgme_data_release_and_get_mem.  It is recommended that you always
+   do this, but it is only necessary on certain platforms, so backwards
+   compatibility is provided.  In other words: If free() worked for
+   you before, it will keep working.
+
+ * New status codes GPGME_PKA_TRUST_GOOD and GPGME_PKA_TRUST_BAD.
+   They are analyzed by the verify handlers and made available in the
+   new PKA_TRUST and PKA_ADDRESS fields of the signature result structure.
+
+ * Interface changes relative to the 1.1.0 release:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gpgme_key_sig_t                        EXTENDED: New field notations.
+GPGME_KEYLIST_MODE_SIG_NOTATIONS NEW
+gpgme_free                     NEW
+GPGME_STATUS_PKA_TRUST_BAD      NEW
+GPGME_STATUS_PKA_TRUST_GOOD     NEW
+gpgme_signature_t               EXTENDED: New field pka_trust.
+gpgme_signature_t               EXTENDED: New field pka_address.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Noteworthy changes in version 1.1.0 (2005-10-01)
+------------------------------------------------
+
+ * You can now configure the backend engine file name and home
+   directory to be used, as default and per context.
+
+ * Information about the recipients of an encrypted text is now
+   available at decryption time.
+
+ * New status GPGME_STATUS_PLAINTEXT.  This is analyzed by the decrypt
+   and verify handlers, the information about the plaintext filename,
+   if available is made available in the new field file_name of the
+   respective result structure.
+
+ * The code for "automagically detecting the thread library" has been
+   removed from libgpgme.  It is deprecated since version 0.4.3.
+   Since then, you had to link against libgpgme-pthread for
+   applications using pthread and libgpgme-pth for applications using
+   GNU Pth.
+
+   The code was removed because it caused compilation problems on
+   systems where the pthread.h header from GNU Pth is available in
+   addition to the system header (FreeBSD 6 and later for example).
+
  * "./autogen.sh --build-w32" does now build gpgme.dll.
 
  * [W32] The environment variable GPGME_DEBUG now uses a semicolon as
    delimiter.  The standard install directory is used when locating
    gpg or gpgsm before finally falling back to the hardwired name.
 
- * You can now configure the backend engine file name and home
-   directory to be used, as default and per context.
+ * There is a new flag for keys and subkeys, is_qualified, which
+   indicates if a key can be used for qualified signatures according
+   to local government regulations.
+
+ * You can associate a filename with a data object using the new
+   function gpgme_data_set_file_name().  This filename will be stored
+   in the output when encrypting or signing the data and will be
+   returned when decrypting or verifying the output data.
+
+ * You can now set notation data at signature creation with the new
+   function gpgme_sig_notation_add().
+
+ * Interface changes relative to the 1.0.3 release:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+gpgme_set_engine_info          NEW
+gpgme_ctx_get_engine_info      NEW
+gpgme_ctx_set_engine_info      NEW
+gpgme_recipient_t              NEW
+gpgme_decrypt_result_t         EXTENDED: New field recipients.
+gpgme_verify_result_t          EXTENDED: New fields pubkey_algo, hash_algo.
+gpgme_decrypt_result_t         EXTENDED: New field plaintext_filename.
+gpgme_verify_result_t          EXTENDED: New field plaintext_filename.
+GPGME_STATUS_PLAINTEXT         NEW
+gpgme_key_t                    EXTENDED: New field is_qualified.
+gpgme_subkey_t                 EXTENDED: New field is_qualified.
+gpgme_data_get_file_name       NEW
+gpgme_data_set_file_name       NEW
+gpgme_sig_notation_flags_t     NEW
+GPGME_SIG_NOTATION_HUMAN_READABLE NEW
+GPGME_SIG_NOTATAION_CRITICAL   NEW
+gpgme_sig_notation_clear       NEW
+gpgme_sig_notation_add         NEW
+gpgme_sig_notation_get         NEW
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Noteworthy changes in version 1.0.3 (2005-06-20)
+------------------------------------------------
 
  * Previousy, GPGME would use a default "include certs" of 1.  This
    has been changed.  Now GPGME will use the crypto backend engines
@@ -19,32 +450,20 @@ Noteworthy changes in version 1.1.0 (unreleased)
    Because the default changes, this is a slight change of the API
    semantics.  We consider it to be a bug fix.
 
- * Information about the recipients of an encrypted text is now
-   available at decryption time.
-
- * New status GPGME_STATUS_PLAINTEXT.  This is analyzed by the decrypt
-   and verify handlers, the information about the plaintext filename,
-   if available is made available in the new field plaintext_filename
-   of the respective result structure.
+ * A bug which made GPGME hang has been fixed.  If you have
+   experienced hanging before, please try out this version and let me
+   know if you still experience hanging problems.
 
+ * Interface changes relative to the 0.9.0 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gpgme_set_engine_info          NEW
-gpgme_ctx_get_engine_info      NEW
-gpgme_ctx_set_engine_info      NEW
 gpgme_set_include_certs                CHANGED DEFAULT
 GPGME_INCLUDE_CERTS_DEFAULT    NEW
-gpgme_recipient_t              NEW
-gpgme_decrypt_result_t         EXTENDED: New field recipients.
-gpgme_verify_result_t          EXTENDED: New fields pubkey_algo, hash_algo.
 GPGME_STATUS_SIG_SUBPACKET     NEW
 GPGME_STATUS_NEED_PASSPHRASE_PIN NEW
 GPGME_STATUS_SC_OP_FAILURE     NEW
 GPGME_STATUS_SC_OP_SUCCESS     NEW
 GPGME_STATUS_CARDCTRL          NEW
 GPGME_STATUS_BACKUP_KEY_CREATED        NEW
-gpgme_decrypt_result_t         EXTENDED: New field plaintext_filename.
-gpgme_verify_result_t          EXTENDED: New field plaintext_filename.
-GPGME_STATUS_PLAINTEXT         NEW
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
@@ -482,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);
 
@@ -683,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.
@@ -770,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
@@ -778,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)
@@ -984,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
@@ -1054,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.
@@ -1071,7 +1490,8 @@ Noteworthy changes in version 0.2.1 (2001-04-02)
  * Made the W32 support more robust.
 
 
- Copyright 2001, 2002, 2003, 2004 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