Wrapper around calls to external PGP program. More...
#include "config.h"#include <fcntl.h>#include <stdbool.h>#include <stdio.h>#include <unistd.h>#include "mutt/lib.h"#include "address/lib.h"#include "config/lib.h"#include "core/lib.h"#include "gui/lib.h"#include "pgpinvoke.h"#include "lib.h"#include "expando/lib.h"#include "expando_command.h"#include "mutt_logging.h"#include "pgpkey.h"#include "protos.h"#include "pgp.h"
Include dependency graph for pgpinvoke.c:Go to the source code of this file.
Functions | |
| static void | mutt_pgp_command (struct Buffer *buf, struct PgpCommandContext *cctx, const struct Expando *exp) |
| Prepare a PGP Command. | |
| static pid_t | pgp_invoke (FILE **fp_pgp_in, FILE **fp_pgp_out, FILE **fp_pgp_err, int fd_pgp_in, int fd_pgp_out, int fd_pgp_err, bool need_passphrase, const char *fname, const char *sig_fname, const char *ids, const struct Expando *exp) |
| Run a PGP command. | |
| pid_t | pgp_invoke_decode (FILE **fp_pgp_in, FILE **fp_pgp_out, FILE **fp_pgp_err, int fd_pgp_in, int fd_pgp_out, int fd_pgp_err, const char *fname, bool need_passphrase) |
| Use PGP to decode a message. | |
| pid_t | pgp_invoke_verify (FILE **fp_pgp_in, FILE **fp_pgp_out, FILE **fp_pgp_err, int fd_pgp_in, int fd_pgp_out, int fd_pgp_err, const char *fname, const char *sig_fname) |
| Use PGP to verify a message. | |
| pid_t | pgp_invoke_decrypt (FILE **fp_pgp_in, FILE **fp_pgp_out, FILE **fp_pgp_err, int fd_pgp_in, int fd_pgp_out, int fd_pgp_err, const char *fname) |
| Use PGP to decrypt a file. | |
| pid_t | pgp_invoke_sign (FILE **fp_pgp_in, FILE **fp_pgp_out, FILE **fp_pgp_err, int fd_pgp_in, int fd_pgp_out, int fd_pgp_err, const char *fname) |
| Use PGP to sign a file. | |
| pid_t | pgp_invoke_encrypt (FILE **fp_pgp_in, FILE **fp_pgp_out, FILE **fp_pgp_err, int fd_pgp_in, int fd_pgp_out, int fd_pgp_err, const char *fname, const char *uids, bool sign) |
| Use PGP to encrypt a file. | |
| pid_t | pgp_invoke_traditional (FILE **fp_pgp_in, FILE **fp_pgp_out, FILE **fp_pgp_err, int fd_pgp_in, int fd_pgp_out, int fd_pgp_err, const char *fname, const char *uids, SecurityFlags flags) |
| Use PGP to create in inline-signed message. | |
| void | pgp_class_invoke_import (const char *fname) |
| Import a key from a message into the user's public key ring - Implements CryptModuleSpecs::pgp_invoke_import() -. | |
| void | pgp_class_invoke_getkeys (struct Address *addr) |
| Run a command to download a PGP key - Implements CryptModuleSpecs::pgp_invoke_getkeys() -. | |
| pid_t | pgp_invoke_export (FILE **fp_pgp_in, FILE **fp_pgp_out, FILE **fp_pgp_err, int fd_pgp_in, int fd_pgp_out, int fd_pgp_err, const char *uids) |
| Use PGP to export a key from the user's keyring. | |
| pid_t | pgp_invoke_verify_key (FILE **fp_pgp_in, FILE **fp_pgp_out, FILE **fp_pgp_err, int fd_pgp_in, int fd_pgp_out, int fd_pgp_err, const char *uids) |
| Use PGP to verify a key. | |
| pid_t | pgp_invoke_list_keys (FILE **fp_pgp_in, FILE **fp_pgp_out, FILE **fp_pgp_err, int fd_pgp_in, int fd_pgp_out, int fd_pgp_err, enum PgpRing keyring, struct ListHead *hints) |
| Find matching PGP Keys. | |
Wrapper around calls to external PGP program.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 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/.
Definition in file pgpinvoke.c.
|
static |
Prepare a PGP Command.
Definition at line 60 of file pgpinvoke.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Run a PGP command.
| [out] | fp_pgp_in | stdin for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_out | stdout for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_err | stderr for the command, or NULL (OPTIONAL) |
| [in] | fd_pgp_in | stdin for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_out | stdout for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_err | stderr for the command, or -1 (OPTIONAL) |
| [in] | need_passphrase | Is a passphrase needed? |
| [in] | fname | Filename to pass to the command |
| [in] | sig_fname | Signature filename to pass to the command |
| [in] | ids | List of IDs/fingerprints, space separated |
| [in] | exp | Expando format string |
| num | PID of the created process |
| -1 | Error creating pipes or forking |
fp_pgp_in has priority over fd_pgp_in. Likewise fp_pgp_out and fp_pgp_err. Definition at line 86 of file pgpinvoke.c.
Here is the call graph for this function:
Here is the caller graph for this function:| pid_t pgp_invoke_decode | ( | FILE ** | fp_pgp_in, |
| FILE ** | fp_pgp_out, | ||
| FILE ** | fp_pgp_err, | ||
| int | fd_pgp_in, | ||
| int | fd_pgp_out, | ||
| int | fd_pgp_err, | ||
| const char * | fname, | ||
| bool | need_passphrase ) |
Use PGP to decode a message.
| [out] | fp_pgp_in | stdin for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_out | stdout for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_err | stderr for the command, or NULL (OPTIONAL) |
| [in] | fd_pgp_in | stdin for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_out | stdout for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_err | stderr for the command, or -1 (OPTIONAL) |
| [in] | fname | Filename to pass to the command |
| [in] | need_passphrase | Is a passphrase needed? |
| num | PID of the created process |
| -1 | Error creating pipes or forking |
fp_pgp_in has priority over fd_pgp_in. Likewise fp_pgp_out and fp_pgp_err. Definition at line 132 of file pgpinvoke.c.
Here is the call graph for this function:
Here is the caller graph for this function:| pid_t pgp_invoke_verify | ( | FILE ** | fp_pgp_in, |
| FILE ** | fp_pgp_out, | ||
| FILE ** | fp_pgp_err, | ||
| int | fd_pgp_in, | ||
| int | fd_pgp_out, | ||
| int | fd_pgp_err, | ||
| const char * | fname, | ||
| const char * | sig_fname ) |
Use PGP to verify a message.
| [out] | fp_pgp_in | stdin for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_out | stdout for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_err | stderr for the command, or NULL (OPTIONAL) |
| [in] | fd_pgp_in | stdin for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_out | stdout for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_err | stderr for the command, or -1 (OPTIONAL) |
| [in] | fname | Filename to pass to the command |
| [in] | sig_fname | Signature filename to pass to the command |
| num | PID of the created process |
| -1 | Error creating pipes or forking |
fp_pgp_in has priority over fd_pgp_in. Likewise fp_pgp_out and fp_pgp_err. Definition at line 157 of file pgpinvoke.c.
Here is the call graph for this function:
Here is the caller graph for this function:| pid_t pgp_invoke_decrypt | ( | FILE ** | fp_pgp_in, |
| FILE ** | fp_pgp_out, | ||
| FILE ** | fp_pgp_err, | ||
| int | fd_pgp_in, | ||
| int | fd_pgp_out, | ||
| int | fd_pgp_err, | ||
| const char * | fname ) |
Use PGP to decrypt a file.
| [out] | fp_pgp_in | stdin for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_out | stdout for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_err | stderr for the command, or NULL (OPTIONAL) |
| [in] | fd_pgp_in | stdin for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_out | stdout for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_err | stderr for the command, or -1 (OPTIONAL) |
| [in] | fname | Filename to pass to the command |
| num | PID of the created process |
| -1 | Error creating pipes or forking |
fp_pgp_in has priority over fd_pgp_in. Likewise fp_pgp_out and fp_pgp_err. Definition at line 181 of file pgpinvoke.c.
Here is the call graph for this function:
Here is the caller graph for this function:| pid_t pgp_invoke_sign | ( | FILE ** | fp_pgp_in, |
| FILE ** | fp_pgp_out, | ||
| FILE ** | fp_pgp_err, | ||
| int | fd_pgp_in, | ||
| int | fd_pgp_out, | ||
| int | fd_pgp_err, | ||
| const char * | fname ) |
Use PGP to sign a file.
| [out] | fp_pgp_in | stdin for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_out | stdout for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_err | stderr for the command, or NULL (OPTIONAL) |
| [in] | fd_pgp_in | stdin for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_out | stdout for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_err | stderr for the command, or -1 (OPTIONAL) |
| [in] | fname | Filename to pass to the command |
| num | PID of the created process |
| -1 | Error creating pipes or forking |
fp_pgp_in has priority over fd_pgp_in. Likewise fp_pgp_out and fp_pgp_err. Definition at line 204 of file pgpinvoke.c.
Here is the call graph for this function:
Here is the caller graph for this function:| pid_t pgp_invoke_encrypt | ( | FILE ** | fp_pgp_in, |
| FILE ** | fp_pgp_out, | ||
| FILE ** | fp_pgp_err, | ||
| int | fd_pgp_in, | ||
| int | fd_pgp_out, | ||
| int | fd_pgp_err, | ||
| const char * | fname, | ||
| const char * | uids, | ||
| bool | sign ) |
Use PGP to encrypt a file.
| [out] | fp_pgp_in | stdin for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_out | stdout for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_err | stderr for the command, or NULL (OPTIONAL) |
| [in] | fd_pgp_in | stdin for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_out | stdout for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_err | stderr for the command, or -1 (OPTIONAL) |
| [in] | fname | Filename to pass to the command |
| [in] | uids | List of IDs/fingerprints, space separated |
| [in] | sign | If true, also sign the file |
| num | PID of the created process |
| -1 | Error creating pipes or forking |
fp_pgp_in has priority over fd_pgp_in. Likewise fp_pgp_out and fp_pgp_err. Definition at line 229 of file pgpinvoke.c.
Here is the call graph for this function:
Here is the caller graph for this function:| pid_t pgp_invoke_traditional | ( | FILE ** | fp_pgp_in, |
| FILE ** | fp_pgp_out, | ||
| FILE ** | fp_pgp_err, | ||
| int | fd_pgp_in, | ||
| int | fd_pgp_out, | ||
| int | fd_pgp_err, | ||
| const char * | fname, | ||
| const char * | uids, | ||
| SecurityFlags | flags ) |
Use PGP to create in inline-signed message.
| [out] | fp_pgp_in | stdin for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_out | stdout for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_err | stderr for the command, or NULL (OPTIONAL) |
| [in] | fd_pgp_in | stdin for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_out | stdout for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_err | stderr for the command, or -1 (OPTIONAL) |
| [in] | fname | Filename to pass to the command |
| [in] | uids | List of IDs/fingerprints, space separated |
| [in] | flags | Flags, see SecurityFlags |
| num | PID of the created process |
| -1 | Error creating pipes or forking |
fp_pgp_in has priority over fd_pgp_in. Likewise fp_pgp_out and fp_pgp_err. Definition at line 264 of file pgpinvoke.c.
Here is the call graph for this function:
Here is the caller graph for this function:| pid_t pgp_invoke_export | ( | FILE ** | fp_pgp_in, |
| FILE ** | fp_pgp_out, | ||
| FILE ** | fp_pgp_err, | ||
| int | fd_pgp_in, | ||
| int | fd_pgp_out, | ||
| int | fd_pgp_err, | ||
| const char * | uids ) |
Use PGP to export a key from the user's keyring.
| [out] | fp_pgp_in | stdin for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_out | stdout for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_err | stderr for the command, or NULL (OPTIONAL) |
| [in] | fd_pgp_in | stdin for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_out | stdout for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_err | stderr for the command, or -1 (OPTIONAL) |
| [in] | uids | List of IDs/fingerprints, space separated |
| num | PID of the created process |
| -1 | Error creating pipes or forking |
fp_pgp_in has priority over fd_pgp_in. Likewise fp_pgp_out and fp_pgp_err. Definition at line 374 of file pgpinvoke.c.
Here is the call graph for this function:
Here is the caller graph for this function:| pid_t pgp_invoke_verify_key | ( | FILE ** | fp_pgp_in, |
| FILE ** | fp_pgp_out, | ||
| FILE ** | fp_pgp_err, | ||
| int | fd_pgp_in, | ||
| int | fd_pgp_out, | ||
| int | fd_pgp_err, | ||
| const char * | uids ) |
Use PGP to verify a key.
| [out] | fp_pgp_in | stdin for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_out | stdout for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_err | stderr for the command, or NULL (OPTIONAL) |
| [in] | fd_pgp_in | stdin for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_out | stdout for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_err | stderr for the command, or -1 (OPTIONAL) |
| [in] | uids | List of IDs/fingerprints, space separated |
| num | PID of the created process |
| -1 | Error creating pipes or forking |
fp_pgp_in has priority over fd_pgp_in. Likewise fp_pgp_out and fp_pgp_err. Definition at line 397 of file pgpinvoke.c.
Here is the call graph for this function:
Here is the caller graph for this function:| pid_t pgp_invoke_list_keys | ( | FILE ** | fp_pgp_in, |
| FILE ** | fp_pgp_out, | ||
| FILE ** | fp_pgp_err, | ||
| int | fd_pgp_in, | ||
| int | fd_pgp_out, | ||
| int | fd_pgp_err, | ||
| enum PgpRing | keyring, | ||
| struct ListHead * | hints ) |
Find matching PGP Keys.
| [out] | fp_pgp_in | stdin for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_out | stdout for the command, or NULL (OPTIONAL) |
| [out] | fp_pgp_err | stderr for the command, or NULL (OPTIONAL) |
| [in] | fd_pgp_in | stdin for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_out | stdout for the command, or -1 (OPTIONAL) |
| [in] | fd_pgp_err | stderr for the command, or -1 (OPTIONAL) |
| [in] | keyring | Keyring type, e.g. PGP_SECRING |
| [in] | hints | Match keys to these strings |
| num | PID of the created process |
| -1 | Error creating pipes or forking |
fp_pgp_in has priority over fd_pgp_in. Likewise fp_pgp_out and fp_pgp_err. Definition at line 421 of file pgpinvoke.c.
Here is the call graph for this function:
Here is the caller graph for this function: