X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=NEWS;h=958053a106d9a0c79067625eed8eb7476f9e4e2c;hb=5fd3ef55d08e16a082f65ff458041de2281439b4;hp=c1124859413638412a5e557581a48f78ebe6e623;hpb=e702f52860283884c5d1a915edaf9046b2b76352;p=gpgme.git diff --git a/NEWS b/NEWS index c112485..958053a 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,490 @@ +Noteworthy changes in version 1.3.1 (unreleased) +------------------------------------------------ + + * Under development. + + * Detect GPG versions not supporting ---passwd. + + * Interface changes relative to the 1.3.0 release: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + GPGME_EXPORT_MODE_MINIMAL 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. + + * 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 + default unless you set the value with gpgme_set_include_certs() + explicitely. A new macro GPGME_INCLUDE_CERTS_DEFAULT can be used + as a value to explicitely request the new default behaviour. + + Because the default changes, this is a slight change of the API + semantics. We consider it to be a bug fix. + + * 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_include_certs CHANGED DEFAULT +GPGME_INCLUDE_CERTS_DEFAULT NEW +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 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +Noteworthy changes in version 1.0.2 (2004-12-28) +------------------------------------------------ + + * Changed the license of the library to the GNU Lesser General Public + License (LGPL), version 2.1 or later. + + +Noteworthy changes in version 1.0.1 (2004-10-22) +------------------------------------------------ + + * Only bug fixes. + + +Noteworthy changes in version 1.0.0 (2004-09-30) +------------------------------------------------ + + * Version 1.0.0! We are proud to present you with a thoroughly + tested and stable version of the GPGME library. A big Thank You! + to all the people who made this possible. + + The development will be branched into a stable 1.x.y series and the + head. + + * The gpgme.m4 macro supports checking the API version. Just prepend + it to the required version string, separated by a colon. For + example, this release has the version "1:1.0.0". The last release + to which this version is (mostly) ABI compatible is "1:0.4.2", + which is the default required version. + + +Noteworthy changes in version 0.9.0 (2004-06-08) +------------------------------------------------ + + * The type gpgme_key_t has now a new field keylist_mode that contains + the keylist mode that was active at the time the key was retrieved. + + * The type gpgme_decrypt_result_t has a new field "wrong_key_usage" + that contains a flag indicating that the key should not have been + used for encryption. + + * Verifying a signature of a revoked key gives the correct result now + (GPG_ERR_CERT_REVOKED error code). + + * Clarified that the error code GPG_ERR_NO_DATA from the decrypt & + verify operations still allows you to look at the signature + verification result. + + * Clarified that patterns in keylisting operations have an upper + limit, and thus are not suited to list many keys at once by their + fingerprint. Also improve the error message if the pattern is too + long for the CMS protocol to handle. + +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +gpgme_key_t EXTENDED: New field keylist_mode. +gpgme_decrypt_result_t EXTENDED: New field wrong_key_usage. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +Noteworthy changes in version 0.4.7 (2004-04-29) +------------------------------------------------ + + * Correctly initialize the fields expired, revoked, invalid, and + disabled in the gpgme_key_t structures. + + * A bug fix: The flag wrong_key_usage of gpgme_signature_t was + accidently of type int instead unsigned int. + + * Interface changes relative to the 0.4.5 release: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +gpgme_signature_t CHANGED: wrong_key_usage is unsigned int now. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Noteworthy changes in version 0.4.6 (2004-04-06) +------------------------------------------------ + + * Bug fixes + + +Noteworthy changes in version 0.4.5 (2004-03-07) +------------------------------------------------ + + * GPGME is now compiled with LFS (large file support) by default. + This means that _all_ programs using GPGME must be compiled with + LFS support enabled by default. You can do this easily with + autoconf, by using the AC_SYS_LARGEFILE macro. Or you can do this + without autoconf by defining the preprocessor symbol + _FILE_OFFSET_BITS to 64 (by passing the -D_FILE_OFFSET_BITS=64 to + the C compiler command line, or by defining this preprocessor + symbol before including any system header files). For more + details, read the section on LFS in the manual. + + Up to now, it was undocumented that GPGME was not using LFS. + But the public interfaces use off_t, and file descriptors are + exchanged between the application and GPGME. This was an oversight, + and bound to cause troubles in the future. + + Writing GPGME as a dual mode library that seamlessly supports LFS + while keeping backwards compatibility is possible, but does not + solve the problem: Many applications already expect GPGME to have + LFS (they are compiled with off_t being a 64bit value). This is true + in particular for the popular Gtk+ and Qt programs. + + So, although this is an ABI (but not an API) break, we will not + change the library version to reflect that. Because the interfaces + affected are probably not used yet in any GPGME 0.4 based + application, we don't expect any real failures from this change. + In fact, applications already using LFS will have some subtle bugs + fixed. + + However, if you encounter an application using GPGME 0.4.x that + does _not_ use LFS by default (off_t is a 32bit value), _and_ + uses at least one of the functions gpgme_data_seek, + gpgme_data_new_from_filepart, or a gpgme_data_seek_cb_t with + gpgme_data_new_from_cbs, then indeed this library will be ABI + incompatible with the program. As said above, we don't believe + such a program exists. If we are in error, then you have two + options: As a quick hack, you can configure GPGME with the + --disable-largefile option. This will revert the change, and GPGME + will not use LFS. However, GPGME will be incompatible with + programs that expect GPGME to use LFS. All applications are + required to use LFS when using GPGME, so this is only good as a + temporary local work-around. + + The other option is to change the versioning of the library and + recompile all applications. We have reserved a special version of + the library for that, so you can do that without expecting a + version clash in the future. Furthermore, everyone who does this + will agree on the version to use (this is important for + distribution makers). Read the comment in configure.ac (before + LIBGPGME_LT_AGE) if you want to do this. Please don't do this + blindly: As stated above, we think it is unlikely this measure is + needed. Still, it is there if necessary. If in doubt, contact us + and we will give our advise for your specific situation. + + * New key listing mode GPGME_KEYLIST_MODE_VALIDATE for validation of + the listed keys. + + * New interface gpgme_cancel() that can be used to cancel + asynchronous operations. + + * Interface changes relative to the 0.4.4 release: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +gpgme_data_seek_cb_t CHANGED: off_t is now a largefile type. +gpgme_data_seek CHANGED: off_t is now a largefile type. +gpgme_data_new_from_filepart CHANGED: off_t is now a largefile type. +GPGME_KEYLIST_MODE_VALIDATE NEW +gpgme_cancel NEW +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Noteworthy changes in version 0.4.4 (2004-01-12) +------------------------------------------------ + + * The member "class" in gpgme_key_sig_t and gpgme_new_signature_t has + been renamed to "sig_class", to avoid clash with C++ compilers. In + the C API, the old name "class" has been preserved for backwards + compatibility, but is deprecated. + + * Interface changes relative to the 0.4.3 release: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +gpgme_key_sig_t CHANGED: class deprecated, use new sig_class. +gpgme_new_signature_t CHANGED: class deprecated, use new sig_class. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Noteworthy changes in version 0.4.3 (2003-10-06) ------------------------------------------------ @@ -76,7 +563,6 @@ gpgme_set_locale NEW gpgme_hash_algo_name CHANGED: Slight adjustment of algo names. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Noteworthy changes in version 0.4.2 (2003-07-30) ------------------------------------------------ @@ -528,6 +1014,11 @@ gpgme_get_key NEW GPGME_ATTR_SIG_CLASS NEW ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Noteworthy changes in version 0.3.16 (2003-11-19) +------------------------------------------------- + + * Compatibility fixes for GnuPG 1.9.x + Noteworthy changes in version 0.3.15 (2003-02-18) ------------------------------------------------- @@ -854,7 +1345,8 @@ Noteworthy changes in version 0.2.1 (2001-04-02) * Made the W32 support more robust. - Copyright 2001, 2002, 2003 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