-This is gpgme.info, produced by makeinfo version 5.2 from gpgme.texi.
+This is gpgme.info, produced by makeinfo version 6.5 from gpgme.texi.
-Copyright © 2002–2008, 2010, 2012–2016 g10 Code GmbH.
+Copyright © 2002–2008, 2010, 2012–2018 g10 Code GmbH.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU General Public License as
This file documents the GPGME library.
- This is Edition 1.7.1, last updated 26 August 2015, of ‘The ‘GnuPG
-Made Easy’ Reference Manual’, for Version 1.7.1.
+ This is Edition 1.14.0-beta56, last updated 13 December 2019, of ‘The
+‘GnuPG Made Easy’ Reference Manual’, for Version 1.14.0-beta56.
- Copyright © 2002–2008, 2010, 2012–2016 g10 Code GmbH.
+ Copyright © 2002–2008, 2010, 2012–2018 g10 Code GmbH.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU General Public License as
Public License for more details.
\1f
+File: gpgme.info, Node: UI Server Set Input Files, Next: UI Server Sign/Encrypt Files, Prev: UI Server Verify, Up: UI Server Protocol
+
+A.5 UI Server: Specifying the input files to operate on.
+========================================================
+
+All file related UI server commands operate on a number of input files
+or directories, specified by one or more ‘FILE’ commands:
+
+ -- Command: FILE [--clear] NAME
+ Add the file or directory NAME to the list of pathnames to be
+ processed by the server. The parameter NAME must be an absolute
+ path name (including the drive letter) and is percent espaced (in
+ particular, the characters %, = and white space characters are
+ always escaped). If the option ‘--clear’ is given, the list of
+ files is cleared before adding NAME.
+
+ Historical note: The original spec did not define ‘--clear’ but the
+ keyword ‘--continued’ after the file name to indicate that more
+ files are to be expected. However, this has never been used and
+ thus removed from the specs.
+
+\1f
+File: gpgme.info, Node: UI Server Sign/Encrypt Files, Next: UI Server Verify/Decrypt Files, Prev: UI Server Set Input Files, Up: UI Server Protocol
+
+A.6 UI Server: Encrypting and signing files.
+============================================
+
+First, the input files need to be specified by one or more ‘FILE’
+commands. Afterwards, the actual operation is requested:
+
+ -- Command: ENCRYPT_FILES --nohup
+ -- Command: SIGN_FILES --nohup
+ -- Command: ENCRYPT_SIGN_FILES --nohup
+ Request that the files specified by ‘FILE’ are encrypted and/or
+ signed. The command selects the default action. The UI server may
+ allow the user to change this default afterwards interactively, and
+ even abort the operation or complete it only on some of the
+ selected files and directories.
+
+ What it means to encrypt or sign a file or directory is specific to
+ the preferences of the user, the functionality the UI server
+ provides, and the selected protocol. Typically, for each input
+ file a new file is created under the original filename plus a
+ protocol specific extension (like ‘.gpg’ or ‘.sig’), which contain
+ the encrypted/signed file or a detached signature. For
+ directories, the server may offer multiple options to the user (for
+ example ignore or process recursively).
+
+ The ‘ENCRYPT_SIGN_FILES’ command requests a combined sign and
+ encrypt operation. It may not be available for all protocols (for
+ example, it is available for OpenPGP but not for CMS).
+
+ The option ‘--nohup’ is mandatory. It is currently unspecified
+ what should happen if ‘--nohup’ is not present. Because ‘--nohup’
+ is present, the server always returns ‘OK’ promptly, and completes
+ the operation asynchronously.
+
+\1f
+File: gpgme.info, Node: UI Server Verify/Decrypt Files, Next: UI Server Import/Export Keys, Prev: UI Server Sign/Encrypt Files, Up: UI Server Protocol
+
+A.7 UI Server: Decrypting and verifying files.
+==============================================
+
+First, the input files need to be specified by one or more ‘FILE’
+commands. Afterwards, the actual operation is requested:
+
+ -- Command: DECRYPT_FILES --nohup
+ -- Command: VERIFY_FILES --nohup
+ -- Command: DECRYPT_VERIFY_FILES --nohup
+ Request that the files specified by ‘FILE’ are decrypted and/or
+ verified. The command selects the default action. The UI server
+ may allow the user to change this default afterwards interactively,
+ and even abort the operation or complete it only on some of the
+ selected files and directories.
+
+ What it means to decrypt or verify a file or directory is specific
+ to the preferences of the user, the functionality the UI server
+ provides, and the selected protocol. Typically, for decryption, a
+ new file is created for each input file under the original filename
+ minus a protocol specific extension (like ‘.gpg’) which contains
+ the original plaintext. For verification a status is displayed for
+ each signed input file, indicating if it is signed, and if yes, if
+ the signature is valid. For files that are signed and encrypted,
+ the ‘VERIFY’ command transiently decrypts the file to verify the
+ enclosed signature. For directories, the server may offer multiple
+ options to the user (for example ignore or process recursively).
+
+ The option ‘--nohup’ is mandatory. It is currently unspecified
+ what should happen if ‘--nohup’ is not present. Because ‘--nohup’
+ is present, the server always returns ‘OK’ promptly, and completes
+ the operation asynchronously.
+
+\1f
+File: gpgme.info, Node: UI Server Import/Export Keys, Next: UI Server Checksum Files, Prev: UI Server Verify/Decrypt Files, Up: UI Server Protocol
+
+A.8 UI Server: Managing certificates.
+=====================================
+
+First, the input files need to be specified by one or more ‘FILE’
+commands. Afterwards, the actual operation is requested:
+
+ -- Command: IMPORT_FILES --nohup
+ Request that the certificates contained in the files specified by
+ ‘FILE’ are imported into the local certificate databases.
+
+ For directories, the server may offer multiple options to the user
+ (for example ignore or process recursively).
+
+ The option ‘--nohup’ is mandatory. It is currently unspecified
+ what should happen if ‘--nohup’ is not present. Because ‘--nohup’
+ is present, the server always returns ‘OK’ promptly, and completes
+ the operation asynchronously.
+
+ FIXME: It may be nice to support an ‘EXPORT’ command as well, which
+is enabled by the context menu of the background of a directory.
+
+\1f
+File: gpgme.info, Node: UI Server Checksum Files, Next: Miscellaneous UI Server Commands, Prev: UI Server Import/Export Keys, Up: UI Server Protocol
+
+A.9 UI Server: Create and verify checksums for files.
+=====================================================
+
+First, the input files need to be specified by one or more ‘FILE’
+commands. Afterwards, the actual operation is requested:
+
+ -- Command: CHECKSUM_CREATE_FILES --nohup
+ Request that checksums are created for the files specified by
+ ‘FILE’. The choice of checksum algorithm and the destination
+ storage and format for the created checksums depend on the
+ preferences of the user and the functionality provided by the UI
+ server. For directories, the server may offer multiple options to
+ the user (for example ignore or process recursively).
+
+ The option ‘--nohup’ is mandatory. It is currently unspecified
+ what should happen if ‘--nohup’ is not present. Because ‘--nohup’
+ is present, the server always returns ‘OK’ promptly, and completes
+ the operation asynchronously.
+
+ -- Command: CHECKSUM_VERIFY_FILES --nohup
+ Request that checksums are created for the files specified by
+ ‘FILE’ and verified against previously created and stored
+ checksums. The choice of checksum algorithm and the source storage
+ and format for previously created checksums depend on the
+ preferences of the user and the functionality provided by the UI
+ server. For directories, the server may offer multiple options to
+ the user (for example ignore or process recursively).
+
+ If the source storage of previously created checksums is available
+ to the user through the Windows shell, this command may also accept
+ such checksum files as ‘FILE’ arguments. In this case, the UI
+ server should instead verify the checksum of the referenced files
+ as if they were given as INPUT files.
+
+ The option ‘--nohup’ is mandatory. It is currently unspecified
+ what should happen if ‘--nohup’ is not present. Because ‘--nohup’
+ is present, the server always returns ‘OK’ promptly, and completes
+ the operation asynchronously.
+
+\1f
+File: gpgme.info, Node: Miscellaneous UI Server Commands, Prev: UI Server Checksum Files, Up: UI Server Protocol
+
+A.10 Miscellaneous UI Server Commands
+=====================================
+
+The server needs to implement the following commands which are not
+related to a specific command:
+
+ -- Command: GETINFO WHAT
+ This is a multi purpose command, commonly used to return a variety
+ of information. The required subcommands as described by the WHAT
+ parameter are:
+
+ ‘pid’
+ Return the process id of the server in decimal notation using
+ an Assuan data line.
+
+To allow the server to pop up the windows in the correct relation to the
+client, the client is advised to tell the server by sending the option:
+
+ -- Command option: window-id NUMBER
+ The NUMBER represents the native window ID of the clients current
+ window. On Windows systems this is a windows handle (‘HWND’) and
+ on X11 systems it is the ‘X Window ID’. The number needs to be
+ given as a hexadecimal value so that it is easier to convey pointer
+ values (e.g. ‘HWND’).
+
+A client may want to fire up the certificate manager of the server. To
+do this it uses the Assuan command:
+
+ -- Command: START_KEYMANAGER
+ The server shall pop up the main window of the key manager (aka
+ certificate manager). The client expects that the key manager is
+ brought into the foregound and that this command immediately
+ returns (does not wait until the key manager has been fully brought
+ up).
+
+A client may want to fire up the configuration dialog of the server. To
+do this it uses the Assuan command:
+
+ -- Command: START_CONFDIALOG
+ The server shall pop up its configuration dialog. The client
+ expects that this dialog is brought into the foregound and that
+ this command immediately returns (i.e. it does not wait until the
+ dialog has been fully brought up).
+
+When doing an operation on a mail, it is useful to let the server know
+the address of the sender:
+
+ -- Command: SENDER [--info] [--protocol=NAME] EMAIL
+ EMAIL is the plain ASCII encoded address ("addr-spec" as per
+ RFC-2822) enclosed in angle brackets. The address set with this
+ command is valid until a successful completion of the operation or
+ until a ‘RESET’ command. A second command overrides the effect of
+ the first one; if EMAIL is not given and ‘--info’ is not used, the
+ server shall use the default signing key.
+
+ If option ‘--info’ is not given, the server shall also suggest a
+ protocol to use for signing. The client may use this suggested
+ protocol on its own discretion. The same status line as with
+ PREP_ENCRYPT is used for this.
+
+ The option ‘--protocol’ may be used to give the server a hint on
+ which signing protocol should be preferred.
+
+To allow the UI-server to visually identify a running operation or to
+associate operations the server MAY support the command:
+
+ -- Command: SESSION NUMBER [STRING]
+ The NUMBER is an arbitrary value, a server may use to associate
+ simultaneous running sessions. It is a 32 bit unsigned integer
+ with ‘0’ as a special value indicating that no session association
+ shall be done.
+
+ If STRING is given, the server may use this as the title of a
+ window or, in the case of an email operation, to extract the
+ sender’s address. The string may contain spaces; thus no
+ plus-escaping is used.
+
+ This command may be used at any time and overrides the effect of
+ the last command. A ‘RESET’ undoes the effect of this command.
+
+\1f
+File: gpgme.info, Node: Debugging, Next: Deprecated Functions, Prev: UI Server Protocol, Up: Top
+
+Appendix B How to solve problems
+********************************
+
+Everyone knows that software often does not do what it should do and
+thus there is a need to track down problems. This is in particular true
+for applications using a complex library like GPGME and of course also
+for the library itself. Here we give a few hints on how to solve such
+problems.
+
+ First of all you should make sure that the keys you want to use are
+installed in the GnuPG engine and are usable. Thus the first test is to
+run the desired operation using ‘gpg’ or ‘gpgsm’ on the command line.
+If you can’t figure out why things don’t work, you may use GPGME’s built
+in trace feature. This feature is either enabled using the environment
+variable ‘GPGME_DEBUG’ or, if this is not possible, by calling the
+function ‘gpgme_set_global_flag’. The value is the trace level and an
+optional file name. If no file name is given the trace output is
+printed to ‘stderr’.
+
+For example
+ GPGME_DEBUG=9:/home/user/mygpgme.log
+(Note that under Windows you use a semicolon in place of the colon to
+separate the fields.)
+
+ A trace level of 9 is pretty verbose and thus you may want to start
+off with a lower level. The exact definition of the trace levels and
+the output format may change with any release; you need to check the
+source code for details. In any case the trace log should be helpful to
+understand what is going going on. Warning: The trace log may reveal
+sensitive details like passphrases or other data you use in your
+application. If you are asked to send a log file, make sure that you
+run your tests only with play data.
+
+\1f
+File: gpgme.info, Node: Deprecated Functions, Next: Library Copying, Prev: Debugging, Up: Top
+
+Appendix C Deprecated Functions
+*******************************
+
+For backward compatibility GPGME has a number of functions, data types
+and constants which are deprecated and should not be used anymore. We
+document here those which are really old to help understanding old code
+and to allow migration to their modern counterparts.
+
+ *Warning:* These interfaces will be removed in a future version of
+GPGME.
+
+ -- Function: void gpgme_key_release (gpgme_key_t KEY)
+ The function ‘gpgme_key_release’ is equivalent to
+ ‘gpgme_key_unref’.
+
+ -- Function: gpgme_error_t gpgme_op_import_ext (gpgme_ctx_t CTX,
+ gpgme_data_t KEYDATA, int *NR)
+ SINCE: 0.3.9
+
+ The function ‘gpgme_op_import_ext’ is equivalent to:
+
+ gpgme_error_t err = gpgme_op_import (ctx, keydata);
+ if (!err)
+ {
+ gpgme_import_result_t result = gpgme_op_import_result (ctx);
+ *nr = result->considered;
+ }
+
+ -- Data type: gpgme_error_t (*gpgme_edit_cb_t) (void *HANDLE,
+ gpgme_status_code_t STATUS, const char *ARGS, int FD)
+ The ‘gpgme_edit_cb_t’ type is the type of functions which GPGME
+ calls if it a key edit operation is on-going. The status code
+ STATUS and the argument line ARGS are passed through by GPGME from
+ the crypto engine. The file descriptor FD is -1 for normal status
+ messages. If STATUS indicates a command rather than a status
+ message, the response to the command should be written to FD. The
+ HANDLE is provided by the user at start of operation.
+
+ The function should return ‘GPG_ERR_FALSE’ if it did not handle the
+ status code, ‘0’ for success, or any other error value.
+
+ -- Function: gpgme_error_t gpgme_op_edit (gpgme_ctx_t CTX,
+ gpgme_key_t KEY, gpgme_edit_cb_t FNC, void *HANDLE,
+ gpgme_data_t OUT)
+ SINCE: 0.3.9
+
+ Note: This function is deprecated, please use ‘gpgme_op_interact’
+ instead.
+
+ The function ‘gpgme_op_edit’ processes the key KEY interactively,
+ using the edit callback function FNC with the handle HANDLE. The
+ callback is invoked for every status and command request from the
+ crypto engine. The output of the crypto engine is written to the
+ data object OUT.
+
+ Note that the protocol between the callback function and the crypto
+ engine is specific to the crypto engine and no further support in
+ implementing this protocol correctly is provided by GPGME.
+
+ The function returns the error code ‘GPG_ERR_NO_ERROR’ if the edit
+ operation completes successfully, ‘GPG_ERR_INV_VALUE’ if CTX or KEY
+ is not a valid pointer, and any error returned by the crypto engine
+ or the edit callback handler.
+
+ -- Function: gpgme_error_t gpgme_op_edit_start (gpgme_ctx_t CTX,
+ gpgme_key_t KEY, gpgme_edit_cb_t FNC, void *HANDLE,
+ gpgme_data_t OUT)
+
+ SINCE: 0.3.9
+
+ Note: This function is deprecated, please use
+ ‘gpgme_op_interact_start’ instead.
+
+ The function ‘gpgme_op_edit_start’ initiates a ‘gpgme_op_edit’
+ operation. It can be completed by calling ‘gpgme_wait’ on the
+ context. *Note Waiting For Completion::.
+
+ The function returns the error code ‘GPG_ERR_NO_ERROR’ if the
+ operation was started successfully, and ‘GPG_ERR_INV_VALUE’ if CTX
+ or KEY is not a valid pointer.
+
+ -- Function: gpgme_error_t gpgme_op_card_edit (gpgme_ctx_t CTX,
+ gpgme_key_t KEY, gpgme_edit_cb_t FNC, void *HANDLE,
+ gpgme_data_t OUT)
+ Note: This function is deprecated, please use ‘gpgme_op_interact’
+ with the flag ‘GPGME_INTERACT_CARD’ instead.
+
+ The function ‘gpgme_op_card_edit’ is analogous to ‘gpgme_op_edit’,
+ but should be used to process the smart card corresponding to the
+ key KEY.
+
+ -- Function: gpgme_error_t gpgme_op_card_edit_start (gpgme_ctx_t CTX,
+ gpgme_key_t KEY, gpgme_edit_cb_t FNC, void *HANDLE,
+ gpgme_data_t OUT)
+ Note: This function is deprecated, please use
+ ‘gpgme_op_interact_start’ with the flag ‘GPGME_INTERACT_CARD’
+ instead.
+
+ The function ‘gpgme_op_card_edit_start’ initiates a
+ ‘gpgme_op_card_edit’ operation. It can be completed by calling
+ ‘gpgme_wait’ on the context. *Note Waiting For Completion::.
+
+ The function returns the error code ‘GPG_ERR_NO_ERROR’ if the
+ operation was started successfully, and ‘GPG_ERR_INV_VALUE’ if CTX
+ or KEY is not a valid pointer.
+
+ -- Function: gpgme_error_t gpgme_data_new_with_read_cb
+ (gpgme_data_t *DH, int (*READFUNC) (void *HOOK, char *BUFFER,
+ size_t COUNT, size_t *NREAD), void *HOOK_VALUE)
+ The function ‘gpgme_data_new_with_read_cb’ creates a new
+ ‘gpgme_data_t’ object and uses the callback function READFUNC to
+ retrieve the data on demand. As the callback function can supply
+ the data in any way it wants, this is the most flexible data type
+ GPGME provides. However, it can not be used to write data.
+
+ The callback function receives HOOK_VALUE as its first argument
+ whenever it is invoked. It should return up to COUNT bytes in
+ BUFFER, and return the number of bytes actually read in NREAD. It
+ may return ‘0’ in NREAD if no data is currently available. To
+ indicate ‘EOF’ the function should return with an error code of
+ ‘-1’ and set NREAD to ‘0’. The callback function may support to
+ reset its internal read pointer if it is invoked with BUFFER and
+ NREAD being ‘NULL’ and COUNT being ‘0’.
+
+ The function returns the error code ‘GPG_ERR_NO_ERROR’ if the data
+ object was successfully created, ‘GPG_ERR_INV_VALUE’ if DH or
+ READFUNC is not a valid pointer, and ‘GPG_ERR_ENOMEM’ if not enough
+ memory is available.
+
+ -- Function: gpgme_error_t gpgme_data_rewind (gpgme_data_t DH)
+ The function ‘gpgme_data_rewind’ is equivalent to:
+
+ return (gpgme_data_seek (dh, 0, SEEK_SET) == -1)
+ ? gpgme_error_from_errno (errno) : 0;
+
+ -- Data type: gpgme_attr_t
+ The ‘gpgme_attr_t’ type is used to specify a key or trust item
+ attribute. The following attributes are defined:
+
+ ‘GPGME_ATTR_KEYID’
+ This is the key ID of a sub key. It is representable as a
+ string.
+
+ ‘GPGME_ATTR_FPR’
+ This is the fingerprint of a sub key. It is representable as
+ a string.
+
+ ‘GPGME_ATTR_ALGO’
+ This is the crypto algorithm for which the sub key can be
+ used. It is representable as a string and as a number. The
+ numbers correspond to the ‘enum gcry_pk_algos’ values in the
+ gcrypt library.
+
+ ‘GPGME_ATTR_LEN’
+ This is the key length of a sub key. It is representable as a
+ number.
+
+ ‘GPGME_ATTR_CREATED’
+ This is the timestamp at creation time of a sub key. It is
+ representable as a number.
+
+ ‘GPGME_ATTR_EXPIRE’
+ This is the expiration time of a sub key. It is representable
+ as a number.
+
+ ‘GPGME_ATTR_USERID’
+ This is a user ID. There can be more than one user IDs in a
+ GPGME_KEY_T object. The first one (with index 0) is the
+ primary user ID. The user ID is representable as a number.
+
+ ‘GPGME_ATTR_NAME’
+ This is the name belonging to a user ID. It is representable
+ as a string.
+
+ ‘GPGME_ATTR_EMAIL’
+ This is the email address belonging to a user ID. It is
+ representable as a string.
+
+ ‘GPGME_ATTR_COMMENT’
+ This is the comment belonging to a user ID. It is
+ representable as a string.
+
+ ‘GPGME_ATTR_VALIDITY’
+ This is the validity belonging to a user ID. It is
+ representable as a string and as a number. See below for a
+ list of available validities.
+
+ ‘GPGME_ATTR_UID_REVOKED’
+ This specifies if a user ID is revoked. It is representable
+ as a number, and is ‘1’ if the user ID is revoked, and ‘0’
+ otherwise.
+
+ ‘GPGME_ATTR_UID_INVALID’
+ This specifies if a user ID is invalid. It is representable
+ as a number, and is ‘1’ if the user ID is invalid, and ‘0’
+ otherwise.
+
+ ‘GPGME_ATTR_TYPE’
+ This returns information about the type of key. For the
+ string function this will eother be "PGP" or "X.509". The
+ integer function returns 0 for PGP and 1 for X.509.
+
+ ‘GPGME_ATTR_IS_SECRET’
+ This specifies if the key is a secret key. It is
+ representable as a number, and is ‘1’ if the key is revoked,
+ and ‘0’ otherwise.
+
+ ‘GPGME_ATTR_KEY_REVOKED’
+ This specifies if a sub key is revoked. It is representable
+ as a number, and is ‘1’ if the key is revoked, and ‘0’
+ otherwise.
+
+ ‘GPGME_ATTR_KEY_INVALID’
+ This specifies if a sub key is invalid. It is representable
+ as a number, and is ‘1’ if the key is invalid, and ‘0’
+ otherwise.
+
+ ‘GPGME_ATTR_KEY_EXPIRED’
+ This specifies if a sub key is expired. It is representable
+ as a number, and is ‘1’ if the key is expired, and ‘0’
+ otherwise.
+
+ ‘GPGME_ATTR_KEY_DISABLED’
+ This specifies if a sub key is disabled. It is representable
+ as a number, and is ‘1’ if the key is disabled, and ‘0’
+ otherwise.
+
+ ‘GPGME_ATTR_KEY_CAPS’
+ This is a description of the capabilities of a sub key. It is
+ representable as a string. The string contains the letter “e”
+ if the key can be used for encryption, “s” if the key can be
+ used for signatures, and “c” if the key can be used for
+ certifications.
+
+ ‘GPGME_ATTR_CAN_ENCRYPT’
+ This specifies if a sub key can be used for encryption. It is
+ representable as a number, and is ‘1’ if the sub key can be
+ used for encryption, and ‘0’ otherwise.
+
+ ‘GPGME_ATTR_CAN_SIGN’
+ This specifies if a sub key can be used to create data
+ signatures. It is representable as a number, and is ‘1’ if
+ the sub key can be used for signatures, and ‘0’ otherwise.
+
+ ‘GPGME_ATTR_CAN_CERTIFY’
+ This specifies if a sub key can be used to create key
+ certificates. It is representable as a number, and is ‘1’ if
+ the sub key can be used for certifications, and ‘0’ otherwise.
+
+ ‘GPGME_ATTR_SERIAL’
+ The X.509 issuer serial attribute of the key. It is
+ representable as a string.
+
+ ‘GPGME_ATTR_ISSUE’
+ The X.509 issuer name attribute of the key. It is
+ representable as a string.
+
+ ‘GPGME_ATTR_CHAINID’
+ The X.509 chain ID can be used to build the certification
+ chain. It is representable as a string.
+
+ -- Function: const char * gpgme_key_get_string_attr (gpgme_key_t KEY,
+ gpgme_attr_t WHAT, const void *RESERVED, int IDX)
+ The function ‘gpgme_key_get_string_attr’ returns the value of the
+ string-representable attribute WHAT of key KEY. If the attribute
+ is an attribute of a sub key or an user ID, IDX specifies the sub
+ key or user ID of which the attribute value is returned. The
+ argument RESERVED is reserved for later use and should be ‘NULL’.
+
+ The string returned is only valid as long as the key is valid.
+
+ The function returns ‘0’ if an attribute can’t be returned as a
+ string, KEY is not a valid pointer, IDX out of range, or RESERVED
+ not ‘NULL’.
+
+ -- Function: unsigned long gpgme_key_get_ulong_attr (gpgme_key_t KEY,
+ gpgme_attr_t WHAT, const void *RESERVED, int IDX)
+ The function ‘gpgme_key_get_ulong_attr’ returns the value of the
+ number-representable attribute WHAT of key KEY. If the attribute
+ is an attribute of a sub key or an user ID, IDX specifies the sub
+ key or user ID of which the attribute value is returned. The
+ argument RESERVED is reserved for later use and should be ‘NULL’.
+
+ The function returns ‘0’ if the attribute can’t be returned as a
+ number, KEY is not a valid pointer, IDX out of range, or RESERVED
+ not ‘NULL’.
+
+ The signatures on a key are only available if the key was retrieved
+via a listing operation with the ‘GPGME_KEYLIST_MODE_SIGS’ mode enabled,
+because it is expensive to retrieve all signatures of a key.
+
+ So, before using the below interfaces to retrieve the signatures on a
+key, you have to make sure that the key was listed with signatures
+enabled. One convenient, but blocking, way to do this is to use the
+function ‘gpgme_get_key’.
+
+ -- Data type: gpgme_attr_t
+ The ‘gpgme_attr_t’ type is used to specify a key signature
+ attribute. The following attributes are defined:
+
+ ‘GPGME_ATTR_KEYID’
+ This is the key ID of the key which was used for the
+ signature. It is representable as a string.
+
+ ‘GPGME_ATTR_ALGO’
+ This is the crypto algorithm used to create the signature. It
+ is representable as a string and as a number. The numbers
+ correspond to the ‘enum gcry_pk_algos’ values in the gcrypt
+ library.
+
+ ‘GPGME_ATTR_CREATED’
+ This is the timestamp at creation time of the signature. It
+ is representable as a number.
+
+ ‘GPGME_ATTR_EXPIRE’
+ This is the expiration time of the signature. It is
+ representable as a number.
+
+ ‘GPGME_ATTR_USERID’
+ This is the user ID associated with the signing key. The user
+ ID is representable as a number.
+
+ ‘GPGME_ATTR_NAME’
+ This is the name belonging to a user ID. It is representable
+ as a string.
+
+ ‘GPGME_ATTR_EMAIL’
+ This is the email address belonging to a user ID. It is
+ representable as a string.
+
+ ‘GPGME_ATTR_COMMENT’
+ This is the comment belonging to a user ID. It is
+ representable as a string.
+
+ ‘GPGME_ATTR_KEY_REVOKED’
+ This specifies if a key signature is a revocation signature.
+ It is representable as a number, and is ‘1’ if the key is
+ revoked, and ‘0’ otherwise.
+
+ ‘GPGME_ATTR_SIG_CLASS’
+ This specifies the signature class of a key signature. It is
+ representable as a number. The meaning is specific to the
+ crypto engine.
+
+ ‘GPGME_ATTR_SIG_CLASS’
+ This specifies the signature class of a key signature. It is
+ representable as a number. The meaning is specific to the
+ crypto engine.
+
+ ‘GPGME_ATTR_SIG_STATUS’
+ This is the same value as returned by ‘gpgme_get_sig_status’.
+
+ -- Function: const char * gpgme_key_sig_get_string_attr
+ (gpgme_key_t KEY, int UID_IDX, gpgme_attr_t WHAT,
+ const void *RESERVED, int IDX)
+ The function ‘gpgme_key_sig_get_string_attr’ returns the value of
+ the string-representable attribute WHAT of the signature IDX on the
+ user ID UID_IDX in the key KEY. The argument RESERVED is reserved
+ for later use and should be ‘NULL’.
+
+ The string returned is only valid as long as the key is valid.
+
+ The function returns ‘0’ if an attribute can’t be returned as a
+ string, KEY is not a valid pointer, UID_IDX or IDX out of range, or
+ RESERVED not ‘NULL’.
+
+ -- Function: unsigned long gpgme_key_sig_get_ulong_attr
+ (gpgme_key_t KEY, int UID_IDX, gpgme_attr_t WHAT,
+ const void *RESERVED, int IDX)
+ The function ‘gpgme_key_sig_get_ulong_attr’ returns the value of
+ the number-representable attribute WHAT of the signature IDX on the
+ user ID UID_IDX in the key KEY. The argument RESERVED is reserved
+ for later use and should be ‘NULL’.
+
+ The function returns ‘0’ if an attribute can’t be returned as a
+ string, KEY is not a valid pointer, UID_IDX or IDX out of range, or
+ RESERVED not ‘NULL’.
+
+ -- Data type: enum gpgme_sig_stat_t
+ The ‘gpgme_sig_stat_t’ type holds the result of a signature check,
+ or the combined result of all signatures. The following results
+ are possible:
+
+ ‘GPGME_SIG_STAT_NONE’
+ This status should not occur in normal operation.
+
+ ‘GPGME_SIG_STAT_GOOD’
+ This status indicates that the signature is valid. For the
+ combined result this status means that all signatures are
+ valid.
+
+ ‘GPGME_SIG_STAT_GOOD_EXP’
+ This status indicates that the signature is valid but expired.
+ For the combined result this status means that all signatures
+ are valid and expired.
+
+ ‘GPGME_SIG_STAT_GOOD_EXPKEY’
+ This status indicates that the signature is valid but the key
+ used to verify the signature has expired. For the combined
+ result this status means that all signatures are valid and all
+ keys are expired.
+
+ ‘GPGME_SIG_STAT_BAD’
+ This status indicates that the signature is invalid. For the
+ combined result this status means that all signatures are
+ invalid.
+
+ ‘GPGME_SIG_STAT_NOKEY’
+ This status indicates that the signature could not be verified
+ due to a missing key. For the combined result this status
+ means that all signatures could not be checked due to missing
+ keys.
+
+ ‘GPGME_SIG_STAT_NOSIG’
+ This status indicates that the signature data provided was not
+ a real signature.
+
+ ‘GPGME_SIG_STAT_ERROR’
+ This status indicates that there was some other error which
+ prevented the signature verification.
+
+ ‘GPGME_SIG_STAT_DIFF’
+ For the combined result this status means that at least two
+ signatures have a different status. You can get each key’s
+ status with ‘gpgme_get_sig_status’.
+
+ -- Function: const char * gpgme_get_sig_status (gpgme_ctx_t CTX,
+ int IDX, gpgme_sig_stat_t *R_STAT, time_t *R_CREATED)
+ The function ‘gpgme_get_sig_status’ is equivalent to:
+
+ gpgme_verify_result_t result;
+ gpgme_signature_t sig;
+
+ result = gpgme_op_verify_result (ctx);
+ sig = result->signatures;
+
+ while (sig && idx)
+ {
+ sig = sig->next;
+ idx--;
+ }
+ if (!sig || idx)
+ return NULL;
+
+ if (r_stat)
+ {
+ switch (gpg_err_code (sig->status))
+ {
+ case GPG_ERR_NO_ERROR:
+ *r_stat = GPGME_SIG_STAT_GOOD;
+ break;
+
+ case GPG_ERR_BAD_SIGNATURE:
+ *r_stat = GPGME_SIG_STAT_BAD;
+ break;
+
+ case GPG_ERR_NO_PUBKEY:
+ *r_stat = GPGME_SIG_STAT_NOKEY;
+ break;
+
+ case GPG_ERR_NO_DATA:
+ *r_stat = GPGME_SIG_STAT_NOSIG;
+ break;
+
+ case GPG_ERR_SIG_EXPIRED:
+ *r_stat = GPGME_SIG_STAT_GOOD_EXP;
+ break;
+
+ case GPG_ERR_KEY_EXPIRED:
+ *r_stat = GPGME_SIG_STAT_GOOD_EXPKEY;
+ break;
+
+ default:
+ *r_stat = GPGME_SIG_STAT_ERROR;
+ break;
+ }
+ }
+ if (r_created)
+ *r_created = sig->timestamp;
+ return sig->fpr;
+
+ -- Function: const char * gpgme_get_sig_string_attr (gpgme_ctx_t CTX,
+ int IDX, gpgme_attr_t WHAT, int WHATIDX)
+ The function ‘gpgme_get_sig_string_attr’ is equivalent to:
+
+ gpgme_verify_result_t result;
+ gpgme_signature_t sig;
+
+ result = gpgme_op_verify_result (ctx);
+ sig = result->signatures;
+
+ while (sig && idx)
+ {
+ sig = sig->next;
+ idx--;
+ }
+ if (!sig || idx)
+ return NULL;
+
+ switch (what)
+ {
+ case GPGME_ATTR_FPR:
+ return sig->fpr;
+
+ case GPGME_ATTR_ERRTOK:
+ if (whatidx == 1)
+ return sig->wrong_key_usage ? "Wrong_Key_Usage" : "";
+ else
+ return "";
+ default:
+ break;
+ }
+
+ return NULL;
+
+ -- Function: const char * gpgme_get_sig_ulong_attr (gpgme_ctx_t CTX,
+ int IDX, gpgme_attr_t WHAT, int WHATIDX)
+ The function ‘gpgme_get_sig_ulong_attr’ is equivalent to:
+
+ gpgme_verify_result_t result;
+ gpgme_signature_t sig;
+
+ result = gpgme_op_verify_result (ctx);
+ sig = result->signatures;
+
+ while (sig && idx)
+ {
+ sig = sig->next;
+ idx--;
+ }
+ if (!sig || idx)
+ return 0;
+
+ switch (what)
+ {
+ case GPGME_ATTR_CREATED:
+ return sig->timestamp;
+
+ case GPGME_ATTR_EXPIRE:
+ return sig->exp_timestamp;
+
+ case GPGME_ATTR_VALIDITY:
+ return (unsigned long) sig->validity;
+
+ case GPGME_ATTR_SIG_STATUS:
+ switch (sig->status)
+ {
+ case GPG_ERR_NO_ERROR:
+ return GPGME_SIG_STAT_GOOD;
+
+ case GPG_ERR_BAD_SIGNATURE:
+ return GPGME_SIG_STAT_BAD;
+
+ case GPG_ERR_NO_PUBKEY:
+ return GPGME_SIG_STAT_NOKEY;
+
+ case GPG_ERR_NO_DATA:
+ return GPGME_SIG_STAT_NOSIG;
+
+ case GPG_ERR_SIG_EXPIRED:
+ return GPGME_SIG_STAT_GOOD_EXP;
+
+ case GPG_ERR_KEY_EXPIRED:
+ return GPGME_SIG_STAT_GOOD_EXPKEY;
+
+ default:
+ return GPGME_SIG_STAT_ERROR;
+ }
+
+ case GPGME_ATTR_SIG_SUMMARY:
+ return sig->summary;
+
+ default:
+ break;
+ }
+ return 0;
+
+ -- Function: const char * gpgme_get_sig_key (gpgme_ctx_t CTX, int IDX,
+ gpgme_key_t *R_KEY)
+ The function ‘gpgme_get_sig_key’ is equivalent to:
+
+ gpgme_verify_result_t result;
+ gpgme_signature_t sig;
+
+ result = gpgme_op_verify_result (ctx);
+ sig = result->signatures;
+
+ while (sig && idx)
+ {
+ sig = sig->next;
+ idx--;
+ }
+ if (!sig || idx)
+ return gpg_error (GPG_ERR_EOF);
+
+ return gpgme_get_key (ctx, sig->fpr, r_key, 0);
+
+\1f
File: gpgme.info, Node: Library Copying, Next: Copying, Prev: Deprecated Functions, Up: Top
GNU Lesser General Public License
License permits more lax criteria for linking other code with the
library.
- We call this license the "Lesser" General Public License because it
+ We call this license the “Lesser” General Public License because it
does _Less_ to protect the user’s freedom than the ordinary General
Public License. It also provides other free software developers Less of
an advantage over competing non-free programs. These disadvantages are
Version 3, 29 June 2007
- Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Copyright © 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or
school, if any, to sign a “copyright disclaimer” for the program, if
necessary. For more information on this, and how to apply and follow
-the GNU GPL, see <http://www.gnu.org/licenses/>.
+the GNU GPL, see <https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your
program into proprietary programs. If your program is a subroutine
library, you may consider it more useful to permit linking proprietary
applications with the library. If this is what you want to do, use the
GNU Lesser General Public License instead of this License. But first,
-please read <http://www.gnu.org/philosophy/why-not-lgpl.html>.
+please read <https://www.gnu.org/philosophy/why-not-lgpl.html>.
\1f
File: gpgme.info, Node: Concept Index, Next: Function and Data Index, Prev: Copying, Up: Top
* ASSUAN: Assuan. (line 6)
* attributes, of a key: Information About Keys.
(line 6)
+* auditlog: Additional Logs. (line 6)
+* auditlog, of the engine: Additional Logs. (line 6)
* autoconf: Using Automake. (line 6)
* automake: Using Automake. (line 6)
* backend: Protocols and Engines. (line 6)
* context, pinentry mode: Pinentry Mode. (line 6)
* context, result of operation: Result Management. (line 6)
* context, selecting protocol: Protocol Selection. (line 6)
+* context, sender: Setting the Sender. (line 6)
* context, text mode: Text Mode. (line 6)
* crypto backend: Protocols and Engines. (line 6)
* crypto engine: Protocols and Engines. (line 6)
* error values, printing of: Error Strings. (line 6)
* event loop, external: Using External Event Loops.
(line 6)
+* flags, of a context: Context Flags. (line 6)
+* From:: Setting the Sender. (line 6)
* GDK, using GPGME with: I/O Callback Example GDK.
(line 6)
* GnuPG: OpenPGP. (line 6)
* locale, default: Locale. (line 6)
* locale, of a context: Locale. (line 6)
* message digest algorithms: Hash Algorithms. (line 6)
-* multi-threading: Multi Threading. (line 6)
+* multi-threading: Multi-Threading. (line 6)
* notation data: Verify. (line 6)
* notation data <1>: Signature Notation Data.
(line 6)
* run control: Run Control. (line 6)
* S/MIME: Cryptographic Message Syntax.
(line 6)
+* sender: Setting the Sender. (line 6)
* sign: Sign. (line 6)
* signal handling: Signal Handling. (line 6)
* signals: Signal Handling. (line 6)
* status message callback: Status Message Callback.
(line 6)
* text mode: Text Mode. (line 6)
-* thread-safeness: Multi Threading. (line 6)
-* trust item: Trust Item Management. (line 6)
-* trust item list: Listing Trust Items. (line 6)
-* trust item, manipulation: Manipulating Trust Items.
- (line 6)
+* thread-safeness: Multi-Threading. (line 6)
* type of data: Data Buffer Convenience.
(line 6)
* UI server: UI Server Protocol. (line 6)
* ENCRYPT_SIGN_FILES: UI Server Sign/Encrypt Files.
(line 11)
* enum gpgme_data_encoding_t: Data Buffer Meta-Data.
- (line 27)
+ (line 31)
* enum gpgme_data_type_t: Data Buffer Convenience.
(line 6)
* enum gpgme_event_io_t: I/O Callback Interface.
(line 58)
* enum gpgme_hash_algo_t: Hash Algorithms. (line 9)
-* enum gpgme_pinentry_mode_t: Pinentry Mode. (line 19)
+* enum gpgme_pinentry_mode_t: Pinentry Mode. (line 25)
* enum gpgme_protocol_t: Protocols and Engines.
(line 16)
* enum gpgme_pubkey_algo_t: Public Key Algorithms.
* enum gpgme_sig_mode_t: Creating a Signature.
(line 6)
* enum gpgme_sig_stat_t: Deprecated Functions.
- (line 427)
+ (line 387)
* enum gpgme_tofu_policy_t: Changing TOFU Data. (line 10)
* FILE: UI Server Set Input Files.
(line 9)
* GETINFO: Miscellaneous UI Server Commands.
(line 9)
-* gpgme_addrspec_from_uid: Decrypt and Verify. (line 47)
+* gpgme_addrspec_from_uid: Decrypt and Verify. (line 48)
* gpgme_attr_t: Deprecated Functions.
- (line 136)
+ (line 140)
* gpgme_attr_t <1>: Deprecated Functions.
- (line 313)
+ (line 301)
* gpgme_cancel: Cancellation. (line 16)
-* gpgme_cancel_async: Cancellation. (line 36)
+* gpgme_cancel_async: Cancellation. (line 38)
* gpgme_check_version: Library Version Check.
(line 6)
* gpgme_ctx_get_engine_info: Crypto Engine. (line 12)
-* gpgme_ctx_set_engine_info: Crypto Engine. (line 24)
+* gpgme_ctx_set_engine_info: Crypto Engine. (line 26)
* gpgme_ctx_t: Contexts. (line 11)
* gpgme_data_encoding_t: Data Buffer Meta-Data.
- (line 28)
+ (line 32)
* gpgme_data_get_encoding: Data Buffer Meta-Data.
- (line 69)
+ (line 81)
* gpgme_data_get_file_name: Data Buffer Meta-Data.
(line 6)
* gpgme_data_identify: Data Buffer Convenience.
- (line 36)
+ (line 46)
* gpgme_data_new: Memory Based Data Buffers.
(line 12)
* gpgme_data_new_from_cbs: Callback Based Data Buffers.
- (line 81)
+ (line 80)
+* gpgme_data_new_from_estream: File Based Data Buffers.
+ (line 49)
* gpgme_data_new_from_fd: File Based Data Buffers.
(line 10)
* gpgme_data_new_from_file: Memory Based Data Buffers.
* gpgme_data_new_from_stream: File Based Data Buffers.
(line 29)
* gpgme_data_new_with_read_cb: Deprecated Functions.
- (line 107)
+ (line 110)
* gpgme_data_read: Data Buffer I/O Operations.
(line 6)
* gpgme_data_read_cb_t: Callback Based Data Buffers.
* gpgme_data_release_and_get_mem: Destroying Data Buffers.
(line 11)
* gpgme_data_release_cb_t: Callback Based Data Buffers.
- (line 56)
+ (line 55)
* gpgme_data_rewind: Deprecated Functions.
- (line 130)
+ (line 134)
* gpgme_data_seek: Data Buffer I/O Operations.
- (line 25)
+ (line 26)
* gpgme_data_seek_cb_t: Callback Based Data Buffers.
- (line 47)
+ (line 46)
* gpgme_data_set_encoding: Data Buffer Meta-Data.
- (line 75)
+ (line 87)
* gpgme_data_set_file_name: Data Buffer Meta-Data.
- (line 16)
+ (line 18)
* gpgme_data_set_flag: Data Buffer Meta-Data.
- (line 80)
+ (line 92)
* gpgme_data_t: Exchanging Data. (line 13)
* gpgme_data_type_t: Data Buffer Convenience.
(line 7)
* gpgme_data_write: Data Buffer I/O Operations.
(line 16)
* gpgme_data_write_cb_t: Callback Based Data Buffers.
- (line 30)
-* gpgme_decrypt_result_t: Decrypt. (line 54)
+ (line 29)
+* gpgme_decrypt_result_t: Decrypt. (line 101)
* gpgme_edit_cb_t: Deprecated Functions.
- (line 36)
+ (line 33)
* gpgme_encrypt_result_t: Encrypting a Plaintext.
- (line 93)
+ (line 241)
* gpgme_engine_check_version: Engine Version Check.
- (line 62)
+ (line 67)
* gpgme_engine_info_t: Engine Information. (line 6)
* gpgme_error: Error Values. (line 65)
-* gpgme_error_from_errno: Error Values. (line 88)
+* gpgme_error_from_errno: Error Values. (line 89)
* gpgme_error_t: Error Values. (line 24)
* gpgme_error_t (*gpgme_assuan_data_cb_t) (void *OPAQUE, const void *DATA, size_t DATALEN): Using the Assuan protocol.
(line 15)
* gpgme_error_t (*gpgme_assuan_inquire_cb_t) (void *OPAQUE, const char *NAME, const char *ARGS, gpgme_data_t *R_DATA): Using the Assuan protocol.
- (line 23)
+ (line 24)
* gpgme_error_t (*gpgme_assuan_status_cb_t) (void *OPAQUE, const char *STATUS, const char *ARGS): Using the Assuan protocol.
- (line 35)
+ (line 38)
* gpgme_error_t (*gpgme_edit_cb_t) (void *HANDLE, gpgme_status_code_t STATUS, const char *ARGS, int FD): Deprecated Functions.
- (line 33)
+ (line 31)
* gpgme_error_t (*gpgme_interact_cb_t) (void *HANDLE, const char *STATUS, const char *ARGS, int FD): Advanced Key Editing.
(line 6)
* gpgme_error_t (*gpgme_io_cb_t) (void *DATA, int FD): I/O Callback Interface.
* gpgme_error_t (*gpgme_status_cb_t)(void *HOOK, const char *KEYWORD, const char *ARGS): Status Message Callback.
(line 6)
* gpgme_err_code: Error Values. (line 42)
-* gpgme_err_code_from_errno: Error Values. (line 97)
+* gpgme_err_code_from_errno: Error Values. (line 98)
* gpgme_err_code_t: Error Values. (line 6)
-* gpgme_err_code_to_errno: Error Values. (line 102)
+* gpgme_err_code_to_errno: Error Values. (line 103)
* gpgme_err_make: Error Values. (line 57)
-* gpgme_err_make_from_errno: Error Values. (line 82)
+* gpgme_err_make_from_errno: Error Values. (line 83)
* gpgme_err_source: Error Values. (line 49)
* gpgme_err_source_t: Error Values. (line 13)
* gpgme_event_io_t: I/O Callback Interface.
(line 7)
* gpgme_free: Destroying Data Buffers.
(line 25)
-* gpgme_genkey_result_t: Generating Keys. (line 295)
+* gpgme_genkey_result_t: Generating Keys. (line 381)
* gpgme_get_armor: ASCII Armor. (line 13)
+* gpgme_get_ctx_flag: Context Flags. (line 135)
* gpgme_get_dirinfo: Engine Version Check.
(line 6)
* gpgme_get_engine_info: Engine Information. (line 46)
* gpgme_get_include_certs: Included Certificates.
- (line 34)
+ (line 37)
* gpgme_get_io_cbs: Registering I/O Callbacks.
(line 44)
-* gpgme_get_key: Listing Keys. (line 147)
-* gpgme_get_keylist_mode: Key Listing Mode. (line 73)
-* gpgme_get_offline: Offline Mode. (line 23)
-* gpgme_get_passphrase_cb: Passphrase Callback. (line 59)
-* gpgme_get_pinentry_mode: Pinentry Mode. (line 14)
+* gpgme_get_key: Listing Keys. (line 178)
+* gpgme_get_keylist_mode: Key Listing Mode. (line 103)
+* gpgme_get_offline: Offline Mode. (line 31)
+* gpgme_get_passphrase_cb: Passphrase Callback. (line 63)
+* gpgme_get_pinentry_mode: Pinentry Mode. (line 18)
* gpgme_get_progress_cb: Progress Meter Callback.
(line 31)
* gpgme_get_protocol: Protocol Selection. (line 21)
* gpgme_get_protocol_name: Protocols and Engines.
- (line 51)
+ (line 58)
+* gpgme_get_sender: Setting the Sender. (line 29)
* gpgme_get_sig_key: Deprecated Functions.
- (line 626)
+ (line 587)
* gpgme_get_sig_status: Deprecated Functions.
- (line 475)
+ (line 435)
* gpgme_get_sig_string_attr: Deprecated Functions.
- (line 530)
+ (line 491)
* gpgme_get_sig_ulong_attr: Deprecated Functions.
- (line 564)
+ (line 525)
* gpgme_get_status_cb: Status Message Callback.
- (line 29)
+ (line 31)
* gpgme_get_textmode: Text Mode. (line 20)
-* gpgme_hash_algo_name: Hash Algorithms. (line 28)
+* gpgme_hash_algo_name: Hash Algorithms. (line 30)
* gpgme_hash_algo_t: Hash Algorithms. (line 10)
-* gpgme_import_result_t: Importing Keys. (line 110)
-* gpgme_import_status_t: Importing Keys. (line 72)
+* gpgme_import_result_t: Importing Keys. (line 118)
+* gpgme_import_status_t: Importing Keys. (line 80)
* gpgme_interact_cb_t: Advanced Key Editing.
- (line 9)
+ (line 11)
* gpgme_invalid_key_t: Crypto Operations. (line 10)
* gpgme_io_cb_t: I/O Callback Interface.
(line 7)
-* gpgme_keylist_result_t: Listing Keys. (line 124)
+* gpgme_keylist_result_t: Listing Keys. (line 155)
* gpgme_key_get_string_attr: Deprecated Functions.
- (line 278)
+ (line 266)
* gpgme_key_get_ulong_attr: Deprecated Functions.
- (line 292)
+ (line 280)
* gpgme_key_ref: Manipulating Keys. (line 6)
* gpgme_key_release: Deprecated Functions.
(line 14)
* gpgme_key_sig_get_string_attr: Deprecated Functions.
- (line 369)
+ (line 357)
* gpgme_key_sig_get_ulong_attr: Deprecated Functions.
- (line 383)
-* gpgme_key_sig_t: Key objects. (line 226)
+ (line 373)
+* gpgme_key_sig_t: Key objects. (line 346)
* gpgme_key_t: Key objects. (line 10)
* gpgme_key_unref: Manipulating Keys. (line 10)
* gpgme_new: Creating Contexts. (line 6)
* gpgme_new_signature_t: Creating a Signature.
(line 57)
* gpgme_off_t: Exchanging Data. (line 24)
-* gpgme_op_adduid: Generating Keys. (line 161)
-* gpgme_op_adduid_start: Generating Keys. (line 185)
+* gpgme_op_adduid: Generating Keys. (line 189)
+* gpgme_op_adduid_start: Generating Keys. (line 215)
* gpgme_op_assuan_transact_ext: Using the Assuan protocol.
- (line 56)
+ (line 64)
* gpgme_op_assuan_transact_start: Using the Assuan protocol.
- (line 43)
+ (line 47)
* gpgme_op_card_edit: Deprecated Functions.
- (line 82)
+ (line 85)
* gpgme_op_card_edit_start: Deprecated Functions.
- (line 92)
+ (line 95)
* gpgme_op_createkey: Generating Keys. (line 14)
-* gpgme_op_createkey_start: Generating Keys. (line 99)
-* gpgme_op_createsubkey: Generating Keys. (line 109)
-* gpgme_op_createsubkey_start: Generating Keys. (line 151)
+* gpgme_op_createkey_start: Generating Keys. (line 119)
+* gpgme_op_createsubkey: Generating Keys. (line 132)
+* gpgme_op_createsubkey_start: Generating Keys. (line 176)
* gpgme_op_decrypt: Decrypt. (line 6)
-* gpgme_op_decrypt_result: Decrypt. (line 76)
+* gpgme_op_decrypt_ext: Decrypt. (line 30)
+* gpgme_op_decrypt_ext_start: Decrypt. (line 60)
+* gpgme_op_decrypt_result: Decrypt. (line 164)
* gpgme_op_decrypt_start: Decrypt. (line 20)
* gpgme_op_decrypt_verify: Decrypt and Verify. (line 6)
-* gpgme_op_decrypt_verify <1>: Decrypt and Verify. (line 30)
-* gpgme_op_delete: Deleting Keys. (line 6)
-* gpgme_op_delete_start: Deleting Keys. (line 20)
+* gpgme_op_decrypt_verify_start: Decrypt and Verify. (line 30)
+* gpgme_op_delete: Deleting Keys. (line 47)
+* gpgme_op_delete_ext: Deleting Keys. (line 6)
+* gpgme_op_delete_ext_start: Deleting Keys. (line 33)
+* gpgme_op_delete_start: Deleting Keys. (line 52)
* gpgme_op_edit: Deprecated Functions.
- (line 47)
+ (line 44)
* gpgme_op_edit_start: Deprecated Functions.
(line 68)
* gpgme_op_encrypt: Encrypting a Plaintext.
(line 6)
+* gpgme_op_encrypt_ext: Encrypting a Plaintext.
+ (line 131)
+* gpgme_op_encrypt_ext_start: Encrypting a Plaintext.
+ (line 224)
* gpgme_op_encrypt_result: Encrypting a Plaintext.
- (line 104)
+ (line 252)
* gpgme_op_encrypt_sign: Encrypting a Plaintext.
- (line 115)
+ (line 263)
+* gpgme_op_encrypt_sign_ext: Encrypting a Plaintext.
+ (line 288)
+* gpgme_op_encrypt_sign_ext_start: Encrypting a Plaintext.
+ (line 304)
* gpgme_op_encrypt_sign_start: Encrypting a Plaintext.
- (line 125)
+ (line 274)
* gpgme_op_encrypt_start: Encrypting a Plaintext.
- (line 76)
-* gpgme_op_export: Exporting Keys. (line 38)
-* gpgme_op_export_ext: Exporting Keys. (line 69)
-* gpgme_op_export_ext_start: Exporting Keys. (line 90)
-* gpgme_op_export_keys: Exporting Keys. (line 101)
-* gpgme_op_export_keys_start: Exporting Keys. (line 124)
-* gpgme_op_export_start: Exporting Keys. (line 58)
-* gpgme_op_genkey: Generating Keys. (line 225)
-* gpgme_op_genkey_result: Generating Keys. (line 328)
-* gpgme_op_genkey_start: Generating Keys. (line 283)
+ (line 113)
+* gpgme_op_export: Exporting Keys. (line 59)
+* gpgme_op_export_ext: Exporting Keys. (line 92)
+* gpgme_op_export_ext_start: Exporting Keys. (line 114)
+* gpgme_op_export_keys: Exporting Keys. (line 126)
+* gpgme_op_export_keys_start: Exporting Keys. (line 153)
+* gpgme_op_export_start: Exporting Keys. (line 80)
+* gpgme_op_genkey: Generating Keys. (line 304)
+* gpgme_op_genkey_result: Generating Keys. (line 418)
+* gpgme_op_genkey_start: Generating Keys. (line 369)
+* gpgme_op_getauditlog: Additional Logs. (line 9)
+* gpgme_op_getauditlog_start: Additional Logs. (line 54)
* gpgme_op_import: Importing Keys. (line 9)
* gpgme_op_import_ext: Deprecated Functions.
- (line 22)
+ (line 18)
* gpgme_op_import_keys: Importing Keys. (line 35)
-* gpgme_op_import_keys_start: Importing Keys. (line 59)
-* gpgme_op_import_result: Importing Keys. (line 160)
+* gpgme_op_import_keys_start: Importing Keys. (line 65)
+* gpgme_op_import_result: Importing Keys. (line 174)
* gpgme_op_import_start: Importing Keys. (line 24)
* gpgme_op_interact: Advanced Key Editing.
- (line 21)
+ (line 23)
* gpgme_op_interact_start: Advanced Key Editing.
- (line 46)
-* gpgme_op_keylist_end: Listing Keys. (line 81)
-* gpgme_op_keylist_ext_start: Listing Keys. (line 33)
-* gpgme_op_keylist_next: Listing Keys. (line 65)
-* gpgme_op_keylist_result: Listing Keys. (line 135)
+ (line 53)
+* gpgme_op_keylist_end: Listing Keys. (line 111)
+* gpgme_op_keylist_ext_start: Listing Keys. (line 34)
+* gpgme_op_keylist_from_data_start: Listing Keys. (line 67)
+* gpgme_op_keylist_next: Listing Keys. (line 94)
+* gpgme_op_keylist_result: Listing Keys. (line 166)
* gpgme_op_keylist_start: Listing Keys. (line 6)
* gpgme_op_keysign: Signing Keys. (line 12)
-* gpgme_op_keysign_start: Signing Keys. (line 68)
+* gpgme_op_keysign_start: Signing Keys. (line 73)
* gpgme_op_passwd: Changing Passphrases.
(line 6)
* gpgme_op_passwd_start: Changing Passphrases.
- (line 19)
-* gpgme_op_revuid: Generating Keys. (line 192)
-* gpgme_op_revuid_start: Generating Keys. (line 218)
+ (line 21)
+* gpgme_op_query_swdb: Checking for updates.
+ (line 68)
+* gpgme_op_query_swdb_result: Checking for updates.
+ (line 80)
+* gpgme_op_revuid: Generating Keys. (line 224)
+* gpgme_op_revuid_start: Generating Keys. (line 252)
+* gpgme_op_set_uid_flag_start: Generating Keys. (line 293)
+* gpgme_op_set_ui_flag: Generating Keys. (line 261)
* gpgme_op_sign: Creating a Signature.
(line 21)
* gpgme_op_sign_result: Creating a Signature.
* gpgme_op_spawn: Running other Programs.
(line 13)
* gpgme_op_spawn_start: Running other Programs.
- (line 38)
-* gpgme_op_tofu_policy: Changing TOFU Data. (line 27)
-* gpgme_op_tofu_policy_start: Changing TOFU Data. (line 39)
-* gpgme_op_trustlist_end: Listing Trust Items. (line 44)
-* gpgme_op_trustlist_next: Listing Trust Items. (line 27)
-* gpgme_op_trustlist_start: Listing Trust Items. (line 6)
+ (line 45)
+* gpgme_op_tofu_policy: Changing TOFU Data. (line 29)
+* gpgme_op_tofu_policy_start: Changing TOFU Data. (line 43)
* gpgme_op_verify: Verify. (line 6)
-* gpgme_op_verify_result: Verify. (line 262)
+* gpgme_op_verify_result: Verify. (line 298)
* gpgme_op_verify_start: Verify. (line 26)
* gpgme_passphrase_cb_t: Passphrase Callback. (line 10)
-* gpgme_pinentry_mode_t: Pinentry Mode. (line 20)
+* gpgme_pinentry_mode_t: Pinentry Mode. (line 26)
* gpgme_progress_cb_t: Progress Meter Callback.
(line 8)
* gpgme_protocol_t: Protocols and Engines.
(line 17)
* gpgme_protocol_t <1>: Engine Information. (line 7)
* gpgme_pubkey_algo_name: Public Key Algorithms.
- (line 50)
+ (line 58)
* gpgme_pubkey_algo_string: Public Key Algorithms.
- (line 59)
+ (line 68)
* gpgme_pubkey_algo_t: Public Key Algorithms.
(line 10)
-* gpgme_recipient_t: Decrypt. (line 30)
+* gpgme_query_swdb_result_t: Checking for updates.
+ (line 11)
+* gpgme_recipient_t: Decrypt. (line 75)
* gpgme_register_io_cb_t: I/O Callback Interface.
(line 23)
* gpgme_release: Destroying Contexts. (line 6)
-* gpgme_result_ref: Result Management. (line 14)
-* gpgme_result_unref: Result Management. (line 20)
+* gpgme_result_ref: Result Management. (line 15)
+* gpgme_result_unref: Result Management. (line 23)
* gpgme_set_armor: ASCII Armor. (line 6)
-* gpgme_set_ctx_flag: Status Message Callback.
- (line 37)
+* gpgme_set_ctx_flag: Context Flags. (line 6)
* gpgme_set_engine_info: Engine Configuration.
(line 11)
* gpgme_set_global_flag: Library Version Check.
- (line 42)
+ (line 44)
* gpgme_set_include_certs: Included Certificates.
(line 6)
* gpgme_set_io_cbs: Registering I/O Callbacks.
* gpgme_set_keylist_mode: Key Listing Mode. (line 6)
* gpgme_set_locale: Locale. (line 14)
* gpgme_set_offline: Offline Mode. (line 6)
-* gpgme_set_passphrase_cb: Passphrase Callback. (line 36)
+* gpgme_set_passphrase_cb: Passphrase Callback. (line 40)
* gpgme_set_pinentry_mode: Pinentry Mode. (line 6)
* gpgme_set_progress_cb: Progress Meter Callback.
(line 16)
* gpgme_set_protocol: Protocol Selection. (line 6)
+* gpgme_set_sender: Setting the Sender. (line 13)
* gpgme_set_status_cb: Status Message Callback.
(line 17)
* gpgme_set_textmode: Text Mode. (line 6)
-* gpgme_signature_t: Verify. (line 88)
+* gpgme_signature_t: Verify. (line 92)
* gpgme_signers_add: Selecting Signers. (line 18)
* gpgme_signers_clear: Selecting Signers. (line 11)
* gpgme_signers_count: Selecting Signers. (line 25)
-* gpgme_signers_enum: Selecting Signers. (line 29)
+* gpgme_signers_enum: Selecting Signers. (line 31)
* gpgme_sign_result_t: Creating a Signature.
(line 85)
* gpgme_sig_mode_t: Creating a Signature.
(line 7)
* gpgme_sig_notation_add: Signature Notation Data.
- (line 17)
+ (line 19)
* gpgme_sig_notation_clear: Signature Notation Data.
(line 10)
* gpgme_sig_notation_get: Signature Notation Data.
- (line 41)
+ (line 45)
* gpgme_sig_notation_t: Verify. (line 38)
* gpgme_sig_stat_t: Deprecated Functions.
- (line 428)
-* gpgme_ssize_t: Exchanging Data. (line 30)
+ (line 388)
+* gpgme_ssize_t: Exchanging Data. (line 32)
* gpgme_status_cb_t: Status Message Callback.
(line 8)
* gpgme_strerror: Error Strings. (line 6)
* gpgme_strerror_r: Error Strings. (line 15)
* gpgme_strsource: Error Strings. (line 26)
-* gpgme_subkey_t: Key objects. (line 94)
-* gpgme_tofu_policy_t: Changing TOFU Data. (line 11)
-* gpgme_trust_item_get_int_attr: Deprecated Functions.
- (line 413)
-* gpgme_trust_item_get_string_attr: Deprecated Functions.
- (line 399)
-* gpgme_trust_item_ref: Manipulating Trust Items.
- (line 6)
-* gpgme_trust_item_release: Deprecated Functions.
- (line 18)
-* gpgme_trust_item_t: Trust Item Management.
- (line 8)
-* gpgme_trust_item_unref: Manipulating Trust Items.
- (line 10)
-* gpgme_user_id_t: Key objects. (line 180)
+* gpgme_subkey_t: Key objects. (line 112)
+* gpgme_tofu_info_t: Key objects. (line 282)
+* gpgme_tofu_policy_t: Changing TOFU Data. (line 13)
+* gpgme_user_id_t: Key objects. (line 217)
* gpgme_validity_t: Information About Keys.
(line 9)
-* gpgme_verify_result_t: Verify. (line 247)
+* gpgme_verify_result_t: Verify. (line 276)
* gpgme_wait: Waiting For Completion.
(line 6)
* IMPORT_FILES: UI Server Import/Export Keys.
* MESSAGE: UI Server Verify. (line 10)
* MICALG: UI Server Sign. (line 43)
* off_t (*gpgme_data_seek_cb_t) (void *HANDLE, off_t OFFSET, int WHENCE): Callback Based Data Buffers.
- (line 44)
+ (line 43)
* OUTPUT: UI Server Encrypt. (line 36)
* OUTPUT <1>: UI Server Sign. (line 18)
* OUTPUT <2>: UI Server Decrypt. (line 19)
* START_KEYMANAGER: Miscellaneous UI Server Commands.
(line 31)
* struct gpgme_data_cbs: Callback Based Data Buffers.
- (line 60)
+ (line 59)
* struct gpgme_io_cbs: Registering I/O Callbacks.
(line 6)
* VERIFY: UI Server Verify. (line 31)
* VERIFY_FILES: UI Server Verify/Decrypt Files.
(line 10)
* void (*gpgme_data_release_cb_t) (void *HANDLE): Callback Based Data Buffers.
- (line 55)
+ (line 54)
* void (*gpgme_event_io_cb_t) (void *DATA, gpgme_event_io_t TYPE, void *TYPE_DATA): I/O Callback Interface.
- (line 89)
+ (line 83)
* void (*gpgme_progress_cb_t)(void *HOOK, const char *WHAT, int TYPE, int CURRENT, int TOTAL): Progress Meter Callback.
(line 6)
* void (*gpgme_remove_io_cb_t) (void *TAG): I/O Callback Interface.