-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
to local government regulations.
* You can associate a filename with a data object using the new
- gpgme_data_set_filename() function. This filename will be stored
+ 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_STATUS_PLAINTEXT NEW
gpgme_key_t EXTENDED: New field is_qualified.
gpgme_subkey_t EXTENDED: New field is_qualified.
-gpgme_data_set_filename NEW
+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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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);
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.
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
Noteworthy changes in version 0.3.11 (2002-09-20)
-------------------------------------------------
-
+
* Bug fixes.
Noteworthy changes in version 0.3.10 (2002-09-02)
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
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.
* 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