aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gpgme.texi
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/gpgme.texi76
1 files changed, 73 insertions, 3 deletions
diff --git a/doc/gpgme.texi b/doc/gpgme.texi
index e12fd738..027e1eff 100644
--- a/doc/gpgme.texi
+++ b/doc/gpgme.texi
@@ -113,7 +113,6 @@ Indices
* Concept Index:: Index of concepts and programs.
* Function and Data Index:: Index of functions, variables and data types.
-
@detailmenu
--- The Detailed Node Listing ---
@@ -170,6 +169,7 @@ Manipulating Data Buffers
* Data Buffer I/O Operations:: I/O operations on data buffers.
* Data Buffer Meta-Data:: Meta-data manipulation of data buffers.
+* Data Buffer Convenience:: Convenience function for data buffers.
Contexts
@@ -180,6 +180,7 @@ Contexts
* Key Management:: Managing keys with @acronym{GPGME}.
* Trust Item Management:: Managing trust items with @acronym{GPGME}.
* Crypto Operations:: Using a context for cryptography.
+* Miscellaneous:: Miscellaneous operations.
* Run Control:: Controlling how operations are run.
Context Attributes
@@ -204,6 +205,7 @@ Key Management
* Exporting Keys:: Retrieving key data from the key ring.
* Importing Keys:: Adding keys to the key ring.
* Deleting Keys:: Removing keys from the key ring.
+* Changing Passphrases:: Change the passphrase of a key.
* Advanced Key Editing:: Advanced key edit operation.
Trust Item Management
@@ -230,6 +232,10 @@ Encrypt
* Encrypting a Plaintext:: How to encrypt a plaintext.
+Miscellaneous
+
+* Running other Programs:: Running other Programs
+
Run Control
* Waiting For Completion:: Waiting until an operation is completed.
@@ -850,6 +856,9 @@ Under development. Please ask on @email{gnupg-devel@@gnupg.org} for help.
@item GPGME_PROTOCOL_UISERVER
Under development. Please ask on @email{gnupg-devel@@gnupg.org} for help.
+@item GPGME_PROTOCOL_SPAWN
+Special protocol for use with @code{gpgme_op_spawn}.
+
@item GPGME_PROTOCOL_UNKNOWN
Reserved for future extension. You may use this to indicate that the
used protocol is not known to the application. Currently,
@@ -1946,7 +1955,7 @@ be used to manipulate both.
@menu
* Data Buffer I/O Operations:: I/O operations on data buffers.
* Data Buffer Meta-Data:: Meta-data manipulation of data buffers.
-* Data Buffer Convenience:: Convenience fucntion for data buffers.
+* Data Buffer Convenience:: Convenience function for data buffers.
@end menu
@@ -2187,6 +2196,7 @@ cryptographic operations.
* Key Management:: Managing keys with @acronym{GPGME}.
* Trust Item Management:: Managing trust items with @acronym{GPGME}.
* Crypto Operations:: Using a context for cryptography.
+* Miscellaneous:: Miscellaneous operations
* Run Control:: Controlling how operations are run.
@end menu
@@ -2261,7 +2271,7 @@ started. In fact, these references are accessed through the
* Crypto Engine:: Configuring the crypto engine.
* ASCII Armor:: Requesting @acronym{ASCII} armored output.
* Text Mode:: Choosing canonical text mode.
-* Included Certificates:: Including a number of certificates.
+* Included Certificates:: Including a number of certificates.
* Key Listing Mode:: Selecting key listing mode.
* Passphrase Callback:: Getting the passphrase from the user.
* Progress Meter Callback:: Being informed about the progress.
@@ -5222,6 +5232,66 @@ pointer.
@end deftypefun
+@node Miscellaneous
+@section Miscellaneous operations
+
+Here are some support functions which are sometimes useful.
+
+@menu
+* Running other Programs:: Running other Programs
+@end menu
+
+
+@node Running other Programs
+@subsection Running other Programs
+
+GPGME features an internal subsystem to run the actual backend
+engines. Along with data abstraction object this subsystem can be
+used to run arbitrary simple programs which even need not be related
+to cryptographic features. It may for example be used to run tools
+which are part of the GnuPG system but are not directly accessible
+with the GPGME API.
+
+
+@deftypefun gpgme_error_t gpgme_op_spawn
+ (@w{gpgme_ctx_t @var{ctx}}, @w{const char *@var{file}}, @
+ @w{const char *@var{argv}[]}, @w{gpgme_data_t @var{datain}}, @
+ @w{gpgme_data_t @var{dataout}}, @w{gpgme_data_t @var{dataerr}}, @
+ @w{unsigned int @var{flags}})
+
+The function @code{gpgme_op_spawn} runs the program @var{file} with
+the arguments taken from the NULL terminated array @var{argv}. If no
+arguments are required @var{argv} may be given as @code{NULL} (in that
+case GPGME uses the basename of @var{file} for @code{argv[0]}). The
+file descriptors @code{stdin}, @code{stdout}, and @code{stderr} are
+connected to the data objects @var{datain}, @var{dataout}, and
+@var{dataerr}. If NULL is passed for one of these data objects the
+corresponding file descriptor is connected to @file{/dev/null}.
+
+The value in @var{flags} is a bitwise-or combination of one or
+multiple of the following bit values:
+
+@table @code
+@item GPGME_SPAWN_DETACHED
+Under Windows this flag inhibits the allocation of a new console for
+the program. This is useful for a GUI application which needs to call
+a command line helper tool.
+@item GPGME_SPAWN_ALLOW_SET_FG
+Under Windows this flag allows the called program to put itself into
+the foreground.
+@end table
+@end deftypefun
+
+@deftypefun gpgme_error_t gpgme_op_spawn_start
+ (@w{gpgme_ctx_t @var{ctx}}, @w{const char *@var{file}}, @
+ @w{const char *@var{argv}[]}, @w{gpgme_data_t @var{datain}}, @
+ @w{gpgme_data_t @var{dataout}}, @w{gpgme_data_t @var{dataerr}}, @
+ @w{unsigned int @var{flags}})
+
+This is the asynchronous variant of @code{gpgme_op_spawn}.
+@end deftypefun
+
+
@node Run Control
@section Run Control
@cindex run control