Changeset View
Changeset View
Standalone View
Standalone View
src/engine-gpg.c
Show First 20 Lines • Show All 135 Lines • ▼ Show 20 Lines | struct | ||||
engine_command_handler_t fnc; | engine_command_handler_t fnc; | ||||
void *fnc_value; | void *fnc_value; | ||||
} cmd; | } cmd; | ||||
struct gpgme_io_cbs io_cbs; | struct gpgme_io_cbs io_cbs; | ||||
gpgme_pinentry_mode_t pinentry_mode; | gpgme_pinentry_mode_t pinentry_mode; | ||||
char request_origin[10]; | char request_origin[10]; | ||||
char *auto_key_locate; | char *auto_key_locate; | ||||
char *trust_model; | |||||
struct { | struct { | ||||
unsigned int no_symkey_cache : 1; | unsigned int no_symkey_cache : 1; | ||||
unsigned int offline : 1; | unsigned int offline : 1; | ||||
unsigned int ignore_mdc_error : 1; | unsigned int ignore_mdc_error : 1; | ||||
} flags; | } flags; | ||||
/* NULL or the data object fed to --override_session_key-fd. */ | /* NULL or the data object fed to --override_session_key-fd. */ | ||||
▲ Show 20 Lines • Show All 298 Lines • ▼ Show 20 Lines | if (gpg->status.buffer) | ||||
free (gpg->status.buffer); | free (gpg->status.buffer); | ||||
if (gpg->colon.buffer) | if (gpg->colon.buffer) | ||||
free (gpg->colon.buffer); | free (gpg->colon.buffer); | ||||
if (gpg->argv) | if (gpg->argv) | ||||
free_argv (gpg->argv); | free_argv (gpg->argv); | ||||
if (gpg->cmd.keyword) | if (gpg->cmd.keyword) | ||||
free (gpg->cmd.keyword); | free (gpg->cmd.keyword); | ||||
free (gpg->auto_key_locate); | free (gpg->auto_key_locate); | ||||
free (gpg->trust_model); | |||||
gpgme_data_release (gpg->override_session_key); | gpgme_data_release (gpg->override_session_key); | ||||
gpgme_data_release (gpg->diagnostics); | gpgme_data_release (gpg->diagnostics); | ||||
free (gpg); | free (gpg); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 198 Lines • ▼ Show 20 Lines | gpg_set_engine_flags (void *engine, const gpgme_ctx_t ctx) | ||||
if (ctx->auto_key_locate && have_gpg_version (gpg, "2.1.18")) | if (ctx->auto_key_locate && have_gpg_version (gpg, "2.1.18")) | ||||
{ | { | ||||
if (gpg->auto_key_locate) | if (gpg->auto_key_locate) | ||||
free (gpg->auto_key_locate); | free (gpg->auto_key_locate); | ||||
gpg->auto_key_locate = _gpgme_strconcat ("--auto-key-locate=", | gpg->auto_key_locate = _gpgme_strconcat ("--auto-key-locate=", | ||||
ctx->auto_key_locate, NULL); | ctx->auto_key_locate, NULL); | ||||
} | } | ||||
if (ctx->trust_model && strlen (ctx->trust_model)) | |||||
{ | |||||
if (gpg->trust_model) | |||||
free (gpg->trust_model); | |||||
gpg->trust_model = _gpgme_strconcat ("--trust-model=", | |||||
ctx->trust_model, NULL); | |||||
} | |||||
gpg->flags.no_symkey_cache = (ctx->no_symkey_cache | gpg->flags.no_symkey_cache = (ctx->no_symkey_cache | ||||
&& have_gpg_version (gpg, "2.2.7")); | && have_gpg_version (gpg, "2.2.7")); | ||||
gpg->flags.offline = (ctx->offline && have_gpg_version (gpg, "2.1.23")); | gpg->flags.offline = (ctx->offline && have_gpg_version (gpg, "2.1.23")); | ||||
gpg->flags.ignore_mdc_error = !!ctx->ignore_mdc_error; | gpg->flags.ignore_mdc_error = !!ctx->ignore_mdc_error; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 296 Lines • ▼ Show 20 Lines | if (gpg->auto_key_locate) | ||||
int saved_err = gpg_error_from_syserror (); | int saved_err = gpg_error_from_syserror (); | ||||
free (fd_data_map); | free (fd_data_map); | ||||
free_argv (argv); | free_argv (argv); | ||||
return saved_err; | return saved_err; | ||||
} | } | ||||
argc++; | argc++; | ||||
} | } | ||||
if (gpg->trust_model) | |||||
{ | |||||
argv[argc] = strdup (gpg->trust_model); | |||||
if (!argv[argc]) | |||||
{ | |||||
int saved_err = gpg_error_from_syserror (); | |||||
free (fd_data_map); | |||||
free_argv (argv); | |||||
return saved_err; | |||||
} | |||||
argc++; | |||||
} | |||||
if (gpg->flags.no_symkey_cache) | if (gpg->flags.no_symkey_cache) | ||||
{ | { | ||||
argv[argc] = strdup ("--no-symkey-cache"); | argv[argc] = strdup ("--no-symkey-cache"); | ||||
if (!argv[argc]) | if (!argv[argc]) | ||||
{ | { | ||||
int saved_err = gpg_error_from_syserror (); | int saved_err = gpg_error_from_syserror (); | ||||
free (fd_data_map); | free (fd_data_map); | ||||
free_argv (argv); | free_argv (argv); | ||||
▲ Show 20 Lines • Show All 2,397 Lines • Show Last 20 Lines |