js: Tests and improvements for openpgp mode
[gpgme.git] / NEWS
diff --git a/NEWS b/NEWS
index dff8e47..80c0119 100644 (file)
--- a/NEWS
+++ b/NEWS
-Noteworthy changes in version 1.7.1 (unreleased) [C26/A15/R_]
+Noteworthy changes in version 1.11.2 (unreleased)
+-------------------------------------------------
+
+
+Noteworthy changes in version 1.11.1 (2018-04-20)
+-------------------------------------------------
+
+ * Fixed build problems in the 1.11.0 release.
+
+ * Added C++ interfaces which were planned for 1.11.0.
+
+ * Interface changes relative to the 1.10.0 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ cpp: Key::origin                     NEW.
+ cpp: Key::lastUpdate                 NEW.
+ cpp: UserID::origin                  NEW.
+ cpp: UserID::lastUpdate              NEW.
+
+ [c=C31/A20/R1 cpp=C13/A7/R0 qt=C10/A3/R2]
+
+
+Noteworthy changes in version 1.11.0 (2018-04-18)
+-------------------------------------------------
+
+ * New encryption API to support direct key specification including
+   hidden recipients option and taking keys from a file.  This also
+   allows to enforce the use of a subkey.
+
+ * New encryption flag for the new API to enforce the use of plain
+   mail addresses (addr-spec).
+
+ * The import API can now tell whether v3 keys are skipped.  These old
+   and basically broken keys are not anymore supported by GnuPG 2.1.
+
+ * The decrypt and verify API will now return the MIME flag as
+   specified by RFC-4880bis.
+
+ * The offline mode now has an effect on gpg by disabling all network
+   access.  [#3831]
+
+ * A failed OpenPGP verification how returns the fingerprint of the
+   intended key if a recent gpg version was used for signature
+   creation.
+
+ * New tool gpgme-json as native messaging server for web browsers.
+   As of now public key encryption and decryption is supported.
+   Requires Libgpg-error 1.29.
+
+ * New context flag "request-origin" which has an effect when used
+   with GnuPG 2.2.6 or later.
+
+ * New context flag "no-symkey-cache" which has an effect when used
+   with GnuPG 2.2.7 or later.
+
+ * New convenience constant GPGME_KEYLIST_MODE_LOCATE.
+
+ * Improved the Python documentation.
+
+ * Fixed a potential regression with GnuPG 2.2.6 or later.
+
+ * Fixed a crash in the Python bindings on 32 bit platforms.  [#3892]
+
+ * Various minor fixes.
+
+ * Interface changes relative to the 1.10.0 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gpgme_op_encrypt_ext             NEW.
+ gpgme_op_encrypt_ext_start       NEW.
+ gpgme_op_encrypt_sign_ext        NEW.
+ gpgme_op_encrypt_sign_ext_start  NEW.
+ GPGME_ENCRYPT_WANT_ADDRESS       NEW.
+ GPGME_KEYLIST_MODE_LOCATE        NEW.
+ gpgme_import_result_t            EXTENDED: New field 'skipped_v3_keys'.
+ gpgme_decrypt_result_t           EXTENDED: New field 'symkey_algo'.
+ gpgme_decrypt_result_t           EXTENDED: New field 'is_mime'.
+ gpgme_verify_result_t            EXTENDED: New field 'is_mime'.
+ cpp: Key::locate                 NEW.
+ cpp: Data::toString              NEW.
+ cpp: ImportResult::numV3KeysSkipped  NEW.
+
+ [c=C31/A20/R0 cpp=C12/A6/R0 qt=C10/A3/R1]
+
+
+Noteworthy changes in version 1.10.0 (2017-12-12)
+-------------------------------------------------
+
+ * Now returns more specific error codes for decryption to distinguish
+   between bad passphrase, user canceled, and no secret key.
+
+ * Now returns key origin information if available.
+
+ * Added context flag "auto-key-retrieve" to selectively enable the
+   corresponding gpg option.
+
+ * Added flag is_de_vs to decryption and verify results.
+
+ * py: Use SEEK_SET as default for data.seek.
+
+ * cpp: Various new APIs.
+
+ * Reduced spawn overhead on Linux again.  Added new configure option
+   --disable-linux-getdents to disable this feature for very old
+   Linux versions.
+
+ * Improved the Python bindings build system.
+
+ * Made the test suite less fragile.
+
+ * Interface changes relative to the 1.9.0 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gpgme_decrypt_result_t      EXTENDED: New field 'is_de_vs'.
+ gpgme_signature_t           EXTENDED: New field 'is_de_vs'.
+ gpgme_keyorg_t              NEW.
+ gpgme_op_delete_ext         NEW.
+ gpgme_op_delete_ext_start   NEW.
+ GPGME_DELETE_ALLOW_SECRET   NEW.
+ GPGME_DELETE_FORCE          NEW.
+ gpgme_op_conf_dir           NEW.
+ gpgme_set_ctx_flag          EXTENDED: New flag 'auto-key-retrieve'.
+ cpp: DecryptionResult::isDeVs         NEW.
+ cpp: Signature::isDeVs                NEW.
+ cpp: EngineInfo::Version::operator>   NEW.
+ cpp: Context::createKey               NEW.
+ cpp: Context::startCreateKey          NEW.
+ cpp: Context::createSubkey            NEW.
+ cpp: Context::startCreateSubkey       NEW.
+ qt: QuickJob                          NEW.
+ py: DecryptResult           EXTENDED: New boolean field 'is_de_vs'.
+ py: Signature               EXTENDED: New boolean field 'is_de_vs'.
+ py: GpgError                EXTENDED: Partial results in 'results'.
+
+ [c=C30/A19/R0 cpp=C11/A5/R0 qt=C10/A3/R0]
+
+
+Noteworthy changes in version 1.9.0 (2017-03-28)
 ------------------------------------------------
 
+ * Clarified meaning of the 'expire' parameter of gpgme_op_createkey
+   and gpgme_op_createsubkey.  New flag to force a key without an
+   expiration date.
 
- * Interface changes relative to the 1.7.0 release:
+ * New function gpgme_op_keylist_from_data_start to list keys from
+   data objects without importing them.
+
+ * New function gpgme_op_set_uid_flag to flag a key as primary.
+
+ * New function gpgme_op_decrypt_ext to run decryption with special
+   flags.  This can for example be used to unwrap keys (remove only
+   the encryption layer).
+
+ * New encryption flags to wrap a key (adding an encryption layer to
+   an OpenPGP message) or to create anonymously encrypted messages.
+
+ * Support for adduid and revuid operations in the C++ bindings.
+
+ * Support for smartcard key generation in the C++ bindings.
+
+ * Several new functions for the Python binding.
+
+ * Many smaller bug fixes.
+
+ * Interface changes relative to the 1.8.0 release:
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- gpgme_addrspec_from_uid         NEW.
+ gpgme_op_createkey          CHANGED: Meaning of 'expire' parameter.
+ gpgme_op_createsubkey       CHANGED: Meaning of 'expire' parameter.
+ GPGME_CREATE_NOEXPIRE       NEW.
+ gpgme_key_t                 EXTENDED: New field 'origin'.
+ gpgme_key_t                 EXTENDED: New field 'last_update'.
+ gpgme_subkey_t              EXTENDED: New field 'is_de_vs'.
+ gpgme_user_id_t             EXTENDED: New field 'origin'.
+ gpgme_user_id_t             EXTENDED: New field 'last_update'.
+ gpgme_op_keylist_from_data_start NEW.
+ gpgme_op_set_uid_flag_start      NEW.
+ gpgme_op_set_uid_flag            NEW.
+ gpgme_op_decrypt_ext_start       NEW.
+ gpgme_op_decrypt_ext             NEW.
+ GPGME_ENCRYPT_THROW_KEYIDS       NEW.
+ GPGME_ENCRYPT_WRAP               NEW.
+ GPGME_DECRYPT_VERIFY             NEW.
+ GPGME_DECRYPT_UNWRAP             NEW.
+ gpgme_data_rewind                UN-DEPRECATE.
+ cpp: Context::revUid(const Key&, const char*)      NEW.
+ cpp: Context::startRevUid(const Key&, const char*) NEW.
+ cpp: Context::addUid(const Key&, const char*)      NEW.
+ cpp: Context::startAddUid(const Key&, const char*) NEW.
+ cpp: Key::UserID::revoke()                         NEW.
+ cpp: Key::addUid()                                 NEW.
+ cpp: Key::isDeVs                                   NEW.
+ cpp: GpgGenCardKeyInteractor                       NEW.
+ cpp: Subkey::keyGrip                               NEW.
+ cpp: Subkey::isDeVs                                NEW.
+ cpp: Data::toKeys                                  NEW.
+ cpp: Context::setDecryptFlags                      NEW.
+ cpp: Context::decrypt                         EXTENDED: Flags added.
+ cpp: Context::startDecrypt                    EXTENDED: Flags added.
+ cpp: Context::decryptAndVerify                EXTENDED: Flags added.
+ cpp: Context::startCombinedDecryptionAndVerification EXTENDED: Flags.
+ cpp: Context::encryptFlags                    EXTENDED: New flags.
+ qt: CryptoConfig::stringValueList()                NEW.
+ py: Context.__init__        EXTENDED: New keyword arg home_dir.
+ py: Context.home_dir        NEW.
+ py: Context.keylist         EXTENDED: New keyword arg mode.
+ py: Context.keylist         EXTENDED: New keyword arg source.
+ py: Context.create_key      NEW.
+ py: Context.create_subkey   NEW.
+ py: Context.key_add_uid     NEW.
+ py: Context.key_revoke_uid  NEW.
+ py: Context.key_sign        NEW.
+ py: Context.key_tofu_policy NEW.
+ py: core.pubkey_algo_string NEW.
+ py: core.addrspec_from_uid  NEW.
+
+ [c=C29/A18/R0 cpp=C10/A4/R0 qt=C9/A2/R0]
+
+
+Noteworthy changes in version 1.8.0 (2016-11-16)
+------------------------------------------------
+
+ * The module of the Python bindings has been renamed to 'gpg'.
+
+ * New interface to query current software versions.
+
+ * New feature to use gpg's --{show,override}session-key options.
 
- * qt Interface changes relative to the 1.7.0 release:
+ * New interface to set the sender of a mail.
+
+ * qt: Added Distinguished Name parser from libkleo
+
+ * The --homedir option is now used with recent gpgconf versions.
+
+ * On 64 bit Windows systems gpgconf is now properly located.
+
+ * The internal locking functions have been replaced by libgpg-error
+   locking functions.
+
+ * Interface changes relative to the 1.7.1 release:
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- WksPublishJob::startReceive     NEW.
- WksPublishJob::startRecieve     REMOVED.
+ gpgme_set_sender                NEW.
+ gpgme_get_sender                NEW.
+ gpgme_op_query_swdb             NEW.
+ gpgme_op_query_swdb_result      NEW.
+ gpgme_query_swdb_result_t       NEW.
+ gpgme_get_ctx_flag              NEW.
+ gpgme_decrypt_result_t          EXTENDED: New field session_key.
+ qt: DN                          NEW.
+ qt: DN::Attribute               NEW.
+ qt: Job::context(Job*)          NEW.
+ cpp: EngineInfo::Version::Version(const char*) NEW.
+ cpp: EngineInfo::Version::Version()            NEW.
+ cpp: SwdbResult                                NEW.
+ cpp: Context::setSender(const char*)           NEW.
+ cpp: Context::getSender()                      NEW.
+
+ [c=C28/A17/R0 cpp=C9/A3/R0 qt=C8/A1/R0]
+
+
+Noteworthy changes in version 1.7.1 (2016-10-18)
+------------------------------------------------
+
+ * Fixed problems with the new language bindings.
+
+ * New helper function gpgme_addrspec_from_uid.
+
+ * Use option --exit-on-status-write-error with newer gpg versions.
 
- * cpp Interface changes relative to the 1.7.0 release:
+ * qt: Missed API from the Qt Binding inclusion has
+   been added again.
+
+ * qt: abstractimportjob.h is now installed to that
+   ImportJobs can be used again.
+
+ * qt: Fixed spelling error in API (startReceive).
+
+ * Interface changes relative to the 1.7.0 release:
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Signature::key(bool, bool)      NEW.
+ gpgme_addrspec_from_uid         NEW.
+ qt: WksPublishJob::startRecieve RENAMED to ::startReceive.
+ qt: MultiDeleteJob              NEW.
+ qt: AbstractImportJob           NEW.
+ qt: SpecialJob                  NEW.
+ cpp: Signature::key(bool, bool)              NEW.
+ cpp: UserID::addrSpecFromString(const char*) NEW.
+ cpp: UserID::addrSpec()                      NEW.
+
+ [c=C27/A16/R0 cpp=C8/A2/R0 qt=C7/A0/R0]
 
-Noteworthy changes in version 1.7.0 (2016-09-21) [C26/A15/R0]
+
+Noteworthy changes in version 1.7.0 (2016-09-21)
 ------------------------------------------------
 
  * New language bindings for Python 2 and 3.
@@ -119,6 +389,8 @@ Noteworthy changes in version 1.7.0 (2016-09-21) [C26/A15/R0]
  GPGME_KEYSIGN_LFSEP            NEW.
  GPGME_INTERACT_CARD            NEW.
 
+ [c=C26/A15/R0 cpp=C6/A0/R1 qt=C6/A0/R1]
+
 
 Noteworthy changes in version 1.6.0 (2015-08-26) [C25/A14/R0]
 ------------------------------------------------