"Fossies" - the Fresh Open Source Software Archive

Member "gpgme-1.15.1/NEWS" (8 Jan 2021, 85446 Bytes) of package /linux/privat/gpgme-1.15.1.tar.bz2:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "NEWS": 1.15.0_vs_1.15.1.

    1 Noteworthy changes in version 1.15.1 (2021-01-08)
    2 -------------------------------------------------
    3 
    4  * Fix another bug in the secret key export.  [#5046]
    5 
    6  * Make listing of signatures work if only secret keys are listed.  [#3580]
    7 
    8  * Fix build problem on FreeBSD.  [a6220adf30]
    9 
   10  * qt: Avoid empty "rem@gnupg.org" signature notations.  [#5142]
   11 
   12  * python: Fix key_export functions.  [#5149]
   13 
   14 
   15  [c=C35/A24/R1 cpp=C18/A12/R1 qt=C12/A5/R1]
   16 
   17  Release-info: https://dev.gnupg.org/T5225
   18 
   19 
   20 Noteworthy changes in version 1.15.0 (2020-11-12)
   21 -------------------------------------------------
   22 
   23  * New function gpgme_op_setexpire to make changing the expiration
   24    easier (requires GnuPG 2.1.22). [#4999]
   25 
   26  * New function gpgme_op_revsig to revoke key signatures (requires
   27    GnuPG 2.2.24). [#5094]
   28 
   29  * Support exporting secret keys. [#5046]
   30 
   31  * cpp: Support for set expire operations in the C++ bindings. [#5003]
   32 
   33  * cpp: Support for revoking key signatures in the C++ bindings. [#5094]
   34 
   35  * qt: Extended ChangeExpiryJob to support changing the expiry of
   36    subkeys. [#4717]
   37 
   38  * qt: Extended QuickJob to support revoking of key signatures. [#5094]
   39 
   40  * qt: Added QDebug stream operator for GpgME::Error.
   41 
   42  * Require a somewhat newer version of libgpg-error (1.36).
   43 
   44  * Interface changes relative to the 1.14.0 release:
   45  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   46  gpgme_op_setexpire_start                   NEW.
   47  gpgme_op_setexpire                         NEW.
   48  gpgme_op_revsig_start                      NEW.
   49  gpgme_op_revsig                            NEW.
   50  GPGME_REVSIG_LFSEP                         NEW.
   51  cpp: Context::setExpire                    NEW.
   52  cpp: Context::startSetExpire               NEW.
   53  cpp: EngineInfo::Version::operator<=       NEW.
   54  cpp: EngineInfo::Version::operator>=       NEW.
   55  cpp: EngineInfo::Version::operator!=       NEW.
   56  cpp: StatusConsumer                        NEW.
   57  cpp: StatusConsumerAssuanTransaction       NEW.
   58  cpp: Context::cancelPendingOperationImmediately NEW.
   59  cpp: Context::revokeSignature              NEW.
   60  cpp: Context::startRevokeSignature         NEW.
   61  cpp: UserID::Signature::operator<          NEW.
   62  qt: operator<<(QDebug debug, const GpgME::Error &err) NEW.
   63  qt: QuickJob::startRevokeSignature         NEW.
   64  qt: QuickJob::result                   CHANGED: Made params 'auditLogAsHtml'
   65                                                 and 'auditLogError' optional.
   66 
   67  [c=C35/A24/R0 cpp=C18/A12/R0 qt=C12/A5/R0]
   68 
   69  Release-info: https://dev.gnupg.org/T5131
   70 
   71 
   72 Noteworthy changes in version 1.14.0 (2020-07-16)
   73 -------------------------------------------------
   74 
   75  * New keylist mode to force the engine to return the keygrip. [#4820]
   76 
   77  * New export mode to export as OpenSSH public key.  [#4310]
   78 
   79  * New context flag "extended-edit" to enable expert key edit. [#4734]
   80 
   81  * Deprecate the anyway non working trustlist functions.  [#4834]
   82 
   83  * cpp: Add convenience API to obtain remarks. [#4734]
   84 
   85  * cpp: The sign key edit-interactor now supports multiple signatures
   86    from the same key. [#4734]
   87 
   88  * qt: Extended signkeyjob to handle remarks and multiple signatures.
   89    [#4734]
   90 
   91  * qt: Added job API for gpg-card.
   92 
   93  * qt: The logging category has been changed to gpg.qgpgme to be more
   94        consistent with other qt logging categories.
   95 
   96  * Interface changes relative to the 1.13.1 release:
   97  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   98  GPGME_KEYLIST_MODE_WITH_KEYGRIP              NEW.
   99  GPGME_EXPORT_MODE_SSH                        NEW.
  100  gpgme_user_id_t                         EXTENDED: New field 'uidhash'.
  101  cpp: UserID::remark                          NEW.
  102  cpp: UserID::remarks                         NEW.
  103  cpp: GpgSignKeyEditInteractor::setDupeOk     NEW.
  104  cpp: Context::exportPublicKeys          EXTENDED: New param 'flags'.
  105  cpp: Context::startPublicKeyExport      EXTENDED: New param 'flags'.
  106  cpp: Context::ExportMode                     NEW.
  107  qt: SignKeyJob::setDupeOk                    NEW.
  108  qt: SignKeyJob::setRemark                    NEW.
  109  qt: GpgCardJob                               NEW.
  110  qt: ExportJob::setExportFlags                NEW.
  111 
  112  [c=C34/A23/R0 cpp=C17/A11/R0 qt=C11/A4/R0]
  113 
  114  Release-info: https://dev.gnupg.org/T4996
  115 
  116 
  117 Noteworthy changes in version 1.13.1 (2019-06-13)
  118 -------------------------------------------------
  119 
  120  * cpp: gpgme_set_global_flag is now wrapped.  [#4471]
  121 
  122  * w32: Improved handling of unicode install paths.  [#4453]
  123 
  124  * w32: The gpgme_io_spawn error message is now only shown once. [#4453]
  125 
  126  * Fixed a crash introduced in 1.13.0 when working with S/MIME. [#4556]
  127 
  128  * w32: Fixed format string errors introduced in 1.13.0 that could
  129    cause crashes.  [#4440]
  130 
  131  * w32: Fixed an error in the new diagnostic gpgsm support introduced
  132    in 1.13.0 that caused crashes in low fd scenarios.  [#4439]
  133 
  134  * python: Fixed a DecryptionError Exception.  [#4478]
  135 
  136  * python: No longer raises BadSignatures from decrypt(verify=True).
  137    [#4276]
  138 
  139  * Interface changes relative to the 1.13.0 release:
  140  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  141  cpp: setGlobalFlag                         NEW.
  142 
  143  [c=C33/A22/R1 cpp=C16/A10/R0 qt=C10/A3/R4]
  144 
  145  Release-info: https://dev.gnupg.org/T4551
  146 
  147 
  148 Noteworthy changes in version 1.13.0 (2019-03-26)
  149 -------------------------------------------------
  150 
  151  * Support GPGME_AUDITLOG_DIAG for gpgsm.  [#4426]
  152 
  153  * New context flag "trust-model".
  154 
  155  * Removed support for WindowsCE and Windows ME.
  156 
  157  * Aligned the gpgrt-config code with our other libaries.
  158 
  159  * Auto-check for all installed Python versions.  [#3354]
  160 
  161  * Fixed generating card key in the C++ bindings.  [#4428]
  162 
  163  * Fixed a segv due to bad parameters in genkey.  [#4192]
  164 
  165  * Fixed crash if the plaintext is ignored in a CMS verify.
  166 
  167  * Fixed memleak on Windows.  [T4238]
  168 
  169  * Tweaked the Windows I/O code.
  170 
  171  * Fixed random crashes on Windows due to closing an arbitrary
  172    handle.  [#4237]
  173 
  174  * Fixed a segv on Windows.  [#4369]
  175 
  176  * Fixed test suite problems related to dtags.  [#4298]
  177 
  178  * Fixed bunch of python bugs.  [#4242,commit 9de1c96ac3cf]
  179 
  180  * Several fixes to the Common Lisp bindings.
  181 
  182  * Fixed minor bugs in gpgme-json.  [#4331,#4341,#4342,#4343
  183 
  184  * Require trace level 8 to dump all I/O data.
  185 
  186  * The compiler must now support variadic macros.
  187 
  188  * Interface changes relative to the 1.12.0 release:
  189  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  190  gpgme_set_ctx_flag               EXTENDED: New flag 'trust-model'.
  191  cpp: Context::create                       NEW.
  192  cpp: Key::isBad                            NEW.
  193  cpp: Subkey::isBad                         NEW.
  194  cpp: UserID::isBad                         NEW.
  195  cpp: UserID::Signature::isBad              NEW.
  196  cpp: GenCardKeyInteractor::setAlgo         NEW.
  197 
  198  [c=C33/A22/R0 cpp=C15/A9/R0 qt=C10/A3/R3]
  199 
  200  Release-info: https://dev.gnupg.org/T4376
  201 
  202 
  203 Noteworthy changes in version 1.12.0 (2018-10-08)
  204 -------------------------------------------------
  205 
  206  * Enhanced the JSON based interface tool gpgme-json to support Native
  207    Messaging as well as new Javascript code to support the browser
  208    site.  See lang/js/README for details.
  209 
  210  * Major overhaul of the Python language bindings documentation.
  211 
  212  * Even for old versions of gpg a missing MDC will now lead to a
  213    decryption failure.
  214 
  215  * Added context flag "auto-key-locate" to control the
  216    behavior of GPGME_KEYLIST_MODE_LOCATE.
  217 
  218  * New data function to create a data object from an estream.
  219 
  220  * Add more interfaces to the C++ bindings.
  221 
  222  * Improved error codes on decryption failure.
  223 
  224  * Lots of minor fixes.
  225 
  226  * Interface changes relative to the 1.11.1 release:
  227  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  228  gpgme_data_new_from_estream                NEW.
  229  gpgme_decrypt_result_t           EXTENDED: New field legacy_cipher_nomdc.
  230  gpgme_set_ctx_flag               EXTENDED: New flag 'ignore-mdc-error'.
  231  GPGME_AUDITLOG_DEFAULT                     NEW.
  232  GPGME_AUDITLOG_DIAG                        NEW.
  233  gpgme_set_ctx_flag               EXTENDED: New flag 'auto-key-locate'.
  234  cpp: DecryptionResult::sessionKey          NEW.
  235  cpp: DecryptionResult::symkeyAlgo          NEW.
  236  cpp: DecryptionResult::isLegacyCipherNoMDC New.
  237  cpp: Data::rewind                          NEW.
  238  cpp: Context::setFlag                      NEW.
  239  cpp: Context::getFlag                      NEW.
  240  cpp: Context::createKeyEx                  NEW.
  241 
  242  [c=C32/A21/R0 cpp=C14/A8/R0 qt=C10/A3/R2]
  243 
  244  Release-info: https://dev.gnupg.org/T4109
  245 
  246 
  247 Noteworthy changes in version 1.11.1 (2018-04-20)
  248 -------------------------------------------------
  249 
  250  * Fixed build problems in the 1.11.0 release.
  251 
  252  * Added C++ interfaces which were planned for 1.11.0.
  253 
  254  * Interface changes relative to the 1.10.0 release:
  255  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  256  cpp: Key::origin                     NEW.
  257  cpp: Key::lastUpdate                 NEW.
  258  cpp: UserID::origin                  NEW.
  259  cpp: UserID::lastUpdate              NEW.
  260 
  261  [c=C31/A20/R1 cpp=C13/A7/R0 qt=C10/A3/R2]
  262 
  263 
  264 Noteworthy changes in version 1.11.0 (2018-04-18)
  265 -------------------------------------------------
  266 
  267  * New encryption API to support direct key specification including
  268    hidden recipients option and taking keys from a file.  This also
  269    allows to enforce the use of a subkey.
  270 
  271  * New encryption flag for the new API to enforce the use of plain
  272    mail addresses (addr-spec).
  273 
  274  * The import API can now tell whether v3 keys are skipped.  These old
  275    and basically broken keys are not anymore supported by GnuPG 2.1.
  276 
  277  * The decrypt and verify API will now return the MIME flag as
  278    specified by RFC-4880bis.
  279 
  280  * The offline mode now has an effect on gpg by disabling all network
  281    access.  [#3831]
  282 
  283  * A failed OpenPGP verification how returns the fingerprint of the
  284    intended key if a recent gpg version was used for signature
  285    creation.
  286 
  287  * New tool gpgme-json as native messaging server for web browsers.
  288    As of now public key encryption and decryption is supported.
  289    Requires Libgpg-error 1.29.
  290 
  291  * New context flag "request-origin" which has an effect when used
  292    with GnuPG 2.2.6 or later.
  293 
  294  * New context flag "no-symkey-cache" which has an effect when used
  295    with GnuPG 2.2.7 or later.
  296 
  297  * New convenience constant GPGME_KEYLIST_MODE_LOCATE.
  298 
  299  * Improved the Python documentation.
  300 
  301  * Fixed a potential regression with GnuPG 2.2.6 or later.
  302 
  303  * Fixed a crash in the Python bindings on 32 bit platforms.  [#3892]
  304 
  305  * Various minor fixes.
  306 
  307  * Interface changes relative to the 1.10.0 release:
  308  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  309  gpgme_op_encrypt_ext             NEW.
  310  gpgme_op_encrypt_ext_start       NEW.
  311  gpgme_op_encrypt_sign_ext        NEW.
  312  gpgme_op_encrypt_sign_ext_start  NEW.
  313  GPGME_ENCRYPT_WANT_ADDRESS       NEW.
  314  GPGME_KEYLIST_MODE_LOCATE        NEW.
  315  gpgme_import_result_t            EXTENDED: New field 'skipped_v3_keys'.
  316  gpgme_decrypt_result_t           EXTENDED: New field 'symkey_algo'.
  317  gpgme_decrypt_result_t           EXTENDED: New field 'is_mime'.
  318  gpgme_verify_result_t            EXTENDED: New field 'is_mime'.
  319  cpp: Key::locate                 NEW.
  320  cpp: Data::toString              NEW.
  321  cpp: ImportResult::numV3KeysSkipped  NEW.
  322 
  323  [c=C31/A20/R0 cpp=C12/A6/R0 qt=C10/A3/R1]
  324 
  325 
  326 Noteworthy changes in version 1.10.0 (2017-12-12)
  327 -------------------------------------------------
  328 
  329  * Now returns more specific error codes for decryption to distinguish
  330    between bad passphrase, user canceled, and no secret key.
  331 
  332  * Now returns key origin information if available.
  333 
  334  * Added context flag "auto-key-retrieve" to selectively enable the
  335    corresponding gpg option.
  336 
  337  * Added flag is_de_vs to decryption and verify results.
  338 
  339  * py: Use SEEK_SET as default for data.seek.
  340 
  341  * cpp: Various new APIs.
  342 
  343  * Reduced spawn overhead on Linux again.  Added new configure option
  344    --disable-linux-getdents to disable this feature for very old
  345    Linux versions.
  346 
  347  * Improved the Python bindings build system.
  348 
  349  * Made the test suite less fragile.
  350 
  351  * Interface changes relative to the 1.9.0 release:
  352  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  353  gpgme_decrypt_result_t      EXTENDED: New field 'is_de_vs'.
  354  gpgme_signature_t           EXTENDED: New field 'is_de_vs'.
  355  gpgme_keyorg_t              NEW.
  356  gpgme_op_delete_ext         NEW.
  357  gpgme_op_delete_ext_start   NEW.
  358  GPGME_DELETE_ALLOW_SECRET   NEW.
  359  GPGME_DELETE_FORCE          NEW.
  360  gpgme_op_conf_dir           NEW.
  361  gpgme_set_ctx_flag          EXTENDED: New flag 'auto-key-retrieve'.
  362  cpp: DecryptionResult::isDeVs         NEW.
  363  cpp: Signature::isDeVs                NEW.
  364  cpp: EngineInfo::Version::operator>   NEW.
  365  cpp: Context::createKey               NEW.
  366  cpp: Context::startCreateKey          NEW.
  367  cpp: Context::createSubkey            NEW.
  368  cpp: Context::startCreateSubkey       NEW.
  369  qt: QuickJob                          NEW.
  370  py: DecryptResult           EXTENDED: New boolean field 'is_de_vs'.
  371  py: Signature               EXTENDED: New boolean field 'is_de_vs'.
  372  py: GpgError                EXTENDED: Partial results in 'results'.
  373 
  374  [c=C30/A19/R0 cpp=C11/A5/R0 qt=C10/A3/R0]
  375 
  376 
  377 Noteworthy changes in version 1.9.0 (2017-03-28)
  378 ------------------------------------------------
  379 
  380  * Clarified meaning of the 'expire' parameter of gpgme_op_createkey
  381    and gpgme_op_createsubkey.  New flag to force a key without an
  382    expiration date.
  383 
  384  * New function gpgme_op_keylist_from_data_start to list keys from
  385    data objects without importing them.
  386 
  387  * New function gpgme_op_set_uid_flag to flag a key as primary.
  388 
  389  * New function gpgme_op_decrypt_ext to run decryption with special
  390    flags.  This can for example be used to unwrap keys (remove only
  391    the encryption layer).
  392 
  393  * New encryption flags to wrap a key (adding an encryption layer to
  394    an OpenPGP message) or to create anonymously encrypted messages.
  395 
  396  * Support for adduid and revuid operations in the C++ bindings.
  397 
  398  * Support for smartcard key generation in the C++ bindings.
  399 
  400  * Several new functions for the Python binding.
  401 
  402  * Many smaller bug fixes.
  403 
  404  * Interface changes relative to the 1.8.0 release:
  405  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  406  gpgme_op_createkey          CHANGED: Meaning of 'expire' parameter.
  407  gpgme_op_createsubkey       CHANGED: Meaning of 'expire' parameter.
  408  GPGME_CREATE_NOEXPIRE       NEW.
  409  gpgme_key_t                 EXTENDED: New field 'origin'.
  410  gpgme_key_t                 EXTENDED: New field 'last_update'.
  411  gpgme_subkey_t              EXTENDED: New field 'is_de_vs'.
  412  gpgme_user_id_t             EXTENDED: New field 'origin'.
  413  gpgme_user_id_t             EXTENDED: New field 'last_update'.
  414  gpgme_op_keylist_from_data_start NEW.
  415  gpgme_op_set_uid_flag_start      NEW.
  416  gpgme_op_set_uid_flag            NEW.
  417  gpgme_op_decrypt_ext_start       NEW.
  418  gpgme_op_decrypt_ext             NEW.
  419  GPGME_ENCRYPT_THROW_KEYIDS       NEW.
  420  GPGME_ENCRYPT_WRAP               NEW.
  421  GPGME_DECRYPT_VERIFY             NEW.
  422  GPGME_DECRYPT_UNWRAP             NEW.
  423  gpgme_data_rewind                UN-DEPRECATE.
  424  cpp: Context::revUid(const Key&, const char*)      NEW.
  425  cpp: Context::startRevUid(const Key&, const char*) NEW.
  426  cpp: Context::addUid(const Key&, const char*)      NEW.
  427  cpp: Context::startAddUid(const Key&, const char*) NEW.
  428  cpp: Key::UserID::revoke()                         NEW.
  429  cpp: Key::addUid()                                 NEW.
  430  cpp: Key::isDeVs                                   NEW.
  431  cpp: GpgGenCardKeyInteractor                       NEW.
  432  cpp: Subkey::keyGrip                               NEW.
  433  cpp: Subkey::isDeVs                                NEW.
  434  cpp: Data::toKeys                                  NEW.
  435  cpp: Context::setDecryptFlags                      NEW.
  436  cpp: Context::decrypt                         EXTENDED: Flags added.
  437  cpp: Context::startDecrypt                    EXTENDED: Flags added.
  438  cpp: Context::decryptAndVerify                EXTENDED: Flags added.
  439  cpp: Context::startCombinedDecryptionAndVerification EXTENDED: Flags.
  440  cpp: Context::encryptFlags                    EXTENDED: New flags.
  441  qt: CryptoConfig::stringValueList()                NEW.
  442  py: Context.__init__        EXTENDED: New keyword arg home_dir.
  443  py: Context.home_dir        NEW.
  444  py: Context.keylist         EXTENDED: New keyword arg mode.
  445  py: Context.keylist         EXTENDED: New keyword arg source.
  446  py: Context.create_key      NEW.
  447  py: Context.create_subkey   NEW.
  448  py: Context.key_add_uid     NEW.
  449  py: Context.key_revoke_uid  NEW.
  450  py: Context.key_sign        NEW.
  451  py: Context.key_tofu_policy NEW.
  452  py: core.pubkey_algo_string NEW.
  453  py: core.addrspec_from_uid  NEW.
  454 
  455  [c=C29/A18/R0 cpp=C10/A4/R0 qt=C9/A2/R0]
  456 
  457 
  458 Noteworthy changes in version 1.8.0 (2016-11-16)
  459 ------------------------------------------------
  460 
  461  * The module of the Python bindings has been renamed to 'gpg'.
  462 
  463  * New interface to query current software versions.
  464 
  465  * New feature to use gpg's --{show,override}session-key options.
  466 
  467  * New interface to set the sender of a mail.
  468 
  469  * qt: Added Distinguished Name parser from libkleo
  470 
  471  * The --homedir option is now used with recent gpgconf versions.
  472 
  473  * On 64 bit Windows systems gpgconf is now properly located.
  474 
  475  * The internal locking functions have been replaced by libgpg-error
  476    locking functions.
  477 
  478  * Interface changes relative to the 1.7.1 release:
  479  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  480  gpgme_set_sender                NEW.
  481  gpgme_get_sender                NEW.
  482  gpgme_op_query_swdb             NEW.
  483  gpgme_op_query_swdb_result      NEW.
  484  gpgme_query_swdb_result_t       NEW.
  485  gpgme_get_ctx_flag              NEW.
  486  gpgme_decrypt_result_t          EXTENDED: New field session_key.
  487  qt: DN                          NEW.
  488  qt: DN::Attribute               NEW.
  489  qt: Job::context(Job*)          NEW.
  490  cpp: EngineInfo::Version::Version(const char*) NEW.
  491  cpp: EngineInfo::Version::Version()            NEW.
  492  cpp: SwdbResult                                NEW.
  493  cpp: Context::setSender(const char*)           NEW.
  494  cpp: Context::getSender()                      NEW.
  495 
  496  [c=C28/A17/R0 cpp=C9/A3/R0 qt=C8/A1/R0]
  497 
  498 
  499 Noteworthy changes in version 1.7.1 (2016-10-18)
  500 ------------------------------------------------
  501 
  502  * Fixed problems with the new language bindings.
  503 
  504  * New helper function gpgme_addrspec_from_uid.
  505 
  506  * Use option --exit-on-status-write-error with newer gpg versions.
  507 
  508  * qt: Missed API from the Qt Binding inclusion has
  509    been added again.
  510 
  511  * qt: abstractimportjob.h is now installed to that
  512    ImportJobs can be used again.
  513 
  514  * qt: Fixed spelling error in API (startReceive).
  515 
  516  * Interface changes relative to the 1.7.0 release:
  517  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  518  gpgme_addrspec_from_uid         NEW.
  519  qt: WksPublishJob::startRecieve RENAMED to ::startReceive.
  520  qt: MultiDeleteJob              NEW.
  521  qt: AbstractImportJob           NEW.
  522  qt: SpecialJob                  NEW.
  523  cpp: Signature::key(bool, bool)              NEW.
  524  cpp: UserID::addrSpecFromString(const char*) NEW.
  525  cpp: UserID::addrSpec()                      NEW.
  526 
  527  [c=C27/A16/R0 cpp=C8/A2/R0 qt=C7/A0/R0]
  528 
  529 
  530 Noteworthy changes in version 1.7.0 (2016-09-21)
  531 ------------------------------------------------
  532 
  533  * New language bindings for Python 2 and 3.
  534 
  535  * New language Bindings for C++ and the Qt-Framework API.
  536 
  537  * New functions gpgme_op_createkey and gpgme_op_createsubkey to make
  538    key creation easier (requires GnuPG 2.1).
  539 
  540  * New functions gpgme_op_adduid and gpgme_op_revuid to make user id
  541    management easier (requires GnuPG 2.1).
  542 
  543  * New function gpgme_op_keysign to make key signing easier (requires
  544    GnuPG 2.1).
  545 
  546  * New function gpgme_op_interact to replace the now deprecated
  547    functions gpgme_op_edit and gpgme_op_card_edit.
  548 
  549  * New function gpgme_pubkey_algo_string to convert a public key
  550    algorithm into a GnuPG 2.1 style string.
  551 
  552  * Support for GnuPG 2.1's TOFU trust model.
  553 
  554  * Notation flags are now correctly set on verify.
  555 
  556  * New global flag "require-gnupg" to set a minimal gnupg version.
  557 
  558  * More supported items in gpgme_get_dirinfo.
  559 
  560  * New function gpgme_data_set_flag and flag "size-hint".
  561 
  562  * New function gpgme_set_ctx_flag and flags "full-status" and
  563    "raw-description".
  564 
  565  * Improved gpgme_data_identify to distinguish more file types.
  566 
  567  * New flag GPGME_ENCRYPT_SYMMETRIC for gpgme_op_encrypt to allow
  568    mixed public key and symmetric encryption.
  569 
  570  * New field KEYGRIP in gpgme_subkey_t.  New fields FPR in gpgme_key_t.
  571 
  572  * New flag GPGME_DATA_ENCODING_MIME to declare that the encrypted or
  573    signed data is a valid MIME part.  This is to support future GnuPG
  574    versions.
  575 
  576  * Interface changes relative to the 1.6.0 release:
  577  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  578  gpgme_pubkey_algo_string       NEW.
  579  GPGME_PK_EDDSA                 NEW.
  580  gpgme_set_ctx_flag             NEW.
  581  gpgme_data_set_flag            NEW.
  582  gpgme_op_createkey             NEW.
  583  gpgme_op_createkey_start       NEW.
  584  gpgme_op_createsubkey          NEW.
  585  gpgme_op_createsubkey_start    NEW.
  586  gpgme_op_adduid_start          NEW.
  587  gpgme_op_adduid                NEW.
  588  gpgme_op_revuid_start          NEW.
  589  gpgme_op_revuid                NEW.
  590  gpgme_op_keysign_start         NEW.
  591  gpgme_op_keysign               NEW.
  592  gpgme_op_tofu_policy_start     NEW.
  593  gpgme_op_tofu_policy           NEW.
  594  gpgme_op_interact_start        NEW.
  595  gpgme_op_interact              NEW.
  596  gpgme_interact_cb_t            NEW.
  597  gpgme_op_edit_start            DEPRECATED.
  598  gpgme_op_edit                  DEPRECATED.
  599  gpgme_op_card_edit_start       DEPRECATED.
  600  gpgme_op_card_edit             DEPRECATED.
  601  gpgme_edit_cb_t                DEPRECATED.
  602  gpgme_status_code_t            DEPRECATED.
  603  gpgme_genkey_result_t          EXTENDED: New fields pubkey and seckey.
  604  gpgme_signature_t              EXTENDED: New field key.
  605  gpgme_key_t                    EXTENDED: New field fpr.
  606  gpgme_subkey_t                 EXTENDED: New field keygrip.
  607  gpgme_user_id_t                EXTENDED: New field tofu.
  608  gpgme_tofu_policy_t            NEW.
  609  gpgme_tofu_info_t              NEW.
  610  GPGME_STATUS_KEY_CONSIDERED    NEW.
  611  GPGME_STATUS_TOFU_USER         NEW.
  612  GPGME_STATUS_TOFU_STATS        NEW.
  613  GPGME_STATUS_TOFU_STATS_LONG   NEW.
  614  GPGME_STATUS_NOTATION_FLAGS    NEW.
  615  GPGME_KEYLIST_MODE_WITH_TOFU   NEW.
  616  GPGME_DATA_TYPE_PGP_ENCRYPTED  NEW.
  617  GPGME_DATA_TYPE_PGP_SIGNATURE  NEW.
  618  GPGME_DATA_ENCODING_MIME       NEW.
  619  GPGME_ENCRYPT_SYMMETRIC        NEW.
  620  GPGME_CREATE_SIGN              NEW.
  621  GPGME_CREATE_ENCR              NEW.
  622  GPGME_CREATE_CERT              NEW.
  623  GPGME_CREATE_AUTH              NEW.
  624  GPGME_CREATE_NOPASSWD          NEW.
  625  GPGME_CREATE_SELFSIGNED        NEW.
  626  GPGME_CREATE_NOSTORE           NEW.
  627  GPGME_CREATE_WANTPUB           NEW.
  628  GPGME_CREATE_WANTSEC           NEW.
  629  GPGME_CREATE_FORCE             NEW.
  630  GPGME_KEYSIGN_LOCAL            NEW.
  631  GPGME_KEYSIGN_LFSEP            NEW.
  632  GPGME_INTERACT_CARD            NEW.
  633 
  634  [c=C26/A15/R0 cpp=C6/A0/R1 qt=C6/A0/R1]
  635 
  636 
  637 Noteworthy changes in version 1.6.0 (2015-08-26) [C25/A14/R0]
  638 ------------------------------------------------
  639 
  640  * Added gpgme_set_offline to do a key listinging w/o requiring CRL.
  641 
  642  * Added gpgme_set_status_cb to allow a user to see some status
  643    messages.
  644 
  645  * Added an export mode for secret keys.
  646 
  647  * More precise error codes are returned if GnuPG >= 2.1.8 is used.
  648 
  649  * The passphrase handler for the loopback mode has been improved and may
  650    also be used with genkey.
  651 
  652  * [w32] The standard GnuPG 2.1 install directory is now searched for
  653    gpgconf.exe before a registry specified directory and the Gpg4win
  654    install directory.
  655 
  656  * [w32] gpgme-w32spawn.exe will now only be searched in the gpgme DLL
  657    directory.
  658 
  659  * Interface changes relative to the 1.5.1 release:
  660  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  661  gpgme_set_offline              NEW.
  662  gpgme_get_offline              NEW.
  663  gpgme_set_status_cb            NEW.
  664  gpgme_get_status_cb            NEW.
  665  GPGME_EXPORT_MODE_SECRET       NEW
  666  GPGME_EXPORT_MODE_RAW          NEW.
  667  GPGME_EXPORT_MODE_PKCS12       NEW.
  668 
  669 
  670 Noteworthy changes in version 1.5.5 (2015-06-08) [C24/A13/R4]
  671 ------------------------------------------------
  672 
  673  * Fixed crash in key listings for user ids with a backslash.
  674 
  675  * Fixed regression for GPGSM use with GnuPG < 2.1.
  676 
  677  * Properly set signature summary for revoked OpenPGP keys.
  678 
  679 
  680 Noteworthy changes in version 1.5.4 (2015-04-13) [C24/A13/R3]
  681 ------------------------------------------------
  682 
  683  * Fixed a possible crash in the debug code.
  684 
  685  * Fixed building for Windows with newer versions of Mingw.
  686 
  687 
  688 Noteworthy changes in version 1.5.3 (2014-12-11) [C24/A13/R2]
  689 -------------------------------------------------------------
  690 
  691  * The export key functions do now return an error if used with the
  692    latest GnuPG version.
  693 
  694 
  695 Noteworthy changes in version 1.5.2 (2014-11-21) [C24/A13/R1]
  696 -------------------------------------------------------------
  697 
  698  * gpgme-tool is now installed.
  699 
  700  * Fix external listing for modern keyservers.
  701 
  702  * Minor other fixes.
  703 
  704 
  705 Noteworthy changes in version 1.5.1 (2014-07-30) [C24/A13/R0]
  706 -------------------------------------------------------------
  707 
  708  * Fixed possible overflow in gpgsm and uiserver engines.
  709    [CVE-2014-3564]
  710 
  711  * Added support for GnuPG 2.1's --with-secret option.
  712 
  713  * Interface changes relative to the 1.5.0 release:
  714  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  715  GPGME_KEYLIST_MODE_WITH_SECRET NEW.
  716 
  717 
  718 Noteworthy changes in version 1.5.0 (2014-05-21) [C23/A12/R0]
  719 -------------------------------------------------------------
  720 
  721  * On Unices the engine file names are not not anymore hardwired but
  722    located via the envvar PATH.  All options to set the name of the
  723    engines for the configure run are removed.
  724 
  725  * If GPGME finds the gpgconf binary it defaults to using gpg2 or
  726    whatever gpgconf tells as name for the OpenPGP engine.  If gpgconf
  727    is not found, GPGME looks for an engine named "gpg".
  728 
  729  * New feature to use the gpgme I/O subsystem to run arbitrary
  730    commands.
  731 
  732  * New flag to use encryption without the default compression step.
  733 
  734  * New function to access "gpg-conf --list-dirs"
  735 
  736  * New configure option --enable-fixed-path for use by Android.
  737 
  738  * Support ECC algorithms.
  739 
  740  * Interface changes relative to the 1.4.3 release:
  741  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  742  gpgme_get_dirinfo              NEW.
  743  gpgme_op_spawn_start           NEW.
  744  gpgme_op_spawn                 NEW.
  745  GPGME_PROTOCOL_SPAWN           NEW.
  746  GPGME_SPAWN_DETACHED           NEW.
  747  GPGME_SPAWN_ALLOW_SET_FG       NEW.
  748  GPGME_ENCRYPT_NO_COMPRESS      NEW.
  749  GPGME_PK_ECC                   NEW.
  750  GPGME_MD_SHA224                NEW.
  751  gpgme_subkey_t                 EXTENDED: New field curve.
  752  GPGME_STATUS_PLAINTEXT_LENGTH  NEW.
  753  GPGME_STATUS_MOUNTPOINT        NEW.
  754  GPGME_STATUS_PINENTRY_LAUNCHED NEW.
  755  GPGME_STATUS_ATTRIBUTE         NEW.
  756  GPGME_STATUS_BEGIN_SIGNING     NEW.
  757  GPGME_STATUS_KEY_NOT_CREATED   NEW.
  758 
  759 
  760 Noteworthy changes in version 1.4.3 (2013-08-12) [C22/A11/R0]
  761 -------------------------------------------------------------
  762 
  763  * The default engine names are now taken from the output of gpgconf.
  764    If gpgconf is not found the use of gpg 1 is assumed.
  765 
  766  * Under Windows the default engines names are first searched in the
  767    installation directory of the gpgme DLL.
  768 
  769  * New function gpgme_data_identify to detect the type of a message.
  770 
  771  * Interface changes relative to the 1.4.2 release:
  772  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  773  gpgme_signers_count            NEW.
  774  gpgme_data_type_t              NEW.
  775  gpgme_data_identify            NEW.
  776 
  777 
  778 Noteworthy changes in version 1.4.2 (2013-05-28) [C21/A10/R0]
  779 -------------------------------------------------------------
  780 
  781  * Allow symmetric encryption with gpgme_op_encrypt_sign.
  782 
  783  * Fixed mismatching off_t definitions on Windows.
  784 
  785  * Interface changes relative to the 1.4.1 release:
  786  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  787  gpgme_off_t                    NEW.
  788  gpgme_size_t                   NEW.
  789  GPGME_PROTOCOL_OPENPGP         NEW alias.
  790 
  791 
  792 Noteworthy changes in version 1.4.1 (2013-05-01) [C20/A9/R1]
  793 ------------------------------------------------------------
  794 
  795  * Fixed reading of gpg.conf files with excessive use of the group
  796    option.
  797 
  798  * Fixed building with the i686-w64-mingw32 toolchain.
  799 
  800  * Disabled FD passing by default for Apple.
  801 
  802 
  803 Noteworthy changes in version 1.4.0 (2013-02-26) [C20/A9/R0]
  804 ------------------------------------------------------------
  805 
  806  * New function gpgme_set_global_flag to help debugging on Android.
  807 
  808  * New function gpgme_io_writen as a convenience wrapper around
  809    gpgme_io_write.
  810 
  811  * New functions to support the pinentry mode feature of GnuPG 2.1.
  812 
  813  * New macro GPGME_VERSION_NUMBER to allow supporting different API
  814    versions without the need for a configure test.
  815 
  816  * Several improvements for gpgme-tool.
  817 
  818  * Better logging of the common "invalid engine" error code.
  819 
  820  * Support for FD passing is now enabled by default.  The configure
  821    option --disable-fd-passing may be used to disable this.
  822 
  823  * Interface changes relative to the 1.3.1 release:
  824  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  825  GPGME_VERSION_NUMBER           NEW.
  826  gpgme_io_writen                NEW.
  827  gpgme_set_global_flag          NEW.
  828  gpgme_set_pinentry_mode        NEW.
  829  gpgme_get_pinentry_mode        NEW.
  830  gpgme_pinentry_mode_t          NEW.
  831  GPGME_PINENTRY_MODE_DEFAULT    NEW.
  832  GPGME_PINENTRY_MODE_ASK        NEW.
  833  GPGME_PINENTRY_MODE_CANCEL     NEW.
  834  GPGME_PINENTRY_MODE_ERROR      NEW.
  835  GPGME_PINENTRY_MODE_LOOPBACK   NEW.
  836 
  837 
  838 Noteworthy changes in version 1.3.2 (2012-05-02)
  839 ------------------------------------------------
  840 
  841  * Remove support for libgpgme-pth.  As far as we know, this was never used,
  842    and GnuPG is going to use our own npth in the future.
  843 
  844  * Fix signature summary information for a missing X.509 key.
  845 
  846  * Fix parsing of dates >= year 2038.
  847 
  848 
  849 Noteworthy changes in version 1.3.1 (2011-06-16)
  850 ------------------------------------------------
  851 
  852  * Ported to Windows CE.
  853 
  854  * Detect GPG versions not supporting ---passwd.
  855 
  856  * Interface changes relative to the 1.3.0 release:
  857  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  858  GPGME_EXPORT_MODE_MINIMAL      NEW
  859  GPGME_STATUS_SUCCESS		NEW
  860  gpgme_err_code_from_syserror   NEW
  861  gpgme_err_set_errno            NEW
  862  gpgme_error_from_errno		CHANGED: Return gpgme_error_t (compatible type).
  863  gpgme_error_from_syserror      NEW
  864  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  865 
  866 
  867 Noteworthy changes in version 1.3.0 (2010-01-11)
  868 ------------------------------------------------
  869 
  870  * GPGME does not come with an internal libassuan version anymore.
  871    The external libassuan 1.1.0 release or later is required.  For
  872    application programmers on systems that can resolve inter-library
  873    dependencies at runtime, this is a transparent change.
  874 
  875  * New engine GPGME_PROTOCOL_G13 to support the new g13 tool.
  876 
  877  * New engine GPGME_PROTOCOL_UISERVER to support UI Servers.
  878 
  879  * New API to change the passphrase of a key.
  880 
  881  * Interface changes relative to the 1.2.0 release:
  882  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  883  GPGME_STATUS_INV_SGNR    NEW.
  884  GPGME_STATUS_NO_SGNR     NEW.
  885  GPGME_PROTOCOL_G13	  NEW.
  886  gpgme_op_g13_mount	  NEW.
  887  gpgme_g13_result_t	  NEW.
  888  GPGME_PK_ECDSA           NEW.
  889  GPGME_PK_ECDH            NEW.
  890  gpgme_op_passwd_start    NEW.
  891  gpgme_op_passwd          NEW.
  892  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  893 
  894 
  895 Noteworthy changes in version 1.2.0 (2009-06-18)
  896 ------------------------------------------------
  897 
  898  * New encryption flag GPGME_ENCRYPT_NO_ENCRYPT_TO to disable default
  899    recipients.
  900 
  901  * gpgme_new will fail if gpgme_check_version was not called, or a
  902    selftest failed (for example, if -mms-bitfields was not used on
  903    MingW32 targets).
  904 
  905  * New functions gpgme_io_read and gpgme_io_write for use with
  906    gpgme_passphrase_cb_t and gpgme_edit_cb_t functions.
  907 
  908  * New functions gpgme_result_ref and gpgme_result_unref to detach
  909    result structures from a context.
  910 
  911  * New functions gpgme_op_export_keys_start and gpgme_op_export_keys
  912    that allow to specify exported keys through gpgme_key_t objects
  913    instead of patterns.
  914 
  915  * New mode of operation gpgme_export_mode_t that allows exporting
  916    external keys.
  917 
  918  * Interface changes relative to the 1.1.7 release:
  919  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  920  GPGME_KEYLIST_MODE_EPHEMERAL   NEW.
  921  GPGME_PROTOCOL_ASSUAN          NEW.
  922  gpgme_assuan_data_cb_t         NEW.
  923  gpgme_assuan_inquire_cb_t      NEW.
  924  gpgme_assuan_status_cb_t       NEW.
  925  gpgme_op_assuan_transact_start NEW.
  926  gpgme_op_assuan_transact       NEW.
  927  gpgme_op_assuan_result         NEW.
  928  gpgme_op_import_keys           NEW.
  929  gpgme_op_import_keys_start     NEW.
  930  gpgme_subkey_t                 EXTENDED: New fields is_cardkey, card_number.
  931  GPGME_ENCRYPT_NO_ENCRYPT_TO    NEW.
  932  gpgme_check_version            CHANGED: Is now a macro.
  933  gpgme_new                      EXTENDED: More failure codes.
  934  gpgme_io_read                  NEW.
  935  gpgme_io_write                 NEW.
  936  gpgme_result_ref               NEW.
  937  gpgme_result_unref             NEW.
  938  gpgme_export_mode_t            NEW.
  939  gpgme_export_ext_start         EXTENDED: Arg RESERVED is now a MODE flag.
  940  gpgme_op_export                EXTENDED: Arg RESERVED is now a MODE flag.
  941  gpgme_op_export_ext_start      EXTENDED: Arg RESERVED is now a MODE flag.
  942  gpgme_op_export_ext            EXTENDED: Arg RESERVED is now a MODE flag.
  943  gpgme_op_export_keys_start     NEW.
  944  gpgme_op_export_keys           NEW.
  945  GPGME_DATA_ENCODING_URL        NEW.
  946  GPGME_DATA_ENCODING_URL0       NEW.
  947  GPGME_DATA_ENCODING_URLESC     NEW.
  948  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  949 
  950 
  951 Noteworthy changes in version 1.1.8 (2008-12-08)
  952 ------------------------------------------------
  953 
  954  * SIGPIPE is now again ignored as described in the manual.  Fixes
  955    regression introduced with 1.1.6.
  956 
  957 
  958 Noteworthy changes in version 1.1.7 (2008-10-17)
  959 ------------------------------------------------
  960 
  961  * Using GPGME_KEYLIST_MODE_LOCAL combined with
  962    GPGME_KEYLIST_MODE_EXTERN is now supported; it uses the
  963    --locate-keys feature of gpg (>= 2.0.10).
  964 
  965  * The encoding of gpgme_data_t objects can affect the output encoding
  966    of export, sign and encrypt operations now (the same operations
  967    that are also affected by the ASCII mode switch).  We believe this
  968    change in the ABI is innocent enough not to break existing
  969    applications (it only affects the S/MIME backend on certain
  970    operations).
  971 
  972  * The reference manual now includes the specification of "The GnuPG
  973    UI Server protocol".
  974 
  975  * A new function gpgme_cancel_async can be used to asynchronously
  976    cancel any pending operation at any time, from any thread.
  977 
  978  * Interface changes relative to the 1.1.6 release:
  979  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  980 gpgme_op_encrypt		CHANGED: Output encoding can affect result.
  981 gpgme_op_encrypt_start		CHANGED: Output encoding can affect result.
  982 gpgme_op_encrypt_sign		CHANGED: Output encoding can affect result.
  983 gpgme_op_encrypt_sign_start	CHANGED: Output encoding can affect result.
  984 gpgme_op_sign			CHANGED: Output encoding can affect result.
  985 gpgme_op_sign_start		CHANGED: Output encoding can affect result.
  986 gpgme_op_export			CHANGED: Output encoding can affect result.
  987 gpgme_op_export_start		CHANGED: Output encoding can affect result.
  988 gpgme_op_export_ext		CHANGED: Output encoding can affect result.
  989 gpgme_op_export_ext_start	CHANGED: Output encoding can affect result.
  990 gpgme_cancel_async		NEW
  991  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  992 
  993 
  994 Noteworthy changes in version 1.1.6 (2008-01-04)
  995 ------------------------------------------------
  996 
  997  * Bug fixes for for W32.
  998 
  999  * A new, experimental (and thus undocumented and potentially
 1000    unstable) interface for accessing gpg-conf through GPGME has been
 1001    added.
 1002 
 1003  * Interface changes relative to the 1.1.1 release:
 1004  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1005  gpgme_signature_t               EXTENDED: New field chain_model.
 1006  gpgme_op_getauditlog_start      NEW.
 1007  gpgme_op_getauditlog            NEW.
 1008  GPGME_AUDITLOG_HTML             NEW.
 1009  GPGME_AUDITLOG_WITH_HELP        NEW.
 1010  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1011 
 1012 
 1013 Noteworthy changes in version 1.1.5 (2007-07-09)
 1014 ------------------------------------------------
 1015 
 1016  * Bug and portability fixes (mainly for W32).
 1017 
 1018 
 1019 Noteworthy changes in version 1.1.4 (2007-03-05)
 1020 ------------------------------------------------
 1021 
 1022  * Detect and bail out on double plaintext messages.  This is required
 1023    so that applications can properly detect the signed parts of a
 1024    message.  Actual there is now a double protection as GnuPG 1.4.7
 1025    will detect this case too.
 1026 
 1027 
 1028 Noteworthy changes in version 1.1.3 (2007-01-29)
 1029 ------------------------------------------------
 1030 
 1031  * Fixed a memory leak in gpgme_data_release_and_get_mem.
 1032 
 1033  * Fixed a bug in Windows command line quoting.
 1034 
 1035 
 1036 Noteworthy changes in version 1.1.2 (2006-03-02)
 1037 ------------------------------------------------
 1038 
 1039  * Fixed a bug in the W32 glib backend.
 1040 
 1041 
 1042 Noteworthy changes in version 1.1.1 (2006-02-23)
 1043 ------------------------------------------------
 1044 
 1045  * Fixed a bug in that the fingerprints of subkeys are not available.
 1046 
 1047  * Clarified usage of the SECRET flag in key listings.  It is now
 1048    reset for stub keys.
 1049 
 1050  * Reading signature notations and policy URLs on key signatures is
 1051    supported.  They can be found in the new field notations of the
 1052    gpgme_key_sig_t structure.  This has to be enabled with the keylist
 1053    mode flag GPGME_KEYLIST_MODE_SIG_NOTATIONS.
 1054 
 1055  * A new gpgme_free() function solves the problem of using different
 1056    allocators in a single program.  This function should now be used
 1057    instead calling free() to release the buffer returned by
 1058    gpgme_data_release_and_get_mem.  It is recommended that you always
 1059    do this, but it is only necessary on certain platforms, so backwards
 1060    compatibility is provided.  In other words: If free() worked for
 1061    you before, it will keep working.
 1062 
 1063  * New status codes GPGME_PKA_TRUST_GOOD and GPGME_PKA_TRUST_BAD.
 1064    They are analyzed by the verify handlers and made available in the
 1065    new PKA_TRUST and PKA_ADDRESS fields of the signature result structure.
 1066 
 1067  * Interface changes relative to the 1.1.0 release:
 1068 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1069 gpgme_key_sig_t			EXTENDED: New field notations.
 1070 GPGME_KEYLIST_MODE_SIG_NOTATIONS NEW
 1071 gpgme_free			NEW
 1072 GPGME_STATUS_PKA_TRUST_BAD      NEW
 1073 GPGME_STATUS_PKA_TRUST_GOOD     NEW
 1074 gpgme_signature_t               EXTENDED: New field pka_trust.
 1075 gpgme_signature_t               EXTENDED: New field pka_address.
 1076 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1077 
 1078 
 1079 Noteworthy changes in version 1.1.0 (2005-10-01)
 1080 ------------------------------------------------
 1081 
 1082  * You can now configure the backend engine file name and home
 1083    directory to be used, as default and per context.
 1084 
 1085  * Information about the recipients of an encrypted text is now
 1086    available at decryption time.
 1087 
 1088  * New status GPGME_STATUS_PLAINTEXT.  This is analyzed by the decrypt
 1089    and verify handlers, the information about the plaintext filename,
 1090    if available is made available in the new field file_name of the
 1091    respective result structure.
 1092 
 1093  * The code for "automagically detecting the thread library" has been
 1094    removed from libgpgme.  It is deprecated since version 0.4.3.
 1095    Since then, you had to link against libgpgme-pthread for
 1096    applications using pthread and libgpgme-pth for applications using
 1097    GNU Pth.
 1098 
 1099    The code was removed because it caused compilation problems on
 1100    systems where the pthread.h header from GNU Pth is available in
 1101    addition to the system header (FreeBSD 6 and later for example).
 1102 
 1103  * "./autogen.sh --build-w32" does now build gpgme.dll.
 1104 
 1105  * [W32] The environment variable GPGME_DEBUG now uses a semicolon as
 1106    delimiter.  The standard install directory is used when locating
 1107    gpg or gpgsm before finally falling back to the hardwired name.
 1108 
 1109  * There is a new flag for keys and subkeys, is_qualified, which
 1110    indicates if a key can be used for qualified signatures according
 1111    to local government regulations.
 1112 
 1113  * You can associate a filename with a data object using the new
 1114    function gpgme_data_set_file_name().  This filename will be stored
 1115    in the output when encrypting or signing the data and will be
 1116    returned when decrypting or verifying the output data.
 1117 
 1118  * You can now set notation data at signature creation with the new
 1119    function gpgme_sig_notation_add().
 1120 
 1121  * Interface changes relative to the 1.0.3 release:
 1122 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1123 gpgme_set_engine_info		NEW
 1124 gpgme_ctx_get_engine_info	NEW
 1125 gpgme_ctx_set_engine_info	NEW
 1126 gpgme_recipient_t		NEW
 1127 gpgme_decrypt_result_t		EXTENDED: New field recipients.
 1128 gpgme_verify_result_t		EXTENDED: New fields pubkey_algo, hash_algo.
 1129 gpgme_decrypt_result_t		EXTENDED: New field plaintext_filename.
 1130 gpgme_verify_result_t		EXTENDED: New field plaintext_filename.
 1131 GPGME_STATUS_PLAINTEXT		NEW
 1132 gpgme_key_t			EXTENDED: New field is_qualified.
 1133 gpgme_subkey_t			EXTENDED: New field is_qualified.
 1134 gpgme_data_get_file_name	NEW
 1135 gpgme_data_set_file_name	NEW
 1136 gpgme_sig_notation_flags_t	NEW
 1137 GPGME_SIG_NOTATION_HUMAN_READABLE NEW
 1138 GPGME_SIG_NOTATAION_CRITICAL	NEW
 1139 gpgme_sig_notation_clear	NEW
 1140 gpgme_sig_notation_add		NEW
 1141 gpgme_sig_notation_get		NEW
 1142 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1143 
 1144 
 1145 Noteworthy changes in version 1.0.3 (2005-06-20)
 1146 ------------------------------------------------
 1147 
 1148  * Previousy, GPGME would use a default "include certs" of 1.  This
 1149    has been changed.  Now GPGME will use the crypto backend engines
 1150    default unless you set the value with gpgme_set_include_certs()
 1151    explicitly.  A new macro GPGME_INCLUDE_CERTS_DEFAULT can be used
 1152    as a value to explicitly request the new default behaviour.
 1153 
 1154    Because the default changes, this is a slight change of the API
 1155    semantics.  We consider it to be a bug fix.
 1156 
 1157  * A bug which made GPGME hang has been fixed.  If you have
 1158    experienced hanging before, please try out this version and let me
 1159    know if you still experience hanging problems.
 1160 
 1161  * Interface changes relative to the 0.9.0 release:
 1162 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1163 gpgme_set_include_certs		CHANGED DEFAULT
 1164 GPGME_INCLUDE_CERTS_DEFAULT	NEW
 1165 GPGME_STATUS_SIG_SUBPACKET	NEW
 1166 GPGME_STATUS_NEED_PASSPHRASE_PIN NEW
 1167 GPGME_STATUS_SC_OP_FAILURE	NEW
 1168 GPGME_STATUS_SC_OP_SUCCESS	NEW
 1169 GPGME_STATUS_CARDCTRL		NEW
 1170 GPGME_STATUS_BACKUP_KEY_CREATED	NEW
 1171 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1172 
 1173 
 1174 Noteworthy changes in version 1.0.2 (2004-12-28)
 1175 ------------------------------------------------
 1176 
 1177  * Changed the license of the library to the GNU Lesser General Public
 1178    License (LGPL), version 2.1 or later.
 1179 
 1180 
 1181 Noteworthy changes in version 1.0.1 (2004-10-22)
 1182 ------------------------------------------------
 1183 
 1184  * Only bug fixes.
 1185 
 1186 
 1187 Noteworthy changes in version 1.0.0 (2004-09-30)
 1188 ------------------------------------------------
 1189 
 1190  * Version 1.0.0!  We are proud to present you with a thoroughly
 1191    tested and stable version of the GPGME library.  A big Thank You!
 1192    to all the people who made this possible.
 1193 
 1194    The development will be branched into a stable 1.x.y series and the
 1195    head.
 1196 
 1197  * The gpgme.m4 macro supports checking the API version.  Just prepend
 1198    it to the required version string, separated by a colon.  For
 1199    example, this release has the version "1:1.0.0".  The last release
 1200    to which this version is (mostly) ABI compatible is "1:0.4.2",
 1201    which is the default required version.
 1202 
 1203 
 1204 Noteworthy changes in version 0.9.0 (2004-06-08)
 1205 ------------------------------------------------
 1206 
 1207  * The type gpgme_key_t has now a new field keylist_mode that contains
 1208    the keylist mode that was active at the time the key was retrieved.
 1209 
 1210  * The type gpgme_decrypt_result_t has a new field "wrong_key_usage"
 1211    that contains a flag indicating that the key should not have been
 1212    used for encryption.
 1213 
 1214  * Verifying a signature of a revoked key gives the correct result now
 1215    (GPG_ERR_CERT_REVOKED error code).
 1216 
 1217  * Clarified that the error code GPG_ERR_NO_DATA from the decrypt &
 1218    verify operations still allows you to look at the signature
 1219    verification result.
 1220 
 1221  * Clarified that patterns in keylisting operations have an upper
 1222    limit, and thus are not suited to list many keys at once by their
 1223    fingerprint.  Also improve the error message if the pattern is too
 1224    long for the CMS protocol to handle.
 1225 
 1226 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1227 gpgme_key_t			EXTENDED: New field keylist_mode.
 1228 gpgme_decrypt_result_t		EXTENDED: New field wrong_key_usage.
 1229 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1230 
 1231 
 1232 Noteworthy changes in version 0.4.7 (2004-04-29)
 1233 ------------------------------------------------
 1234 
 1235  * Correctly initialize the fields expired, revoked, invalid, and
 1236    disabled in the gpgme_key_t structures.
 1237 
 1238  * A bug fix: The flag wrong_key_usage of gpgme_signature_t was
 1239    accidentally of type int instead unsigned int.
 1240 
 1241  * Interface changes relative to the 0.4.5 release:
 1242 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1243 gpgme_signature_t		CHANGED: wrong_key_usage is unsigned int now.
 1244 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1245 
 1246 Noteworthy changes in version 0.4.6 (2004-04-06)
 1247 ------------------------------------------------
 1248 
 1249  * Bug fixes
 1250 
 1251 
 1252 Noteworthy changes in version 0.4.5 (2004-03-07)
 1253 ------------------------------------------------
 1254 
 1255  * GPGME is now compiled with LFS (large file support) by default.
 1256    This means that _all_ programs using GPGME must be compiled with
 1257    LFS support enabled by default.  You can do this easily with
 1258    autoconf, by using the AC_SYS_LARGEFILE macro.  Or you can do this
 1259    without autoconf by defining the preprocessor symbol
 1260    _FILE_OFFSET_BITS to 64 (by passing the -D_FILE_OFFSET_BITS=64 to
 1261    the C compiler command line, or by defining this preprocessor
 1262    symbol before including any system header files).  For more
 1263    details, read the section on LFS in the manual.
 1264 
 1265    Up to now, it was undocumented that GPGME was not using LFS.
 1266    But the public interfaces use off_t, and file descriptors are
 1267    exchanged between the application and GPGME.  This was an oversight,
 1268    and bound to cause troubles in the future.
 1269 
 1270    Writing GPGME as a dual mode library that seamlessly supports LFS
 1271    while keeping backwards compatibility is possible, but does not
 1272    solve the problem: Many applications already expect GPGME to have
 1273    LFS (they are compiled with off_t being a 64bit value).  This is true
 1274    in particular for the popular Gtk+ and Qt programs.
 1275 
 1276    So, although this is an ABI (but not an API) break, we will not
 1277    change the library version to reflect that.  Because the interfaces
 1278    affected are probably not used yet in any GPGME 0.4 based
 1279    application, we don't expect any real failures from this change.
 1280    In fact, applications already using LFS will have some subtle bugs
 1281    fixed.
 1282 
 1283    However, if you encounter an application using GPGME 0.4.x that
 1284    does _not_ use LFS by default (off_t is a 32bit value), _and_
 1285    uses at least one of the functions gpgme_data_seek,
 1286    gpgme_data_new_from_filepart, or a gpgme_data_seek_cb_t with
 1287    gpgme_data_new_from_cbs, then indeed this library will be ABI
 1288    incompatible with the program.  As said above, we don't believe
 1289    such a program exists.  If we are in error, then you have two
 1290    options: As a quick hack, you can configure GPGME with the
 1291    --disable-largefile option.  This will revert the change, and GPGME
 1292    will not use LFS.  However, GPGME will be incompatible with
 1293    programs that expect GPGME to use LFS.  All applications are
 1294    required to use LFS when using GPGME, so this is only good as a
 1295    temporary local work-around.
 1296 
 1297    The other option is to change the versioning of the library and
 1298    recompile all applications.  We have reserved a special version of
 1299    the library for that, so you can do that without expecting a
 1300    version clash in the future.  Furthermore, everyone who does this
 1301    will agree on the version to use (this is important for
 1302    distribution makers).  Read the comment in configure.ac (before
 1303    LIBGPGME_LT_AGE) if you want to do this.  Please don't do this
 1304    blindly: As stated above, we think it is unlikely this measure is
 1305    needed.  Still, it is there if necessary.  If in doubt, contact us
 1306    and we will give our advise for your specific situation.
 1307 
 1308  * New key listing mode GPGME_KEYLIST_MODE_VALIDATE for validation of
 1309    the listed keys.
 1310 
 1311  * New interface gpgme_cancel() that can be used to cancel
 1312    asynchronous operations.
 1313 
 1314  * Interface changes relative to the 0.4.4 release:
 1315 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1316 gpgme_data_seek_cb_t		CHANGED: off_t is now a largefile type.
 1317 gpgme_data_seek			CHANGED: off_t is now a largefile type.
 1318 gpgme_data_new_from_filepart	CHANGED: off_t is now a largefile type.
 1319 GPGME_KEYLIST_MODE_VALIDATE     NEW
 1320 gpgme_cancel			NEW
 1321 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1322 
 1323 Noteworthy changes in version 0.4.4 (2004-01-12)
 1324 ------------------------------------------------
 1325 
 1326  * The member "class" in gpgme_key_sig_t and gpgme_new_signature_t has
 1327    been renamed to "sig_class", to avoid clash with C++ compilers.  In
 1328    the C API, the old name "class" has been preserved for backwards
 1329    compatibility, but is deprecated.
 1330 
 1331  * Interface changes relative to the 0.4.3 release:
 1332 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1333 gpgme_key_sig_t			CHANGED: class deprecated, use new sig_class.
 1334 gpgme_new_signature_t		CHANGED: class deprecated, use new sig_class.
 1335 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1336 
 1337 Noteworthy changes in version 0.4.3 (2003-10-06)
 1338 ------------------------------------------------
 1339 
 1340  * libgpgme should not be used for threaded programs anymore.  This
 1341    never worked reliably in all cases, because you had to
 1342    be careful about the linking order and libtool wouldn't do that for
 1343    you automatically.  Instead, now you have to link against
 1344    libgpgme-pthread for applications using pthread and libgpgme-pth for
 1345    applications using GNU Pth.
 1346 
 1347    The old code for automagically detecting the thread library is
 1348    still part of libgpgme, but it is DEPRECATED.
 1349 
 1350  * There are new automake macros AM_PATH_GPGME_PTH and
 1351    AM_PATH_GPGME_PTHREAD, which support checking for thread-enabled
 1352    versions of GPGME.  They define GPGME_PTH_CFLAGS, GPGME_PTH_LIBS,
 1353    GPGME_PTHREAD_CFLAGS and GPGME_PTHREAD_LIBS respectively.  These
 1354    variables of course also include the configuration for the thread
 1355    package itself.  Alternatively, use libtool.
 1356 
 1357  * gpgme_strerror_r as a thread safe variant of gpgme_strerror was
 1358    added.
 1359 
 1360  * gpgme-config doesn't support setting the prefix or exec prefix
 1361    anymore.  I don't think it ever worked correctly, and it seems to
 1362    be pointless.
 1363 
 1364  * gpgme_get_key fails with GPG_ERR_AMBIGUOUS_NAME if the key ID
 1365    provided was not unique, instead returning the first matching key.
 1366 
 1367  * gpgme_key_t and gpgme_subkey_t have a new field, can_authenticate,
 1368    that indicates if the key can be used for authentication.
 1369 
 1370  * gpgme_signature_t's status field is now correctly set to an error
 1371    with error code GPG_ERR_NO_PUBKEY if public key is not found.
 1372 
 1373  * gpgme_new_signature_t's class field is now an unsigned int, rather
 1374    than an unsigned long (the old class field is preserved for
 1375    backwards compatibility).
 1376 
 1377  * A new function gpgme_set_locale() is provided to allow configuring
 1378    the locale for the crypto backend.  This is necessary for text
 1379    terminals so that programs like the pinentry can be started with
 1380    the right locale settings for the terminal the application is running
 1381    on, in case the terminal has different settings than the system
 1382    default (for example, if it is a remote terminal).  You are highly
 1383    recommended to call the following functions directly after
 1384    gpgme_check_version:
 1385 
 1386    #include <locale.h>
 1387 
 1388    setlocale (LC_ALL, "");
 1389    gpgme_set_locale (NULL, LC_CTYPE, setlocale (LC_CTYPE, NULL));
 1390    gpgme_set_locale (NULL, LC_MESSAGES, setlocale (LC_MESSAGES, NULL));
 1391 
 1392    GPGME can not do this for you, as setlocale is not thread safe, and
 1393    there is no alternative.
 1394 
 1395  * The signal action for SIGPIPE is now set to SIG_IGN by
 1396    gpgme_check_version, instead the first time a crypto engine is
 1397    started (which is not well defined).
 1398 
 1399  * In the output of gpgme_hash_algo_name, change RMD160 to RIPEMD160,
 1400    TIGER to TIGER192, CRC32-RFC1510 to CRC32RFC1510, and CRC24-RFC2440
 1401    to CRC24RFC2440.  For now, these strings can be used as the MIC
 1402    parameter for PGP/MIME (if appropriately modified).
 1403 
 1404  * Interface changes relative to the 0.4.2 release:
 1405 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1406 gpgme_strerror_t		NEW
 1407 gpgme_get_key			CHANGED: Fails correctly if key ID not unique.
 1408 gpgme_key_t			EXTENDED: New field can_authenticate.
 1409 gpgme_subkey_t			EXTENDED: New field can_authenticate.
 1410 gpgme_new_signature_t		CHANGED: New type for class field.
 1411 gpgme_set_locale		NEW
 1412 gpgme_hash_algo_name		CHANGED: Slight adjustment of algo names.
 1413 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1414 
 1415 Noteworthy changes in version 0.4.2 (2003-07-30)
 1416 ------------------------------------------------
 1417 
 1418  * Allow gpg-error to be in non-standard place when linking the test suite.
 1419 
 1420  * Configure will fail now if gpg-error can not be found.
 1421 
 1422  * Fixed initialized memory backed data objects for writing, which
 1423    caused the test program to crash (but only on Mac OS, surprisingly).
 1424 
 1425  * Eliminate use of C99 constructs.
 1426 
 1427  * Small improvements to the manual.
 1428 
 1429 
 1430 Noteworthy changes in version 0.4.1 (2003-06-06)
 1431 ------------------------------------------------
 1432 
 1433  This is the release that 0.4.0 should have been.  There are many
 1434  interface changes, please see below for the details.  The changes are
 1435  sometimes the result of new functionality, but more often express a
 1436  paradigm shift.  Others are an overdue cleanup to get GPGME in line
 1437  with the GNU coding standards and to make the interface more
 1438  self-consistent.  Here is an overview on the changes:
 1439 
 1440  All types have been renamed to conform to the GNU coding standards,
 1441  most of the time by keeping the whole name in lowercase and inserting
 1442  underscores between words.
 1443 
 1444  All operations consistently only accept input parameters in their
 1445  invocation function, and return only an error code directly.  Further
 1446  information about the result of the operation has to be retrieved
 1447  afterwards by calling one of the result functions.  This unifies the
 1448  synchronous and the asynchronous interface.
 1449 
 1450  The error values have been completely replaced by a more
 1451  sophisticated model that allows GPGME to transparently and accurately
 1452  report all errors from the other GnuPG components, regardless of
 1453  process boundaries.  This is achieved by using the library
 1454  libgpg-errors, which is shared by all GnuPG components.  This library
 1455  is now required for GPGME.
 1456 
 1457  The results of all operations are now provided by pointers to C
 1458  structs rather than by XML structs or in other ways.
 1459 
 1460  Objects which used to be opaque (for example a key) are now pointers
 1461  to accessible structs, so no accessor functions are necessary.
 1462 
 1463  Backward compatibility is provided where it was possible without too
 1464  much effort and did not collide with the overall sanitization effort.
 1465  However, this is only for ease of transition.  NO DEPRECATED FUNCTION
 1466  OR DATA TYPE IS CONSIDERED A PART OF THE API OR ABI AND WILL BE
 1467  DROPPED IN THE FUTURE WITHOUT CHANGING THE SONAME OF THE LIBRARY.
 1468  Recommendations how to replace deprecated or removed functionality
 1469  can be found within the description of each change.
 1470 
 1471  What follows are all changes to the interface and behaviour of GPGME
 1472  in detail.
 1473 
 1474  * If gpgme.h is included in sources compiled by GCC 3.1 or later,
 1475    deprecated attributes will warn about use of obsolete functions and
 1476    type definitions.  You can suppress these warnings by passing
 1477    -Wno-deprecated-declarations to the gcc command.
 1478 
 1479  * The following types have been renamed.  The old types are still
 1480    available as aliases, but they are deprecated now:
 1481    Old name:		New name:
 1482    GpgmeCtx		gpgme_ctx_t
 1483    GpgmeData		gpgme_data_t
 1484    GpgmeError		gpgme_error_t
 1485    GpgmeDataEncoding	gpgme_data_encoding_t
 1486    GpgmeSigStat		gpgme_sig_stat_t
 1487    GpgmeSigMode		gpgme_sig_mode_t
 1488    GpgmeAttr		gpgme_attr_t
 1489    GpgmeValidity	gpgme_validity_t
 1490    GpgmeProtocol	gpgme_protocol_t
 1491    GpgmeKey		gpgme_key_t
 1492    GpgmePassphraseCb	gpgme_passphrase_cb_t
 1493    GpgmeProgressCb	gpgme_progress_cb_t
 1494    GpgmeIOCb		gpgme_io_cb_t
 1495    GpgmeRegisterIOCb	gpgme_register_io_cb_t
 1496    GpgmeRemoveIOCb	gpgme_remove_io_cb_t
 1497    GpgmeEventIO		gpgme_event_io_t
 1498    GpgmeEventIOCb	gpgme_event_io_cb_t
 1499    GpgmeIOCbs		gpgme_io_cbs
 1500    GpgmeDataReadCb	gpgme_data_read_cb_t
 1501    GpgmeDataWriteCb	gpgme_data_write_cb_t
 1502    GpgmeDataSeekCb	gpgme_data_seek_cb_t
 1503    GpgmeDataReleaseCb	gpgme_data_release_cb_t
 1504    GpgmeDataCbs		gpgme_data_cbs_t
 1505    GpgmeTrustItem	gpgme_trust_item_t
 1506    GpgmeStatusCode	gpgme_status_code_t
 1507 
 1508  * gpgme_error_t is now identical to gpg_error_t, the error type
 1509    provided by libgpg-error.  More about using libgpg-error with GPGME
 1510    can be found in the manual.  All error symbols have been removed!
 1511 
 1512  * All functions and types in libgpg-error have been wrapped in GPGME.
 1513    The new types are gpgme_err_code_t and gpgme_err_source_t.  The new
 1514    functions are gpgme_err_code, gpgme_err_source, gpgme_error,
 1515    gpgme_err_make, gpgme_error_from_errno, gpgme_err_make_from_errno,
 1516    gpgme_err_code_from_errno, gpgme_err_code_to_errno,
 1517    gpgme_strsource.
 1518 
 1519  * GPGME_ATTR_IS_SECRET is not anymore representable as a string.
 1520 
 1521  * GnuPG 1.2.2 is required.  The progress callback is now also invoked
 1522    for encrypt, sign, encrypt-sign, decrypt, verify, and
 1523    decrypt-verify operations.  For verify operations on detached
 1524    signatures, the progress callback is invoked for both the detached
 1525    signature and the plaintext message, though.
 1526 
 1527  * gpgme_passphrase_cb_t has been changed to not provide a complete
 1528    description, but the UID hint, passphrase info and a flag
 1529    indicating if this is a repeated attempt individually, so the user
 1530    can compose his own description from this information.
 1531 
 1532    The passphrase is not returned as a C string, but must be written
 1533    to a file descriptor directly.  This allows for secure passphrase
 1534    entries.
 1535 
 1536    The return type has been changed to gpgme_error_t value.  This
 1537    allowed to remove the gpgme_cancel function; just return
 1538    the error code GPG_ERR_CANCELED in the passphrase callback directly.
 1539 
 1540  * gpgme_edit_cb_t has been changed to take a file descriptor argument.
 1541    The user is expected to write the response to the file descriptor,
 1542    followed by a newline.
 1543 
 1544  * The recipients interface has been removed.  Instead, you use
 1545    NULL-terminated lists of keys for specifying the recipients of an
 1546    encryption operation.  Use the new encryption flag
 1547    GPGME_ENCRYPT_ALWAYS_TRUST if you want to override the validity of
 1548    the keys (but note that in general this is not a good idea).
 1549 
 1550    This change has been made to the prototypes of gpgme_op_encrypt,
 1551    gpgme_op_encrypt_start, gpgme_op_encrypt_sign and
 1552    gpgme_op_encrypt_sign_start.
 1553 
 1554    The export interface has been changed to use pattern strings like
 1555    the keylist interface.  Thus, new functions gpgme_op_export_ext and
 1556    gpgme_op_export_ext_start have been added as well.  Now the
 1557    prototypes of gpgme_op_export_start and gpgme_op_export finally
 1558    make sense.
 1559 
 1560  * gpgme_op_verify and gpgme_op_decrypt_verify don't return a status
 1561    summary anymore.  Use gpgme_get_sig_status to retrieve the individual
 1562    stati.
 1563 
 1564  * gpgme_io_cb_t changed from a void function to a function returning
 1565    a gpgme_error_t value.  However, it will always return 0, so you
 1566    can safely ignore the return value.
 1567 
 1568  * A new I/O callback event GPGME_EVENT_START has been added.  The new
 1569    requirement is that you must wait until this event until you are
 1570    allowed to call the I/O callback handlers previously registered for
 1571    this context operation.  Calling I/O callback functions for this
 1572    context operation before the start event happened is unsafe because
 1573    it can lead to race conditions in a multi-threaded environment.
 1574 
 1575  * The idle function feature has been removed.  It was not precisely
 1576    defined in a multi-threaded environment and is obsoleted by the
 1577    user I/O callback functions.  If you still need a simple way to
 1578    call something while waiting on one or multiple asynchronous
 1579    operations to complete, don't set the HANG flag in gpgme_wait (note
 1580    that this will return to your program more often than the idle
 1581    function did).
 1582 
 1583  * gpgme_wait can return NULL even if hang is true, if an error
 1584    occurs.  In that case *status contains the error code.
 1585 
 1586  * gpgme_get_engine_info was radically changed.  Instead an XML
 1587    string, an info structure of the new type gpgme_engine_info_t is
 1588    returned.  This makes it easier and more robust to evaluate the
 1589    information in an application.
 1590 
 1591  * The new function gpgme_get_protocol_name can be used to convert a
 1592    gpgme_protocol_t value into a string.
 1593 
 1594  * The status of a context operation is not checked anymore.  Starting
 1595    a new operation will silently cancel the previous one.  Calling a
 1596    function that requires you to have started an operation before without
 1597    doing so is undefined.
 1598 
 1599  * The FPR argument to gpgme_op_genkey was removed.  Instead, use the
 1600    gpgme_op_genkey_result function to retrieve a gpgme_genkey_result_t
 1601    pointer to a structure which contains the fingerprint.  This also
 1602    works with gpgme_op_genkey_start.  The structure also provides
 1603    other information about the generated keys.
 1604 
 1605    So, instead:
 1606 
 1607    char *fpr;
 1608    err = gpgme_op_genkey (ctx, NULL, NULL, &fpr);
 1609    if (!err && fpr)
 1610      printf ("%s\n", fpr);
 1611 
 1612    you should now do:
 1613 
 1614    gpgme_genkey_result_t result;
 1615    err = gpgme_op_genkey (ctx, NULL, NULL);
 1616    if (!err)
 1617      {
 1618        result = gpgme_op_genkey_result (ctx);
 1619        if (result->fpr)
 1620          printf ("%s\n", result->fpr);
 1621      }
 1622 
 1623  * The new gpgme_op_import_result function provides detailed
 1624    information about the result of an import operation in
 1625    gpgme_import_result_t and gpgme_import_status_t objects.
 1626    Thus, the gpgme_op_import_ext variant is deprecated.
 1627 
 1628  * The new gpgme_op_sign_result function provides detailed information
 1629    about the result of a signing operation in gpgme_sign_result_t,
 1630    gpgme_invalid_key_t and gpgme_new_signature_t objects.
 1631 
 1632  * The new gpgme_op_encrypt_result function provides detailed
 1633    information about the result of an encryption operation in
 1634    a GpgmeEncryptResult object.
 1635 
 1636  * The new gpgme_op_decrypt_result function provides detailed
 1637    information about the result of a decryption operation in
 1638    a GpgmeDecryptResult object.
 1639 
 1640  * The new gpgme_op_verify_result function provides detailed
 1641    information about the result of an verify operation in
 1642    a GpgmeVerifyResult object.  Because of this, the GPGME_SIG_STAT_*
 1643    values, gpgme_get_sig_status, gpgme_get_sig_ulong_attr,
 1644    gpgme_get_sig_string_attr and gpgme_get_sig_key are now deprecated,
 1645    and gpgme_get_notation is removed.
 1646 
 1647  * GpgmeTrustItem objects have now directly accessible data, so the
 1648    gpgme_trust_item_get_string_attr and gpgme_trust_item_get_ulong_attr
 1649    accessor functions are deprecated.  Also, reference counting is
 1650    available through gpgme_trust_item_ref and gpgme_trust_item_unref
 1651    (the gpgme_trust_item_release alias for the latter is deprecated).
 1652 
 1653  * Keys are not cached internally anymore, so the force_update argument
 1654    to gpgme_get_key has been removed.
 1655 
 1656  * GpgmeKey objects have now directly accessible data so the
 1657    gpgme_key_get_string_attr, gpgme_key_get_ulong_attr,
 1658    gpgme_key_sig_get_string_attr and gpgme_key_sig_get_ulong_attr
 1659    functions are deprecated.  Also, gpgme_key_release is now
 1660    deprecated.  The gpgme_key_get_as_xml function has been dropped.
 1661 
 1662  * Because all interfaces using attributes are deprecated, the
 1663    GpgmeAttr data type is also deprecated.
 1664 
 1665  * The new gpgme_op_keylist_result function provides detailed
 1666    information about the result of a key listing operation in
 1667    a GpgmeKeyListResult object.
 1668 
 1669  * Now that each function comes with its own result retrieval
 1670    interface, the generic gpgme_get_op_info interface is not useful
 1671    anymore and dropped.
 1672 
 1673  * The type and mode of data objects is not available anymore.
 1674 
 1675  * Interface changes relative to the 0.4.0 release:
 1676 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1677 GpgmeCtx			DEPRECATED: Use gpgme_ctx_t.
 1678 GpgmeData			DEPRECATED: Use gpgme_data_t.
 1679 GpgmeError			DEPRECATED: Use gpgme_error_t.
 1680 GpgmeDataEncoding		DEPRECATED: Use gpgme_data_encoding_t.
 1681 GpgmeSigStat			DEPRECATED: Use gpgme_sig_stat_t.
 1682 GpgmeSigMode			DEPRECATED: Use gpgme_sig_mode_t.
 1683 GpgmeAttr			DEPRECATED: Use gpgme_attr_t.
 1684 GpgmeValidity			DEPRECATED: Use gpgme_validity_t.
 1685 GpgmeProtocol			DEPRECATED: Use gpgme_protocol_t.
 1686 GpgmeKey			DEPRECATED: Use gpgme_key_t.
 1687 GpgmePassphraseCb		DEPRECATED: Use gpgme_passphrase_cb_t.
 1688 GpgmeProgressCb			DEPRECATED: Use gpgme_progress_cb_t.
 1689 GpgmeIOCb			DEPRECATED: Use gpgme_io_cb_t.
 1690 GpgmeRegisterIOCb		DEPRECATED: Use gpgme_register_io_cb_t.
 1691 GpgmeRemoveIOCb			DEPRECATED: Use gpgme_remove_io_cb_t.
 1692 GpgmeEventIO			DEPRECATED: Use gpgme_event_io_t.
 1693 GpgmeEventIOCb			DEPRECATED: Use gpgme_event_io_cb_t.
 1694 GpgmeIOCbs			DEPRECATED: Use gpgme_io_cbs.
 1695 GpgmeDataReadCb			DEPRECATED: Use gpgme_data_read_cb_t.
 1696 GpgmeDataWriteCb		DEPRECATED: Use gpgme_data_write_cb_t.
 1697 GpgmeDataSeekCb			DEPRECATED: Use gpgme_data_seek_cb_t.
 1698 GpgmeDataReleaseCb		DEPRECATED: Use gpgme_data_release_cb_t.
 1699 GpgmeDataCbs			DEPRECATED: Use gpgme_data_cbs_t.
 1700 GpgmeTrustItem			DEPRECATED: Use gpgme_trust_item_t.
 1701 GpgmeStatusCode			DEPRECATED: Use gpgme_status_code_t.
 1702 gpgme_ctx_t			NEW
 1703 gpgme_data_t			NEW
 1704 gpgme_recipients_t		NEW
 1705 gpgme_error_t			NEW
 1706 gpgme_data_encoding_t		NEW
 1707 gpgme_sig_stat_t		NEW
 1708 gpgme_sig_mode_t		NEW
 1709 gpgme_attr_t			NEW
 1710 gpgme_validity_t		NEW
 1711 gpgme_protocol_t		NEW
 1712 gpgme_key_t			NEW
 1713 gpgme_passphrase_cb_t		NEW
 1714 gpgme_progress_cb_t		NEW
 1715 gpgme_io_cb_t			NEW
 1716 gpgme_register_io_cb_t		NEW
 1717 gpgme_remove_io_cb_t		NEW
 1718 gpgme_event_io_t		NEW
 1719 gpgme_event_io_cb_t		NEW
 1720 gpgme_io_cbs			NEW
 1721 gpgme_data_read_cb_t		NEW
 1722 gpgme_data_write_cb_t		NEW
 1723 gpgme_data_seek_cb_t		NEW
 1724 gpgme_data_release_cb_t		NEW
 1725 gpgme_data_cbs_t		NEW
 1726 gpgme_trust_item_t		NEW
 1727 gpgme_status_code_t		NEW
 1728 GPGME_{some error code}		REMOVED! Use GPG_ERR_* from libgpg-error.
 1729 gpgme_err_code_t		NEW
 1730 gpgme_err_source_t		NEW
 1731 gpgme_err_code			NEW
 1732 gpgme_err_source		NEW
 1733 gpgme_error			NEW
 1734 gpgme_err_make			NEW
 1735 gpgme_error_from_errno		NEW
 1736 gpgme_err_make_from_errno	NEW
 1737 gpgme_err_code_from_errno	NEW
 1738 gpgme_err_code_to_errno		NEW
 1739 gpgme_strsource			NEW
 1740 gpgme_io_cb_t			CHANGED: Return type from void to GpgmeError.
 1741 gpgme_event_io_t		CHANGED: New event type (all numbers changed).
 1742 gpgme_passphrase_cb_t		CHANGED: Desc decomposed, write directly to FD.
 1743 gpgme_edit_cb_t			CHANGED: Write directly to FD.
 1744 gpgme_key_get_string_attr	CHANGED: Don't handle GPGME_ATTR_IS_SECRET.
 1745 gpgme_op_verify			CHANGED: Drop R_STAT argument.
 1746 gpgme_op_decrypt_verify		CHANGED: Drop R_STAT argument.
 1747 gpgme_wait			CHANGED: Can return NULL even if hang is true.
 1748 GpgmeIdleFunc                   REMOVED
 1749 gpgme_register_idle             REMOVED
 1750 GpgmeRecipients			REMOVED
 1751 gpgme_recipients_new		REMOVED
 1752 gpgme_recipients_release	REMOVED
 1753 gpgme_recipients_add_name	REMOVED
 1754 gpgme_recipients_add_name_with_validity	REMOVED
 1755 gpgme_recipients_count		REMOVED
 1756 gpgme_recipients_enum_open	REMOVED
 1757 gpgme_recipients_enum_read	REMOVED
 1758 gpgme_recipients_enum_close	REMOVED
 1759 gpgme_encrypt_flags_t		NEW
 1760 GPGME_ENCRYPT_ALWAYS_TRUST	NEW
 1761 gpgme_op_encrypt		CHANGED: Recipients passed as gpgme_key_t[].
 1762 gpgme_op_encrypt_start		CHANGED: Recipients passed as gpgme_key_t[].
 1763 gpgme_op_encrypt_sign		CHANGED: Recipients passed as gpgme_key_t[].
 1764 gpgme_op_encrypt_sign_start	CHANGED: Recipients passed as gpgme_key_t[].
 1765 gpgme_op_export_start		CHANGED: User IDs passed as patterns.
 1766 gpgme_op_export			CHANGED: User IDs passed as patterns.
 1767 gpgme_op_export_ext_start	NEW
 1768 gpgme_op_export_ext		NEW
 1769 gpgme_keylist_mode_t		NEW
 1770 gpgme_sigsum_t			NEW
 1771 gpgme_engine_info_t		NEW
 1772 gpgme_get_engine_info		CHANGED: Return info structure instead XML.
 1773 gpgme_get_protocol_name		NEW
 1774 gpgme_cancel			REMOVED: Return error in callback directly.
 1775 gpgme_op_genkey			CHANGED: FPR argument dropped.
 1776 gpgme_op_genkey_result		NEW
 1777 gpgme_genkey_result_t		NEW
 1778 gpgme_op_import_ext		DEPRECATED: Use gpgme_op_import_result.
 1779 gpgme_op_import_result		NEW
 1780 gpgme_import_status_t		NEW
 1781 gpgme_import_result_t		NEW
 1782 gpgme_pubkey_algo_t		NEW
 1783 gpgme_hash_algo_t		NEW
 1784 gpgme_invalid_key_t		NEW
 1785 gpgme_new_signature_t		NEW
 1786 gpgme_sign_result_t		NEW
 1787 gpgme_op_sign_result		NEW
 1788 gpgme_pubkey_algo_name		NEW
 1789 gpgme_hash_algo_name		NEW
 1790 gpgme_encrypt_result_t		NEW
 1791 gpgme_op_encrypt_result		NEW
 1792 gpgme_decrypt_result_t		NEW
 1793 gpgme_op_decrypt_result		NEW
 1794 gpgme_verify_result_t		NEW
 1795 gpgme_op_verify_result		NEW
 1796 gpgme_get_notation		REMOVED: Access verify result directly instead.
 1797 gpgme_get_sig_key		DEPRECATED: Use gpgme_get_key with fingerprint.
 1798 gpgme_get_sig_ulong_attr	DEPRECATED: Use verify result directly.
 1799 gpgme_get_sig_string_attr	DEPRECATED: Use verify result directly.
 1800 GPGME_SIG_STAT_*		DEPRECATED: Use error value in sig status.
 1801 gpgme_get_sig_status		DEPRECATED: Use verify result directly.
 1802 gpgme_trust_item_t		CHANGED: Now has user accessible data members.
 1803 gpgme_trust_item_ref		NEW
 1804 gpgme_trust_item_unref		NEW
 1805 gpgme_trust_item_release	DEPRECATED: Use gpgme_trust_item_unref.
 1806 gpgme_trust_item_get_string_attr DEPRECATED
 1807 gpgme_trust_item_get_ulong_attr	DEPRECATED
 1808 gpgme_get_key			CHANGED: Removed force_update argument.
 1809 gpgme_subkey_t			NEW
 1810 gpgme_key_sig_t			NEW
 1811 gpgme_user_id_t			NEW
 1812 gpgme_key_t			CHANGED: Now has user accessible data members.
 1813 gpgme_key_get_string_attr	DEPRECATED
 1814 gpgme_key_get_ulong_attr	DEPRECATED
 1815 gpgme_key_sig_get_string_attr	DEPRECATED
 1816 gpgme_key_sig_get_ulong_attr	DEPRECATED
 1817 gpgme_key_get_as_xml		REMOVED
 1818 gpgme_key_list_result_t		NEW
 1819 gpgme_op_keylist_result		NEW
 1820 gpgme_get_op_info		REMOVED
 1821 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1822 
 1823 Noteworthy changes in version 0.4.0 (2002-12-23)
 1824 ------------------------------------------------
 1825 
 1826  * Key generation returns the fingerprint of the generated key.
 1827 
 1828  * New convenience function gpgme_get_key.
 1829 
 1830  * Supports signatures of user IDs in keys via the new
 1831    GPGME_KEYLIST_MODE_SIGS keylist mode and the
 1832    gpgme_key_sig_get_string_attr and gpgme_key_sig_get_ulong_attr
 1833    interfaces.  The XML info about a key also includes the signatures
 1834    if available.
 1835 
 1836  * New data object interface, which is more flexible and transparent.
 1837 
 1838  * Interface changes relative to the 0.3.9 release:
 1839 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1840 GpgmeDataReadCb			NEW
 1841 GpgmeDataWriteCb		NEW
 1842 GpgmeDataSeekCb			NEW
 1843 GpgmeDataReleaseCb		NEW
 1844 GpgmeDataCbs			NEW
 1845 gpgme_data_read			CHANGED: Match read() closely.
 1846 gpgme_data_write		CHANGED: Match write() closely.
 1847 gpgme_data_seek			NEW
 1848 gpgme_data_new_from_fd		NEW
 1849 gpgme_data_new_from_stream	NEW
 1850 gpgme_data_new_from_cbs		NEW
 1851 gpgme_data_rewind		DEPRECATED: Replaced by gpgme_data_seek().
 1852 gpgme_data_new_from_read_cb	DEPRECATED: Replaced by gpgme_data_from_cbs().
 1853 gpgme_data_get_type		REMOVED: No replacement.
 1854 gpgme_op_verify			CHANGED: Take different data objects for
 1855 				signed text and plain text.
 1856 gpgme_op_verify_start		CHANGED: See gpgme_op_verify.
 1857 gpgme_check_engine		REMOVED: Deprecated since 0.3.0.
 1858 gpgme_op_genkey			CHANGED: New parameter FPR.
 1859 GPGME_KEYLIST_MODE_SIGS		NEW
 1860 gpgme_key_sig_get_string_attr	NEW
 1861 gpgme_key_sig_get_ulong_attr	NEW
 1862 gpgme_get_key			NEW
 1863 GPGME_ATTR_SIG_CLASS		NEW
 1864 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1865 
 1866 Noteworthy changes in version 0.3.16 (2003-11-19)
 1867 -------------------------------------------------
 1868 
 1869  * Compatibility fixes for GnuPG 1.9.x
 1870 
 1871 Noteworthy changes in version 0.3.15 (2003-02-18)
 1872 -------------------------------------------------
 1873 
 1874  * The progress status is sent via the progress callbacks in
 1875    gpgme_op_edit.
 1876 
 1877  * Bug fix for signing operations with explicit signer settings for
 1878    the CMS protocol.
 1879 
 1880 Noteworthy changes in version 0.3.14 (2002-12-04)
 1881 -------------------------------------------------
 1882 
 1883  * GPGME-Plug is now in its own package "cryptplug".
 1884 
 1885  * Workaround for a setlocale problem.  Fixed a segv related to not
 1886    correctly as closed marked file descriptors.
 1887 
 1888 Noteworthy changes in version 0.3.13 (2002-11-20)
 1889 -------------------------------------------------
 1890 
 1891  * Release due to changes in gpgmeplug.
 1892 
 1893 Noteworthy changes in version 0.3.12 (2002-10-15)
 1894 -------------------------------------------------
 1895 
 1896  * Fixed some bux with key listings.
 1897 
 1898  * The development has been branched to clean up some API issues.
 1899    This 0.3 series will be kept for compatibility reasons; so do don't
 1900    expect new features.
 1901 
 1902 Noteworthy changes in version 0.3.11 (2002-09-20)
 1903 -------------------------------------------------
 1904 
 1905  * Bug fixes.
 1906 
 1907 Noteworthy changes in version 0.3.10 (2002-09-02)
 1908 -------------------------------------------------
 1909 
 1910  * Setting the signing keys for the CMS protocol does now work.
 1911 
 1912  * The signers setting is honoured by gpgme_op_edit.
 1913 
 1914 Noteworthy changes in version 0.3.9 (2002-08-21)
 1915 ------------------------------------------------
 1916 
 1917  * A spec file for creating RPMs has been added.
 1918 
 1919  * An experimental interface to GnuPG's --edit-key functionality is
 1920    introduced, see gpgme_op_edit.
 1921 
 1922  * The new gpgme_import_ext function provides a convenient access to
 1923    the number of processed keys.
 1924 
 1925  * Interface changes relative to the 0.3.8 release:
 1926 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1927 GpgmeStatusCode			NEW
 1928 GpgmeEditCb			NEW
 1929 gpgme_op_edit_start		NEW
 1930 gpgme_op_edit			NEW
 1931 gpgme_op_import_ext		NEW
 1932 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1933 
 1934 Noteworthy changes in version 0.3.8 (2002-06-25)
 1935 ------------------------------------------------
 1936 
 1937  * It is possible to use an outside event loop for the I/O to the
 1938    crypto engine by setting the I/O callbacks with gpgme_set_io_cbs.
 1939 
 1940  * Interface changes relative to the 0.3.6 release:
 1941 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1942 GpgmeIOCb			NEW
 1943 GpgmeRegisterIOCb		NEW
 1944 GpgmeRemoveIOCb			NEW
 1945 GpgmeEventIO			NEW
 1946 GpgmeEventIOCb			NEW
 1947 struct GpgmeIOCbs		NEW
 1948 gpgme_set_io_cbs		NEW
 1949 gpgme_get_io_cbs		NEW
 1950 GPGME_ATTR_ERRTOK		NEW
 1951 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1952 
 1953 Noteworthy changes in version 0.3.7 (2002-06-04)
 1954 ------------------------------------------------
 1955 
 1956  * GPGME_ATTR_OTRUST is implemented now.
 1957 
 1958  * A first step toward thread safeness has been achieved, see the
 1959    documentation for details.  Supported thread libraries are pthread
 1960    and Pth.
 1961 
 1962 Noteworthy changes in version 0.3.6 (2002-05-03)
 1963 ------------------------------------------------
 1964 
 1965  * All error output of the gpgsm backend is send to the bit bucket.
 1966 
 1967  * The signature verification functions are extended.  Instead of
 1968    always returning GPGME_SIG_STATUS_GOOD, the functions new codes for
 1969    expired signatures.  2 new functions may be used to retrieve more
 1970    detailed information like the signature expiration time and a
 1971    validity information of the key without an extra key looking.
 1972 
 1973  * The current passphrase callback and progress meter callback can be
 1974    retrieved with the new functions gpgme_get_passphrase_cb and
 1975    gpgme_get_progress_cb respectively.
 1976 
 1977  * Interface changes relative to the 0.3.5 release:
 1978 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1979 gpgme_get_passphrase_cb		NEW
 1980 gpgme_get_progress_cb		NEW
 1981 GpgmeDataEncoding               NEW
 1982 gpgme_data_set_encoding         NEW
 1983 gpgme_data_get_encoding         NEW
 1984 GPGME_SIG_STAT_GOOD_EXP         NEW
 1985 GPGME_SIG_STAT_GOOD_EXPKEY      NEW
 1986 gpgme_op_verify                 CHANGED: Returns more status codes.
 1987 GPGME_ATTR_SIG_STATUS           NEW
 1988 gpgme_get_sig_string_attr       NEW
 1989 gpgme_get_sig_ulong_attr        NEW
 1990 gpgme_get_protocol              NEW
 1991 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1992 
 1993 Noteworthy changes in version 0.3.5 (2002-04-01)
 1994 ------------------------------------------------
 1995 
 1996  * gpgme_op_encrypt can be called with RECIPIENTS being 0.  In this
 1997    case, symmetric encryption is performed.  Note that this requires a
 1998    passphrase from the user.
 1999 
 2000  * More information is returned for X.509 certificates.
 2001 
 2002  * Interface changes relative to the 0.3.4 release:
 2003 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2004 gpgme_op_encrypt		EXTENDED: Symmetric encryption possible
 2005 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2006 
 2007 Noteworthy changes in version 0.3.4 (2002-03-04)
 2008 ------------------------------------------------
 2009 
 2010  * gpgme_op_encrypt does now fail with GPGME_Invalid_Recipients if
 2011    some recipients have been invalid, whereas earlier versions
 2012    succeeded in this case.  The plaintext is still encrypted for all valid
 2013    recipients, so the application might take this error as a hint that
 2014    the ciphertext is not usable for all requested recipients.
 2015    Information about invalid recipients is available with gpgme_get_op_info.
 2016 
 2017  * gpgme_op_verify now allows to pass an uninitialized data object as
 2018    its plaintext argument to check for normal and cleartext
 2019    signatures.  The plaintext is then returned in the data object.
 2020 
 2021  * New interfaces gpgme_set_include_certs and gpgme_get_include_certs
 2022    to set and get the number of certifications to include in S/MIME
 2023    signed messages.
 2024 
 2025  * New interfaces gpgme_op_encrypt_sign and gpgme_op_encrypt_sign_start
 2026    to encrypt and sign a message in a combined operation.
 2027 
 2028  * New interface gpgme_op_keylist_ext_start to search for multiple patterns.
 2029 
 2030  * gpgme_key_get_ulong_attr supports the GPGME_ATTR_EXPIRE attribute.
 2031 
 2032  * Interface changes relative to the 0.3.3 release:
 2033 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2034 gpgme_op_encrypt		CHANGED: Can fail with GPGME_Invalid_Recipients
 2035 gpgme_op_verify			EXTENDED: Accepts uninitialized text argument
 2036 gpgme_key_get_ulong_attr	EXTENDED: Supports GPGME_ATTR_EXPIRE
 2037 gpgme_set_include_certs		NEW
 2038 gpgme_get_include_certs		NEW
 2039 gpgme_op_encrypt_sign		NEW
 2040 gpgme_op_encrypt_sign_start	NEW
 2041 gpgme_op_keylist_ext_start	NEW
 2042 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2043 
 2044 Noteworthy changes in version 0.3.3 (2002-02-12)
 2045 ------------------------------------------------
 2046 
 2047  * Fix the Makefile in jnlib.
 2048 
 2049  * Fix the test suite (hopefully).  It should clean up all its state
 2050    with `make check' now.
 2051 
 2052 
 2053 Noteworthy changes in version 0.3.2 (2002-02-10)
 2054 ------------------------------------------------
 2055 
 2056  * Remove erroneous dependency on libgcrypt in jnlib.
 2057 
 2058 
 2059 Noteworthy changes in version 0.3.1 (2002-02-09)
 2060 ------------------------------------------------
 2061 
 2062  * There is a Texinfo manual documenting the API.
 2063 
 2064  * The gpgme_set_keylist_mode function returns an error, and changed
 2065    its meaning.  It is no longer usable to select between normal and
 2066    fast mode (newer versions of GnuPG will always be fast), but
 2067    selects between local keyring, remote keyserver, or both.
 2068    For this, two new macros are defined, GPGME_KEYLIST_MODE_LOCAL
 2069    and GPGME_KEYLIST_MODE_EXTERN.  To make it possible to modify the
 2070    current setting, a function gpgme_get_keylist_mode was added to
 2071    retrieve the current mode.
 2072 
 2073  * gpgme_wait accepts a new argument STATUS to return the error status
 2074    of the operation on the context.  Its definition is closer to
 2075    waitpid() now than before.
 2076 
 2077  * The LENGTH argument to gpgme_data_new_from_filepart changed its
 2078    type from off_t to the unsigned size_t.
 2079 
 2080  * The R_HD argument to the GpgmePassphraseCb type changed its type
 2081    from void* to void**.
 2082 
 2083  * New interface gpgme_op_trustlist_end() to match
 2084    gpgme_op_keylist_end().
 2085 
 2086  * The CryptPlug modules have been renamed to gpgme-openpgp and
 2087    gpgme-smime, and they are installed in pkglibdir by `make install'.
 2088 
 2089  * An idle function can be registered with gpgme_register_idle().
 2090 
 2091  * The GpgSM backend supports key generation with gpgme_op_genkey().
 2092 
 2093  * Interface changes relative to the 0.3.0 release:
 2094 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2095 gpgme_data_new_from_filepart	CHANGED: Type of LENGTH is size_t.
 2096 GpgmePassphraseCb               CHANGED: Type of R_HD is void **.
 2097 gpgme_wait                      CHANGED: New argument STATUS.
 2098 gpgme_set_keylist_mode          CHANGED: Type of return value is GpgmeError.
 2099                                 The function has a new meaning!
 2100 gpgme_get_keylist_mode          NEW
 2101 GPGME_KEYLIST_MODE_LOCAL        NEW
 2102 GPGME_KEYLIST_MODE_EXTERN       NEW
 2103 gpgme_op_trustlist_next		NEW
 2104 GpgmeIdleFunc                   NEW
 2105 gpgme_register_idle             NEW
 2106 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2107 
 2108 Noteworthy changes in version 0.3.0 (2001-12-19)
 2109 ------------------------------------------------
 2110 
 2111  * New interface gpgme_set_protocol() to set the protocol and thus the
 2112    crypto engine to be used by the context.  Currently, the OpenPGP
 2113    and the CMS protocols are supported.  They are specified by the new
 2114    preprocessor symbols GPGME_PROTOCOL_OpenPGP and GPGME_PROTOCOL_CMS.
 2115    A new context uses the OpenPGP engine by default.
 2116 
 2117  * gpgme_get_engine_info() returns information for all crypto engines
 2118    compiled into the library.  The XML format has changed.  To
 2119    reliably get the version of a crypto engine, the <version> tag
 2120    after the appropriate <protocol> tag has to be looked for.
 2121 
 2122  * New interface gpgme_engine_check_version(), obsoleting
 2123    gpgme_check_engine().  Check the version of all engines you are
 2124    supporting in your software.
 2125 
 2126  * GpgmeKey lists the user ids in the order as they are returned by
 2127    GnuPG, first the primary key with index 0, then the sub-user ids.
 2128 
 2129  * New operation gpgme_op_decrypt_verify() to decrypt and verify
 2130    signatures simultaneously.
 2131 
 2132  * The new interface gpgme_op_keylist_end() terminates a pending
 2133    keylist operation.  A keylist operation is also terminated when
 2134    gpgme_op_keylist_next() returns GPGME_EOF.
 2135 
 2136  * GPGME can be compiled without GnuPG being installed (`--with-gpg=PATH'),
 2137    cross-compiled, or even compiled without support for GnuPG
 2138    (`--without-gpg').
 2139 
 2140  * GPGME can be compiled with support for GpgSM (GnuPG for S/MIME,
 2141    `--with-gpgsm=PATH').  It is enabled by default if the `gpgsm' is found
 2142    in the path, but it can also be compiled without support for GpgSM
 2143    (`--without-gpgsm').
 2144 
 2145  * CryptPlug modules for GPGME are included and can be enabled at
 2146    configure time (`--enable-gpgmeplug').  There is one module which
 2147    uses the GnuPG engine (`gpgmeplug') and one module which uses the
 2148    GpgSM engine (`gpgsmplug').
 2149 
 2150  * Interface changes relative to the latest 0.2.x release:
 2151 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2152 gpgme_key_get_as_xml		CHANGED: Sub-user ids reversed in order.
 2153 gpgme_key_get_string_attr	CHANGED: User ids reversed in order.
 2154 gpgme_key_get_ulong_attr	CHANGED: User ids reversed in order.
 2155 gpgme_get_engine_info		CHANGED: New format, extended content.
 2156 gpgme_engine_check_version	NEW
 2157 gpgme_decrypt_verify_start	NEW
 2158 gpgme_decrypt_verify		NEW
 2159 gpgme_op_keylist_next		NEW
 2160 gpgme_set_protocol		NEW
 2161 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2162 
 2163 
 2164 Noteworthy changes in version 0.2.3 (2001-09-17)
 2165 ------------------------------------------------
 2166 
 2167  * New function gpgme_get_op_info which can be used to get the micalg
 2168    parameter needed for MOSS.
 2169 
 2170  * New functions gpgme_get_armor and gpgme_get_textmode.
 2171 
 2172  * The usual bug fixes and some minor functionality improvements.
 2173 
 2174  * Added a simple encryption component for MS-Windows; however the
 2175    build procedure might have some problems.
 2176 
 2177 
 2178 Noteworthy changes in version 0.2.2 (2001-06-12)
 2179 ------------------------------------------------
 2180 
 2181  * Implemented a key cache.
 2182 
 2183  * Fixed a race condition under W32 and some other bug fixes.
 2184 
 2185 
 2186 Noteworthy changes in version 0.2.1 (2001-04-02)
 2187 ------------------------------------------------
 2188 
 2189  * Changed debug output and GPGME_DEBUG variable (gpgme/debug.c)
 2190 
 2191  * Handle GnuPG's new key capabilities output and support revocation
 2192    et al. attributes
 2193 
 2194  * Made the W32 support more robust.
 2195 
 2196 
 2197  Copyright 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009,
 2198            2010 g10 Code GmbH
 2199 
 2200  This file is free software; as a special exception the author gives
 2201  unlimited permission to copy and/or distribute it, with or without
 2202  modifications, as long as this notice is preserved.
 2203 
 2204  This file is distributed in the hope that it will be useful, but
 2205  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 2206  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.