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