[seahorse/bye-gpgme-op-edit] gpgme: Remove gpgme_op_edit for gpgme_op_interact
- From: Niels De Graef <nielsdg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [seahorse/bye-gpgme-op-edit] gpgme: Remove gpgme_op_edit for gpgme_op_interact
- Date: Fri, 26 Feb 2021 17:48:42 +0000 (UTC)
commit 64bd8cfb35be7b7088f080565516df7c329690c8
Author: Niels De Graef <nielsdegraef gmail com>
Date: Fri Feb 26 18:46:59 2021 +0100
gpgme: Remove gpgme_op_edit for gpgme_op_interact
`gpgme_op_edit()` was deprecated quite some time ago in favor of
`gpgme_op_interact()`, so use that instead.
Use the opportunity of touching a whole lot of lines in that file to
reindent everything properly as well.
pgp/seahorse-gpgme-key-op.c | 2299 ++++++++++++++++++++++---------------------
1 file changed, 1174 insertions(+), 1125 deletions(-)
---
diff --git a/pgp/seahorse-gpgme-key-op.c b/pgp/seahorse-gpgme-key-op.c
index 8c75f018..0b9f8813 100644
--- a/pgp/seahorse-gpgme-key-op.c
+++ b/pgp/seahorse-gpgme-key-op.c
@@ -39,6 +39,7 @@
#include <string.h>
#include <unistd.h>
+/* Common values of the "args" arg */
#define PROMPT "keyedit.prompt"
#define QUIT "quit"
#define SAVE "keyedit.save.okay"
@@ -103,11 +104,11 @@ seahorse_gpgme_key_op_generate_async (SeahorseGpgmeKeyring *keyring,
const char *comment,
const char *passphrase,
SeahorseKeyEncType type,
- guint length,
+ unsigned int length,
GDateTime *expires,
GCancellable *cancellable,
GAsyncReadyCallback callback,
- gpointer user_data)
+ void *user_data)
{
const char* key_type;
g_autofree char *common = NULL, *start = NULL, *expires_date = NULL;
@@ -211,431 +212,450 @@ seahorse_gpgme_key_op_generate_finish (SeahorseGpgmeKeyring *keyring,
static gpgme_error_t
op_delete (SeahorseGpgmeKey *pkey, gboolean secret)
{
- SeahorseGpgmeKeyring *keyring;
- gpgme_error_t gerr;
- gpgme_key_t key;
- gpgme_ctx_t ctx;
+ SeahorseGpgmeKeyring *keyring;
+ gpgme_error_t gerr;
+ gpgme_key_t key;
+ gpgme_ctx_t ctx;
- keyring = SEAHORSE_GPGME_KEYRING (seahorse_object_get_place (SEAHORSE_OBJECT (pkey)));
- g_return_val_if_fail (SEAHORSE_IS_GPGME_KEYRING (keyring), GPG_E (GPG_ERR_INV_KEYRING));
+ keyring = SEAHORSE_GPGME_KEYRING (seahorse_object_get_place (SEAHORSE_OBJECT (pkey)));
+ g_return_val_if_fail (SEAHORSE_IS_GPGME_KEYRING (keyring), GPG_E (GPG_ERR_INV_KEYRING));
- g_object_ref (pkey);
+ g_object_ref (pkey);
- seahorse_util_wait_until ((key = seahorse_gpgme_key_get_public (pkey)) != NULL);
+ seahorse_util_wait_until ((key = seahorse_gpgme_key_get_public (pkey)) != NULL);
- ctx = seahorse_gpgme_keyring_new_context (&gerr);
- if (ctx == NULL)
- return gerr;
+ ctx = seahorse_gpgme_keyring_new_context (&gerr);
+ if (ctx == NULL)
+ return gerr;
- gerr = gpgme_op_delete (ctx, key, secret);
- if (GPG_IS_OK (gerr))
- seahorse_gpgme_keyring_remove_key (keyring, SEAHORSE_GPGME_KEY (pkey));
+ gerr = gpgme_op_delete (ctx, key, secret);
+ if (GPG_IS_OK (gerr))
+ seahorse_gpgme_keyring_remove_key (keyring, SEAHORSE_GPGME_KEY (pkey));
- gpgme_release (ctx);
- g_object_unref (pkey);
- return gerr;
+ gpgme_release (ctx);
+ g_object_unref (pkey);
+ return gerr;
}
gpgme_error_t
seahorse_gpgme_key_op_delete (SeahorseGpgmeKey *pkey)
{
- return op_delete (pkey, FALSE);
+ return op_delete (pkey, FALSE);
}
gpgme_error_t
seahorse_gpgme_key_op_delete_pair (SeahorseGpgmeKey *pkey)
{
- return op_delete (pkey, TRUE);
+ return op_delete (pkey, TRUE);
}
/* Main key edit setup, structure, and a good deal of method content borrowed from gpa */
/* Edit action function */
-typedef gpgme_error_t (*SeahorseEditAction) (guint state,
- gpointer data,
- gint fd);
+typedef gpgme_error_t (*SeahorseEditAction) (unsigned int state,
+ void *data,
+ int fd);
/* Edit transit function */
-typedef guint (*SeahorseEditTransit) (guint current_state,
- gpgme_status_code_t status,
- const gchar *args,
- gpointer data,
- gpgme_error_t *err);
+typedef unsigned int (*SeahorseEditTransit) (unsigned int current_state,
+ const char *status,
+ const char *args,
+ void *data,
+ gpgme_error_t *err);
/* Edit parameters */
typedef struct
{
- guint state;
- gpgme_error_t err;
- SeahorseEditAction action;
- SeahorseEditTransit transit;
- gpointer data;
-
+ unsigned int state;
+ gpgme_error_t err;
+ SeahorseEditAction action;
+ SeahorseEditTransit transit;
+ void *data;
} SeahorseEditParm;
/* Creates new edit parameters with defaults */
static SeahorseEditParm*
-seahorse_edit_parm_new (guint state, SeahorseEditAction action,
- SeahorseEditTransit transit, gpointer data)
-{
- SeahorseEditParm *parms;
-
- parms = g_new0 (SeahorseEditParm, 1);
- parms->state = state;
- parms->err = GPG_OK;
- parms->action = action;
- parms->transit = transit;
- parms->data = data;
-
- return parms;
+seahorse_edit_parm_new (unsigned int state,
+ SeahorseEditAction action,
+ SeahorseEditTransit transit,
+ void *data)
+{
+ SeahorseEditParm *parms;
+
+ parms = g_new0 (SeahorseEditParm, 1);
+ parms->state = state;
+ parms->err = GPG_OK;
+ parms->action = action;
+ parms->transit = transit;
+ parms->data = data;
+
+ return parms;
}
/* Edit callback for gpgme */
static gpgme_error_t
-seahorse_gpgme_key_op_edit (gpointer data, gpgme_status_code_t status,
- const gchar *args, int fd)
-{
- SeahorseEditParm *parms = (SeahorseEditParm*)data;
-
- /* Ignore these status lines, as they don't require any response */
- if (status == GPGME_STATUS_EOF || status == GPGME_STATUS_GOT_IT ||
- status == GPGME_STATUS_NEED_PASSPHRASE || status == GPGME_STATUS_GOOD_PASSPHRASE ||
- status == GPGME_STATUS_BAD_PASSPHRASE || status == GPGME_STATUS_USERID_HINT ||
- status == GPGME_STATUS_SIGEXPIRED || status == GPGME_STATUS_KEYEXPIRED ||
- status == GPGME_STATUS_PROGRESS || status == GPGME_STATUS_KEY_CREATED ||
- status == GPGME_STATUS_ALREADY_SIGNED || status == GPGME_STATUS_MISSING_PASSPHRASE ||
- status == GPGME_STATUS_KEY_CONSIDERED)
- return parms->err;
-
- g_debug ("[edit key] state: %d / status: %d / args: %s",
- parms->state, status, args);
-
- /* Choose the next state based on the current one and the input */
- parms->state = parms->transit (parms->state, status, args, parms->data, &parms->err);
-
- /* Choose the action based on the state */
- if (GPG_IS_OK (parms->err))
- parms->err = parms->action (parms->state, parms->data, fd);
-
- return parms->err;
+seahorse_gpgme_key_op_interact (void *data,
+ const char *status,
+ const char *args,
+ int fd)
+{
+ SeahorseEditParm *parms = (SeahorseEditParm *) data;
+ static const char *NO_INTERACTION_STATUSES[] = {
+ "EOF", "GOT_IT", "NEED_PASSPHRASE", "GOOD_PASSPHRASE", "BAD_PASSPHRASE",
+ "USERID_HINT", "SIGEXPIRED", "KEYEXPIRED", "PROGRESS", "KEY_CREATED",
+ "ALREADY_SIGNED", "MISSING_PASSPHRASE", "KEY_CONSIDERED",
+ NULL
+ };
+
+ g_return_val_if_fail (status, parms->err);
+
+ g_debug ("[edit key] state: %d / status: '%s' / args: '%s'",
+ parms->state, status, args);
+
+ /* An empty string represents EOF */
+ if (!status[0])
+ return parms->err;
+
+ /* Ignore these status lines, as they don't require any response */
+ if (g_strv_contains (NO_INTERACTION_STATUSES, status))
+ return parms->err;
+
+ /* Choose the next state based on the current one and the input */
+ parms->state = parms->transit (parms->state, status, args, parms->data, &parms->err);
+
+ /* Choose the action based on the state */
+ if (GPG_IS_OK (parms->err))
+ parms->err = parms->action (parms->state, parms->data, fd);
+
+ return parms->err;
}
/* Common edit operation */
static gpgme_error_t
-edit_gpgme_key (gpgme_ctx_t ctx,
- gpgme_key_t key,
+edit_gpgme_key (gpgme_ctx_t ctx,
+ gpgme_key_t key,
SeahorseEditParm *parms)
{
- gboolean own_context = FALSE;
- gpgme_data_t out;
- gpgme_error_t gerr;
+ gboolean own_context = FALSE;
+ gpgme_data_t out;
+ gpgme_error_t gerr;
- g_assert (key);
- g_assert (parms);
+ g_assert (key);
+ g_assert (parms);
- gpgme_key_ref (key);
+ gpgme_key_ref (key);
- if (ctx == NULL) {
- ctx = seahorse_gpgme_keyring_new_context (&gerr);
- if (ctx == NULL)
- return gerr;
- own_context = TRUE;
- }
+ if (ctx == NULL) {
+ ctx = seahorse_gpgme_keyring_new_context (&gerr);
+ if (ctx == NULL)
+ return gerr;
+ own_context = TRUE;
+ }
- out = seahorse_gpgme_data_new ();
+ out = seahorse_gpgme_data_new ();
- /* do edit callback, release data */
- gerr = gpgme_op_edit (ctx, key, seahorse_gpgme_key_op_edit, parms, out);
+ /* do edit callback, release data */
+ gerr = gpgme_op_interact (ctx, key, 0, seahorse_gpgme_key_op_interact, parms, out);
- if (gpgme_err_code (gerr) == GPG_ERR_BAD_PASSPHRASE) {
- seahorse_util_show_error(NULL, _("Wrong password"), _("This was the third time you entered a
wrong password. Please try again."));
- }
+ if (gpgme_err_code (gerr) == GPG_ERR_BAD_PASSPHRASE) {
+ seahorse_util_show_error(NULL, _("Wrong password"), _("This was the third time you entered a wrong
password. Please try again."));
+ }
- seahorse_gpgme_data_release (out);
- if (own_context)
- gpgme_release (ctx);
- gpgme_key_unref (key);
- return gerr;
+ seahorse_gpgme_data_release (out);
+ if (own_context)
+ gpgme_release (ctx);
+ gpgme_key_unref (key);
+ return gerr;
}
static gpgme_error_t
edit_refresh_gpgme_key (gpgme_ctx_t ctx, gpgme_key_t key, SeahorseEditParm *parms)
{
- gpgme_error_t gerr;
-
- gerr = edit_gpgme_key (ctx, key, parms);
- if (GPG_IS_OK (gerr))
- seahorse_gpgme_key_refresh_matching (key);
-
- return gerr;
+ gpgme_error_t gerr;
+
+ gerr = edit_gpgme_key (ctx, key, parms);
+ if (GPG_IS_OK (gerr))
+ seahorse_gpgme_key_refresh_matching (key);
+
+ return gerr;
}
static gpgme_error_t
edit_key (SeahorseGpgmeKey *pkey, SeahorseEditParm *parms)
{
- SeahorseGpgmeKeyring *keyring;
- gpgme_error_t gerr;
- gpgme_key_t key;
- gpgme_ctx_t ctx;
+ SeahorseGpgmeKeyring *keyring;
+ gpgme_error_t gerr;
+ gpgme_key_t key;
+ gpgme_ctx_t ctx;
- keyring = SEAHORSE_GPGME_KEYRING (seahorse_object_get_place (SEAHORSE_OBJECT (pkey)));
- g_return_val_if_fail (SEAHORSE_IS_GPGME_KEYRING (keyring), GPG_E (GPG_ERR_INV_KEYRING));
+ keyring = SEAHORSE_GPGME_KEYRING (seahorse_object_get_place (SEAHORSE_OBJECT (pkey)));
+ g_return_val_if_fail (SEAHORSE_IS_GPGME_KEYRING (keyring), GPG_E (GPG_ERR_INV_KEYRING));
- g_object_ref (pkey);
+ g_object_ref (pkey);
- seahorse_util_wait_until ((key = seahorse_gpgme_key_get_public (pkey)) != NULL);
+ seahorse_util_wait_until ((key = seahorse_gpgme_key_get_public (pkey)) != NULL);
- ctx = seahorse_gpgme_keyring_new_context (&gerr);
- if (ctx != NULL) {
- gerr = edit_refresh_gpgme_key (ctx, key, parms);
- gpgme_release (ctx);
- }
+ ctx = seahorse_gpgme_keyring_new_context (&gerr);
+ if (ctx != NULL) {
+ gerr = edit_refresh_gpgme_key (ctx, key, parms);
+ gpgme_release (ctx);
+ }
- g_object_unref (pkey);
- return gerr;
+ g_object_unref (pkey);
+ return gerr;
}
typedef struct
{
- guint index;
- gchar *command;
- gboolean expire;
- SeahorseSignCheck check;
+ unsigned int index;
+ char *command;
+ gboolean expire;
+ SeahorseSignCheck check;
} SignParm;
typedef enum
{
- SIGN_START,
- SIGN_UID,
- SIGN_COMMAND,
- SIGN_EXPIRE,
- SIGN_CONFIRM,
- SIGN_CHECK,
- SIGN_QUIT,
- SIGN_ERROR
+ SIGN_START,
+ SIGN_UID,
+ SIGN_COMMAND,
+ SIGN_EXPIRE,
+ SIGN_CONFIRM,
+ SIGN_CHECK,
+ SIGN_QUIT,
+ SIGN_ERROR
} SignState;
/* action helper for signing a key */
static gpgme_error_t
-sign_action (guint state, gpointer data, int fd)
+sign_action (unsigned int state,
+ void *data,
+ int fd)
{
- SignParm *parm = (SignParm*)data;
-
- switch (state) {
- /* select uid */
- case SIGN_UID:
+ SignParm *parm = (SignParm*)data;
+
+ switch (state) {
+ /* select uid */
+ case SIGN_UID:
PRINTF ((fd, "uid %d", parm->index));
- break;
- case SIGN_COMMAND:
+ break;
+ case SIGN_COMMAND:
PRINT ((fd, parm->command));
- break;
- /* if expires */
- case SIGN_EXPIRE:
+ break;
+ /* if expires */
+ case SIGN_EXPIRE:
PRINT ((fd, (parm->expire) ? YES : "N"));
- break;
- case SIGN_CONFIRM:
+ break;
+ case SIGN_CONFIRM:
PRINT ((fd, YES));
- break;
- case SIGN_CHECK:
+ break;
+ case SIGN_CHECK:
PRINTF ((fd, "%d", parm->check));
- break;
- case SIGN_QUIT:
+ break;
+ case SIGN_QUIT:
PRINT ((fd, QUIT));
- break;
- default:
- return GPG_E (GPG_ERR_GENERAL);
- }
-
+ break;
+ default:
+ return GPG_E (GPG_ERR_GENERAL);
+ }
+
PRINT ((fd, "\n"));
- return GPG_OK;
+ return GPG_OK;
}
/* transition helper for signing a key */
-static guint
-sign_transit (guint current_state, gpgme_status_code_t status,
- const gchar *args, gpointer data, gpgme_error_t *err)
-{
- guint next_state;
-
- switch (current_state) {
- /* start state, need to select uid */
- case SIGN_START:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = SIGN_UID;
- else {
+static unsigned int
+sign_transit (unsigned int current_state,
+ const char *status,
+ const char *args,
+ void *data,
+ gpgme_error_t *err)
+{
+ unsigned int next_state;
+
+ switch (current_state) {
+ /* start state, need to select uid */
+ case SIGN_START:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = SIGN_UID;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (SIGN_ERROR);
- }
- break;
- /* selected uid, go to command */
- case SIGN_UID:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = SIGN_COMMAND;
- else {
+ }
+ break;
+ /* selected uid, go to command */
+ case SIGN_UID:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = SIGN_COMMAND;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (SIGN_ERROR);
- }
- break;
- case SIGN_COMMAND:
- /* if doing all uids, confirm */
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, "keyedit.sign_all.okay"))
- next_state = SIGN_CONFIRM;
- else if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, "sign_uid.okay"))
- next_state = SIGN_CONFIRM;
- /* need to do expires */
- else if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, "sign_uid.expire"))
- next_state = SIGN_EXPIRE;
- /* need to do check */
- else if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, "sign_uid.class"))
- next_state = SIGN_CHECK;
+ }
+ break;
+ case SIGN_COMMAND:
+ /* if doing all uids, confirm */
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, "keyedit.sign_all.okay"))
+ next_state = SIGN_CONFIRM;
+ else if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, "sign_uid.okay"))
+ next_state = SIGN_CONFIRM;
+ /* need to do expires */
+ else if (g_str_equal (status, "GET_LINE") && g_str_equal (args, "sign_uid.expire"))
+ next_state = SIGN_EXPIRE;
+ /* need to do check */
+ else if (g_str_equal (status, "GET_LINE") && g_str_equal (args, "sign_uid.class"))
+ next_state = SIGN_CHECK;
/* if it's already signed then send back an error */
- else if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT)) {
+ else if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT)) {
next_state = SIGN_ERROR;
*err = GPG_E (GPG_ERR_EALREADY);
/* All other stuff is unexpected */
} else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (SIGN_ERROR);
- }
- break;
- /* did expire, go to check */
- case SIGN_EXPIRE:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, "sign_uid.class"))
- next_state = SIGN_CHECK;
- else {
+ }
+ break;
+ /* did expire, go to check */
+ case SIGN_EXPIRE:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, "sign_uid.class"))
+ next_state = SIGN_CHECK;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (SIGN_ERROR);
- }
- break;
- case SIGN_CONFIRM:
- /* need to do check */
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, "sign_uid.class"))
- next_state = SIGN_CHECK;
- else if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, "sign_uid.okay"))
- next_state = SIGN_CONFIRM;
- /* need to do expire */
- else if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, "sign_uid.expire"))
- next_state = SIGN_EXPIRE;
- /* quit */
- else if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = SIGN_QUIT;
- else {
+ }
+ break;
+ case SIGN_CONFIRM:
+ /* need to do check */
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, "sign_uid.class"))
+ next_state = SIGN_CHECK;
+ else if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, "sign_uid.okay"))
+ next_state = SIGN_CONFIRM;
+ /* need to do expire */
+ else if (g_str_equal (status, "GET_LINE") && g_str_equal (args, "sign_uid.expire"))
+ next_state = SIGN_EXPIRE;
+ /* quit */
+ else if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = SIGN_QUIT;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (SIGN_ERROR);
- }
- break;
- /* did check, go to confirm */
- case SIGN_CHECK:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, "sign_uid.okay"))
- next_state = SIGN_CONFIRM;
- else {
+ }
+ break;
+ /* did check, go to confirm */
+ case SIGN_CHECK:
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, "sign_uid.okay"))
+ next_state = SIGN_CONFIRM;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (SIGN_ERROR);
- }
- break;
- /* quit, go to confirm to save */
- case SIGN_QUIT:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, SAVE))
- next_state = SIGN_CONFIRM;
- else {
- *err = GPG_E (GPG_ERR_GENERAL);
+ }
+ break;
+ /* quit, go to confirm to save */
+ case SIGN_QUIT:
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, SAVE))
+ next_state = SIGN_CONFIRM;
+ else {
+ *err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (SIGN_ERROR);
- }
- break;
- /* error, go to quit */
- case SIGN_ERROR:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = SIGN_QUIT;
- else
- next_state = SIGN_ERROR;
- break;
-
- default:
+ }
+ break;
+ /* error, go to quit */
+ case SIGN_ERROR:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = SIGN_QUIT;
+ else
+ next_state = SIGN_ERROR;
+ break;
+
+ default:
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (SIGN_ERROR);
- break;
- }
-
- return next_state;
+ break;
+ }
+
+ return next_state;
}
static gpgme_error_t
-sign_process (gpgme_key_t signed_key, gpgme_key_t signing_key, guint sign_index,
- SeahorseSignCheck check, SeahorseSignOptions options)
-{
- SeahorseEditParm *parms;
- SignParm sign_parm;
- gpgme_ctx_t ctx;
- gpgme_error_t gerr;
-
- ctx = seahorse_gpgme_keyring_new_context (&gerr);
- if (ctx == NULL)
- return gerr;
-
- gerr = gpgme_signers_add (ctx, signing_key);
- if (!GPG_IS_OK (gerr))
- return gerr;
-
- sign_parm.index = sign_index;
- sign_parm.expire = ((options & SIGN_EXPIRES) != 0);
- sign_parm.check = check;
- sign_parm.command = g_strdup_printf ("%s%ssign",
- (options & SIGN_NO_REVOKE) ? "nr" : "",
- (options & SIGN_LOCAL) ? "l" : "");
-
- parms = seahorse_edit_parm_new (SIGN_START, sign_action, sign_transit, &sign_parm);
-
- gerr = edit_refresh_gpgme_key (ctx, signed_key, parms);
- g_free (sign_parm.command);
- g_free (parms);
-
- gpgme_release (ctx);
-
- return gerr;
+sign_process (gpgme_key_t signed_key,
+ gpgme_key_t signing_key,
+ unsigned int sign_index,
+ SeahorseSignCheck check,
+ SeahorseSignOptions options)
+{
+ SeahorseEditParm *parms;
+ SignParm sign_parm;
+ gpgme_ctx_t ctx;
+ gpgme_error_t gerr;
+
+ ctx = seahorse_gpgme_keyring_new_context (&gerr);
+ if (ctx == NULL)
+ return gerr;
+
+ gerr = gpgme_signers_add (ctx, signing_key);
+ if (!GPG_IS_OK (gerr))
+ return gerr;
+
+ sign_parm.index = sign_index;
+ sign_parm.expire = ((options & SIGN_EXPIRES) != 0);
+ sign_parm.check = check;
+ sign_parm.command = g_strdup_printf ("%s%ssign",
+ (options & SIGN_NO_REVOKE) ? "nr" : "",
+ (options & SIGN_LOCAL) ? "l" : "");
+
+ parms = seahorse_edit_parm_new (SIGN_START, sign_action, sign_transit, &sign_parm);
+
+ gerr = edit_refresh_gpgme_key (ctx, signed_key, parms);
+ g_free (sign_parm.command);
+ g_free (parms);
+
+ gpgme_release (ctx);
+
+ return gerr;
}
gpgme_error_t
-seahorse_gpgme_key_op_sign_uid (SeahorseGpgmeUid *uid, SeahorseGpgmeKey *signer,
- SeahorseSignCheck check, SeahorseSignOptions options)
-{
- gpgme_key_t signing_key;
- gpgme_key_t signed_key;
- guint sign_index;
-
- seahorse_gpgme_key_get_private (signer);
-
- g_return_val_if_fail (SEAHORSE_GPGME_IS_UID (uid), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
- g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (signer), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
-
- signing_key = seahorse_gpgme_key_get_private (signer);
- g_return_val_if_fail (signing_key, GPG_E (GPG_ERR_WRONG_KEY_USAGE));
-
- signed_key = seahorse_gpgme_uid_get_pubkey (uid);
- g_return_val_if_fail (signing_key, GPG_E (GPG_ERR_INV_VALUE));
-
- sign_index = seahorse_gpgme_uid_get_actual_index (uid);
-
- return sign_process (signed_key, signing_key, sign_index, check, options);
+seahorse_gpgme_key_op_sign_uid (SeahorseGpgmeUid *uid,
+ SeahorseGpgmeKey *signer,
+ SeahorseSignCheck check,
+ SeahorseSignOptions options)
+{
+ gpgme_key_t signing_key;
+ gpgme_key_t signed_key;
+ unsigned int sign_index;
+
+ seahorse_gpgme_key_get_private (signer);
+
+ g_return_val_if_fail (SEAHORSE_GPGME_IS_UID (uid), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+ g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (signer), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+
+ signing_key = seahorse_gpgme_key_get_private (signer);
+ g_return_val_if_fail (signing_key, GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+
+ signed_key = seahorse_gpgme_uid_get_pubkey (uid);
+ g_return_val_if_fail (signing_key, GPG_E (GPG_ERR_INV_VALUE));
+
+ sign_index = seahorse_gpgme_uid_get_actual_index (uid);
+
+ return sign_process (signed_key, signing_key, sign_index, check, options);
}
gpgme_error_t
-seahorse_gpgme_key_op_sign (SeahorseGpgmeKey *pkey, SeahorseGpgmeKey *signer,
+seahorse_gpgme_key_op_sign (SeahorseGpgmeKey *pkey, SeahorseGpgmeKey *signer,
SeahorseSignCheck check, SeahorseSignOptions options)
{
- gpgme_key_t signing_key;
- gpgme_key_t signed_key;
-
- seahorse_gpgme_key_get_private (signer);
+ gpgme_key_t signing_key;
+ gpgme_key_t signed_key;
- g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (pkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
- g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (signer), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
-
- signing_key = seahorse_gpgme_key_get_private (signer);
- g_return_val_if_fail (signing_key, GPG_E (GPG_ERR_WRONG_KEY_USAGE));
-
- signed_key = seahorse_gpgme_key_get_public (pkey);
+ seahorse_gpgme_key_get_private (signer);
- return sign_process (signed_key, signing_key, 0, check, options);
+ g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (pkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+ g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (signer), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+
+ signing_key = seahorse_gpgme_key_get_private (signer);
+ g_return_val_if_fail (signing_key, GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+
+ signed_key = seahorse_gpgme_key_get_public (pkey);
+
+ return sign_process (signed_key, signing_key, 0, check, options);
}
static gboolean
@@ -716,114 +736,119 @@ seahorse_gpgme_key_op_change_pass_finish (SeahorseGpgmeKey *pkey,
typedef enum
{
- TRUST_START,
- TRUST_COMMAND,
- TRUST_VALUE,
- TRUST_CONFIRM,
- TRUST_QUIT,
- TRUST_ERROR
+ TRUST_START,
+ TRUST_COMMAND,
+ TRUST_VALUE,
+ TRUST_CONFIRM,
+ TRUST_QUIT,
+ TRUST_ERROR
} TrustState;
/* action helper for setting trust of a key */
static gpgme_error_t
-edit_trust_action (guint state, gpointer data, int fd)
+edit_trust_action (unsigned int state,
+ void *data,
+ int fd)
{
- gint trust = GPOINTER_TO_INT (data);
-
- switch (state) {
- /* enter command */
- case TRUST_COMMAND:
+ int trust = GPOINTER_TO_INT (data);
+
+ switch (state) {
+ /* enter command */
+ case TRUST_COMMAND:
PRINT ((fd, "trust"));
- break;
- /* enter numeric trust value */
- case TRUST_VALUE:
+ break;
+ /* enter numeric trust value */
+ case TRUST_VALUE:
PRINTF ((fd, "%d", trust));
- break;
- /* confirm ultimate or if save */
- case TRUST_CONFIRM:
+ break;
+ /* confirm ultimate or if save */
+ case TRUST_CONFIRM:
PRINT ((fd, YES));
- break;
- /* quit */
- case TRUST_QUIT:
+ break;
+ /* quit */
+ case TRUST_QUIT:
PRINT ((fd, QUIT));
- break;
- default:
- return GPG_E (GPG_ERR_GENERAL);
- }
-
+ break;
+ default:
+ return GPG_E (GPG_ERR_GENERAL);
+ }
+
PRINT ((fd, "\n"));
- return GPG_OK;
+ return GPG_OK;
}
/* transition helper for setting trust of a key */
-static guint
-edit_trust_transit (guint current_state, gpgme_status_code_t status,
- const gchar *args, gpointer data, gpgme_error_t *err)
-{
- guint next_state;
-
- switch (current_state) {
- /* start state */
- case TRUST_START:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = TRUST_COMMAND;
- else {
+static unsigned int
+edit_trust_transit (unsigned int current_state,
+ const char *status,
+ const char *args,
+ void *data,
+ gpgme_error_t *err)
+{
+ unsigned int next_state;
+
+ switch (current_state) {
+ /* start state */
+ case TRUST_START:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = TRUST_COMMAND;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (TRUST_ERROR);
- }
- break;
- /* did command, next is value */
- case TRUST_COMMAND:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, "edit_ownertrust.value"))
- next_state = TRUST_VALUE;
- else {
+ }
+ break;
+ /* did command, next is value */
+ case TRUST_COMMAND:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, "edit_ownertrust.value"))
+ next_state = TRUST_VALUE;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (TRUST_ERROR);
- }
- break;
- /* did value, go to quit or confirm ultimate */
- case TRUST_VALUE:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = TRUST_QUIT;
- else if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args,
"edit_ownertrust.set_ultimate.okay"))
- next_state = TRUST_CONFIRM;
- else {
+ }
+ break;
+ /* did value, go to quit or confirm ultimate */
+ case TRUST_VALUE:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = TRUST_QUIT;
+ else if (g_str_equal (status, "GET_BOOL") && g_str_equal (args,
"edit_ownertrust.set_ultimate.okay"))
+ next_state = TRUST_CONFIRM;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (TRUST_ERROR);
- }
- break;
- /* did confirm ultimate, go to quit */
- case TRUST_CONFIRM:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = TRUST_QUIT;
- else {
+ }
+ break;
+ /* did confirm ultimate, go to quit */
+ case TRUST_CONFIRM:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = TRUST_QUIT;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (TRUST_ERROR);
- }
- break;
- /* did quit, go to confirm to finish op */
- case TRUST_QUIT:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, SAVE))
- next_state = TRUST_CONFIRM;
- else {
+ }
+ break;
+ /* did quit, go to confirm to finish op */
+ case TRUST_QUIT:
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, SAVE))
+ next_state = TRUST_CONFIRM;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (TRUST_ERROR);
- }
- break;
- /* error, go to quit */
- case TRUST_ERROR:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = TRUST_QUIT;
- else
- next_state = TRUST_ERROR;
- break;
- default:
+ }
+ break;
+ /* error, go to quit */
+ case TRUST_ERROR:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = TRUST_QUIT;
+ else
+ next_state = TRUST_ERROR;
+ break;
+ default:
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (TRUST_ERROR);
- break;
- }
-
- return next_state;
+ break;
+ }
+
+ return next_state;
}
/**
@@ -840,21 +865,21 @@ edit_trust_transit (guint current_state, gpgme_status_code_t status,
gpgme_error_t
seahorse_gpgme_key_op_set_trust (SeahorseGpgmeKey *pkey, SeahorseValidity trust)
{
- SeahorseEditParm *parms;
- gint menu_choice;
-
- g_debug ("[GPGME_KEY_OP] set_trust: trust = %i", trust);
-
- g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (pkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
- g_return_val_if_fail (trust >= SEAHORSE_VALIDITY_NEVER, GPG_E (GPG_ERR_INV_VALUE));
- g_return_val_if_fail (seahorse_gpgme_key_get_trust (pkey) != trust, GPG_E (GPG_ERR_INV_VALUE));
-
- if (seahorse_object_get_usage (SEAHORSE_OBJECT (pkey)) == SEAHORSE_USAGE_PRIVATE_KEY)
- g_return_val_if_fail (trust != SEAHORSE_VALIDITY_UNKNOWN, GPG_E (GPG_ERR_INV_VALUE));
- else
- g_return_val_if_fail (trust != SEAHORSE_VALIDITY_ULTIMATE, GPG_E (GPG_ERR_INV_VALUE));
-
- switch (trust) {
+ SeahorseEditParm *parms;
+ int menu_choice;
+
+ g_debug ("[GPGME_KEY_OP] set_trust: trust = %i", trust);
+
+ g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (pkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+ g_return_val_if_fail (trust >= SEAHORSE_VALIDITY_NEVER, GPG_E (GPG_ERR_INV_VALUE));
+ g_return_val_if_fail (seahorse_gpgme_key_get_trust (pkey) != trust, GPG_E (GPG_ERR_INV_VALUE));
+
+ if (seahorse_object_get_usage (SEAHORSE_OBJECT (pkey)) == SEAHORSE_USAGE_PRIVATE_KEY)
+ g_return_val_if_fail (trust != SEAHORSE_VALIDITY_UNKNOWN, GPG_E (GPG_ERR_INV_VALUE));
+ else
+ g_return_val_if_fail (trust != SEAHORSE_VALIDITY_ULTIMATE, GPG_E (GPG_ERR_INV_VALUE));
+
+ switch (trust) {
case SEAHORSE_VALIDITY_NEVER:
menu_choice = GPG_NEVER;
break;
@@ -873,80 +898,83 @@ seahorse_gpgme_key_op_set_trust (SeahorseGpgmeKey *pkey, SeahorseValidity trust)
default:
menu_choice = 1;
}
-
- parms = seahorse_edit_parm_new (TRUST_START, edit_trust_action,
- edit_trust_transit, GINT_TO_POINTER (menu_choice));
-
- return edit_key (pkey, parms);
+
+ parms = seahorse_edit_parm_new (TRUST_START, edit_trust_action,
+ edit_trust_transit, GINT_TO_POINTER (menu_choice));
+
+ return edit_key (pkey, parms);
}
typedef enum {
- DISABLE_START,
- DISABLE_COMMAND,
- DISABLE_QUIT,
- DISABLE_ERROR
+ DISABLE_START,
+ DISABLE_COMMAND,
+ DISABLE_QUIT,
+ DISABLE_ERROR
} DisableState;
/* action helper for disable/enable a key */
static gpgme_error_t
-edit_disable_action (guint state, gpointer data, int fd)
+edit_disable_action (unsigned int state, gpointer data, int fd)
{
- const gchar *command = data;
-
- switch (state) {
- case DISABLE_COMMAND:
+ const char *command = data;
+
+ switch (state) {
+ case DISABLE_COMMAND:
PRINT ((fd, command));
- break;
- case DISABLE_QUIT:
+ break;
+ case DISABLE_QUIT:
PRINT ((fd, QUIT));
- break;
- default:
- break;
- }
-
+ break;
+ default:
+ break;
+ }
+
PRINT ((fd, "\n"));
- return GPG_OK;
+ return GPG_OK;
}
/* transition helper for disable/enable a key */
-static guint
-edit_disable_transit (guint current_state, gpgme_status_code_t status,
- const gchar *args, gpointer data, gpgme_error_t *err)
-{
- guint next_state;
-
- switch (current_state) {
- /* start, do command */
- case DISABLE_START:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = DISABLE_COMMAND;
- else {
+static unsigned int
+edit_disable_transit (unsigned int current_state,
+ const char *status,
+ const char *args,
+ void *data,
+ gpgme_error_t *err)
+{
+ unsigned int next_state;
+
+ switch (current_state) {
+ /* start, do command */
+ case DISABLE_START:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = DISABLE_COMMAND;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (DISABLE_ERROR);
- }
- break;
- /* did command, quit */
- case DISABLE_COMMAND:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = DISABLE_QUIT;
- else {
+ }
+ break;
+ /* did command, quit */
+ case DISABLE_COMMAND:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = DISABLE_QUIT;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (DISABLE_ERROR);
- }
- /* error, quit */
- case DISABLE_ERROR:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = DISABLE_QUIT;
- else
- next_state = DISABLE_ERROR;
- break;
- default:
+ }
+ /* error, quit */
+ case DISABLE_ERROR:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = DISABLE_QUIT;
+ else
+ next_state = DISABLE_ERROR;
+ break;
+ default:
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (DISABLE_ERROR);
- break;
- }
-
- return next_state;
+ break;
+ }
+
+ return next_state;
}
/**
@@ -961,20 +989,20 @@ edit_disable_transit (guint current_state, gpgme_status_code_t status,
gpgme_error_t
seahorse_gpgme_key_op_set_disabled (SeahorseGpgmeKey *pkey, gboolean disabled)
{
- gchar *command;
- SeahorseEditParm *parms;
-
- g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (pkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
-
- /* Get command and op */
- if (disabled)
- command = "disable";
- else
- command = "enable";
-
- parms = seahorse_edit_parm_new (DISABLE_START, edit_disable_action, edit_disable_transit, command);
-
- return edit_key (pkey, parms);
+ char *command;
+ SeahorseEditParm *parms;
+
+ g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (pkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+
+ /* Get command and op */
+ if (disabled)
+ command = "disable";
+ else
+ command = "enable";
+
+ parms = seahorse_edit_parm_new (DISABLE_START, edit_disable_action, edit_disable_transit, command);
+
+ return edit_key (pkey, parms);
}
typedef struct
@@ -996,7 +1024,7 @@ typedef enum
/* action helper for changing expiration date of a key */
static gpgme_error_t
-edit_expire_action (guint state, gpointer data, int fd)
+edit_expire_action (unsigned int state, gpointer data, int fd)
{
ExpireParm *parm = (ExpireParm*)data;
g_autofree char *expires_str = NULL;
@@ -1032,19 +1060,19 @@ edit_expire_action (guint state, gpointer data, int fd)
}
/* transition helper for changing expiration date of a key */
-static guint
-edit_expire_transit (unsigned int current_state,
- gpgme_status_code_t status,
- const char *args,
- gpointer data,
- gpgme_error_t *err)
+static unsigned int
+edit_expire_transit (unsigned int current_state,
+ const char *status,
+ const char *args,
+ void *data,
+ gpgme_error_t *err)
{
unsigned int next_state;
switch (current_state) {
/* start state, selected key */
case EXPIRE_START:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = EXPIRE_SELECT;
else {
*err = GPG_E (GPG_ERR_GENERAL);
@@ -1053,7 +1081,7 @@ edit_expire_transit (unsigned int current_state,
break;
/* selected key, do command */
case EXPIRE_SELECT:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = EXPIRE_COMMAND;
else {
*err = GPG_E (GPG_ERR_GENERAL);
@@ -1062,7 +1090,7 @@ edit_expire_transit (unsigned int current_state,
break;
/* did command, set expires */
case EXPIRE_COMMAND:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, "keygen.valid"))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, "keygen.valid"))
next_state = EXPIRE_DATE;
else {
*err = GPG_E (GPG_ERR_GENERAL);
@@ -1071,7 +1099,7 @@ edit_expire_transit (unsigned int current_state,
break;
/* set expires, quit */
case EXPIRE_DATE:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = EXPIRE_QUIT;
else {
*err = GPG_E (GPG_ERR_GENERAL);
@@ -1080,7 +1108,7 @@ edit_expire_transit (unsigned int current_state,
break;
/* quit, save */
case EXPIRE_QUIT:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, SAVE))
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, SAVE))
next_state = EXPIRE_SAVE;
else {
*err = GPG_E (GPG_ERR_GENERAL);
@@ -1089,7 +1117,7 @@ edit_expire_transit (unsigned int current_state,
break;
/* error, quit */
case EXPIRE_ERROR:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = EXPIRE_QUIT;
else
next_state = EXPIRE_ERROR;
@@ -1123,7 +1151,7 @@ seahorse_gpgme_key_op_set_expires (SeahorseGpgmeSubkey *subkey,
key = seahorse_gpgme_subkey_get_pubkey (subkey);
g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
- exp_parm.index = seahorse_pgp_subkey_get_index (SEAHORSE_PGP_SUBKEY (subkey));
+ exp_parm.index = seahorse_pgp_subkey_get_index (SEAHORSE_PGP_SUBKEY (subkey));
exp_parm.expires = expires;
parms = seahorse_edit_parm_new (EXPIRE_START, edit_expire_action, edit_expire_transit, &exp_parm);
@@ -1132,129 +1160,132 @@ seahorse_gpgme_key_op_set_expires (SeahorseGpgmeSubkey *subkey,
}
typedef enum {
- ADD_REVOKER_START,
- ADD_REVOKER_COMMAND,
- ADD_REVOKER_SELECT,
- ADD_REVOKER_CONFIRM,
- ADD_REVOKER_QUIT,
- ADD_REVOKER_ERROR
+ ADD_REVOKER_START,
+ ADD_REVOKER_COMMAND,
+ ADD_REVOKER_SELECT,
+ ADD_REVOKER_CONFIRM,
+ ADD_REVOKER_QUIT,
+ ADD_REVOKER_ERROR
} AddRevokerState;
/* action helper for adding a revoker */
static gpgme_error_t
-add_revoker_action (guint state, gpointer data, int fd)
+add_revoker_action (unsigned int state, gpointer data, int fd)
{
- gchar *keyid = (gchar*)data;
-
- switch (state) {
- case ADD_REVOKER_COMMAND:
+ char *keyid = (char*)data;
+
+ switch (state) {
+ case ADD_REVOKER_COMMAND:
PRINT ((fd, "addrevoker"));
- break;
- /* select revoker */
- case ADD_REVOKER_SELECT:
+ break;
+ /* select revoker */
+ case ADD_REVOKER_SELECT:
PRINT ((fd, keyid));
- break;
- case ADD_REVOKER_CONFIRM:
+ break;
+ case ADD_REVOKER_CONFIRM:
PRINT ((fd, YES));
- break;
- case ADD_REVOKER_QUIT:
+ break;
+ case ADD_REVOKER_QUIT:
PRINT ((fd, QUIT));
- break;
- default:
- return GPG_E (GPG_ERR_GENERAL);
- }
-
+ break;
+ default:
+ return GPG_E (GPG_ERR_GENERAL);
+ }
+
PRINT ((fd, "\n"));
- return GPG_OK;
+ return GPG_OK;
}
/* transition helper for adding a revoker */
-static guint
-add_revoker_transit (guint current_state, gpgme_status_code_t status,
- const gchar *args, gpointer data, gpgme_error_t *err)
-{
- guint next_state;
-
- switch (current_state) {
- /* start, do command */
- case ADD_REVOKER_START:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = ADD_REVOKER_COMMAND;
- else {
+static unsigned int
+add_revoker_transit (unsigned int current_state,
+ const char *status,
+ const char *args,
+ void *data,
+ gpgme_error_t *err)
+{
+ unsigned int next_state;
+
+ switch (current_state) {
+ /* start, do command */
+ case ADD_REVOKER_START:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = ADD_REVOKER_COMMAND;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (ADD_REVOKER_ERROR);
- }
- break;
- /* did command, select revoker */
- case ADD_REVOKER_COMMAND:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, "keyedit.add_revoker"))
- next_state = ADD_REVOKER_SELECT;
- else {
+ }
+ break;
+ /* did command, select revoker */
+ case ADD_REVOKER_COMMAND:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, "keyedit.add_revoker"))
+ next_state = ADD_REVOKER_SELECT;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (ADD_REVOKER_ERROR);
- }
- break;
- /* selected revoker, confirm */
- case ADD_REVOKER_SELECT:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, "keyedit.add_revoker.okay"))
- next_state = ADD_REVOKER_CONFIRM;
- else {
+ }
+ break;
+ /* selected revoker, confirm */
+ case ADD_REVOKER_SELECT:
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, "keyedit.add_revoker.okay"))
+ next_state = ADD_REVOKER_CONFIRM;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (ADD_REVOKER_ERROR);
- }
- break;
- /* confirmed, quit */
- case ADD_REVOKER_CONFIRM:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = ADD_REVOKER_QUIT;
- else {
+ }
+ break;
+ /* confirmed, quit */
+ case ADD_REVOKER_CONFIRM:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = ADD_REVOKER_QUIT;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (ADD_REVOKER_ERROR);
- }
- break;
- /* quit, confirm(=save) */
- case ADD_REVOKER_QUIT:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, SAVE))
- next_state = ADD_REVOKER_CONFIRM;
- else {
+ }
+ break;
+ /* quit, confirm(=save) */
+ case ADD_REVOKER_QUIT:
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, SAVE))
+ next_state = ADD_REVOKER_CONFIRM;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (ADD_REVOKER_ERROR);
- }
- break;
- /* error, quit */
- case ADD_REVOKER_ERROR:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = ADD_REVOKER_QUIT;
- else
- next_state = ADD_REVOKER_ERROR;
- break;
- default:
+ }
+ break;
+ /* error, quit */
+ case ADD_REVOKER_ERROR:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = ADD_REVOKER_QUIT;
+ else
+ next_state = ADD_REVOKER_ERROR;
+ break;
+ default:
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (ADD_REVOKER_ERROR);
- break;
- }
-
- return next_state;
+ break;
+ }
+
+ return next_state;
}
gpgme_error_t
seahorse_gpgme_key_op_add_revoker (SeahorseGpgmeKey *pkey, SeahorseGpgmeKey *revoker)
{
- SeahorseEditParm *parms;
- const gchar *keyid;
+ SeahorseEditParm *parms;
+ const char *keyid;
- g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (pkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
- g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (revoker), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
- g_return_val_if_fail (seahorse_object_get_usage (SEAHORSE_OBJECT (pkey)) ==
SEAHORSE_USAGE_PRIVATE_KEY, GPG_E (GPG_ERR_WRONG_KEY_USAGE));
- g_return_val_if_fail (seahorse_object_get_usage (SEAHORSE_OBJECT (revoker)) ==
SEAHORSE_USAGE_PRIVATE_KEY, GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+ g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (pkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+ g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (revoker), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+ g_return_val_if_fail (seahorse_object_get_usage (SEAHORSE_OBJECT (pkey)) == SEAHORSE_USAGE_PRIVATE_KEY,
GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+ g_return_val_if_fail (seahorse_object_get_usage (SEAHORSE_OBJECT (revoker)) ==
SEAHORSE_USAGE_PRIVATE_KEY, GPG_E (GPG_ERR_WRONG_KEY_USAGE));
- keyid = seahorse_pgp_key_get_keyid (SEAHORSE_PGP_KEY (pkey));
- g_return_val_if_fail (keyid, GPG_E (GPG_ERR_INV_VALUE));
+ keyid = seahorse_pgp_key_get_keyid (SEAHORSE_PGP_KEY (pkey));
+ g_return_val_if_fail (keyid, GPG_E (GPG_ERR_INV_VALUE));
- parms = seahorse_edit_parm_new (ADD_REVOKER_START, add_revoker_action,
- add_revoker_transit, (gpointer)keyid);
+ parms = seahorse_edit_parm_new (ADD_REVOKER_START, add_revoker_action,
+ add_revoker_transit, (gpointer)keyid);
- return edit_key (pkey, parms);
+ return edit_key (pkey, parms);
}
static gboolean
@@ -1275,13 +1306,13 @@ on_key_op_add_uid_complete (gpgme_error_t gerr,
}
void
-seahorse_gpgme_key_op_add_uid_async (SeahorseGpgmeKey *pkey,
- const gchar *name,
- const gchar *email,
- const gchar *comment,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
+seahorse_gpgme_key_op_add_uid_async (SeahorseGpgmeKey *pkey,
+ const char *name,
+ const char *email,
+ const char *comment,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ void *user_data)
{
g_autoptr(GTask) task = NULL;
gpgme_ctx_t gctx;
@@ -1289,7 +1320,7 @@ seahorse_gpgme_key_op_add_uid_async (SeahorseGpgmeKey *pkey,
g_autoptr(GError) error = NULL;
g_autoptr(GSource) gsource = NULL;
gpgme_key_t key;
- g_autofree gchar* uid = NULL;
+ g_autofree char* uid = NULL;
g_return_if_fail (SEAHORSE_GPGME_IS_KEY (pkey));
g_return_if_fail (seahorse_object_get_usage (SEAHORSE_OBJECT (pkey)) == SEAHORSE_USAGE_PRIVATE_KEY);
@@ -1335,7 +1366,7 @@ seahorse_gpgme_key_op_add_subkey_async (SeahorseGpgmeKey *pkey,
GDateTime *expires,
GCancellable *cancellable,
GAsyncReadyCallback callback,
- gpointer user_data)
+ void *user_data)
{
g_autoptr(GTask) task = NULL;
gpgme_ctx_t gctx;
@@ -1345,7 +1376,7 @@ seahorse_gpgme_key_op_add_subkey_async (SeahorseGpgmeKey *pkey,
const char *algo;
g_autofree char *algo_full = NULL;
g_autoptr(GSource) gsource = NULL;
- guint flags = 0;
+ unsigned int flags = 0;
g_return_if_fail (SEAHORSE_GPGME_IS_KEY (pkey));
g_return_if_fail (seahorse_object_get_usage (SEAHORSE_OBJECT (pkey)) ==
@@ -1415,313 +1446,319 @@ seahorse_gpgme_key_op_add_subkey_finish (SeahorseGpgmeKey *pkey,
}
typedef enum {
- DEL_KEY_START,
- DEL_KEY_SELECT,
- DEL_KEY_COMMAND,
- DEL_KEY_CONFIRM,
- DEL_KEY_QUIT,
- DEL_KEY_ERROR
+ DEL_KEY_START,
+ DEL_KEY_SELECT,
+ DEL_KEY_COMMAND,
+ DEL_KEY_CONFIRM,
+ DEL_KEY_QUIT,
+ DEL_KEY_ERROR
} DelKeyState;
/* action helper for deleting a subkey */
static gpgme_error_t
-del_key_action (guint state, gpointer data, int fd)
-{
- switch (state) {
- /* select key */
- case DEL_KEY_SELECT:
- PRINTF ((fd, "key %d", GPOINTER_TO_UINT (data)));
- break;
- case DEL_KEY_COMMAND:
+del_key_action (unsigned int state, gpointer data, int fd)
+{
+ switch (state) {
+ /* select key */
+ case DEL_KEY_SELECT:
+ PRINTF ((fd, "key %d", GPOINTER_TO_UINT (data)));
+ break;
+ case DEL_KEY_COMMAND:
PRINT ((fd, "delkey"));
- break;
- case DEL_KEY_CONFIRM:
+ break;
+ case DEL_KEY_CONFIRM:
PRINT ((fd, YES));
- break;
- case DEL_KEY_QUIT:
+ break;
+ case DEL_KEY_QUIT:
PRINT ((fd, QUIT));
- break;
- default:
- return GPG_E (GPG_ERR_GENERAL);
- }
-
+ break;
+ default:
+ return GPG_E (GPG_ERR_GENERAL);
+ }
+
PRINT ((fd, "\n"));
- return GPG_OK;
+ return GPG_OK;
}
/* transition helper for deleting a subkey */
-static guint
-del_key_transit (guint current_state, gpgme_status_code_t status,
- const gchar *args, gpointer data, gpgme_error_t *err)
-{
- guint next_state;
-
- switch (current_state) {
- /* start, select key */
- case DEL_KEY_START:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = DEL_KEY_SELECT;
- else {
+static unsigned int
+del_key_transit (unsigned int current_state,
+ const char *status,
+ const char *args,
+ void *data,
+ gpgme_error_t *err)
+{
+ unsigned int next_state;
+
+ switch (current_state) {
+ /* start, select key */
+ case DEL_KEY_START:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = DEL_KEY_SELECT;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (DEL_KEY_ERROR);
- }
- break;
- /* selected key, do command */
- case DEL_KEY_SELECT:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = DEL_KEY_COMMAND;
- else {
+ }
+ break;
+ /* selected key, do command */
+ case DEL_KEY_SELECT:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = DEL_KEY_COMMAND;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (DEL_KEY_ERROR);
- }
- break;
- case DEL_KEY_COMMAND:
- /* did command, confirm */
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal
- (args, "keyedit.remove.subkey.okay"))
- next_state = DEL_KEY_CONFIRM;
- /* did command, quit */
- else if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = DEL_KEY_QUIT;
- else {
+ }
+ break;
+ case DEL_KEY_COMMAND:
+ /* did command, confirm */
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal
+ (args, "keyedit.remove.subkey.okay"))
+ next_state = DEL_KEY_CONFIRM;
+ /* did command, quit */
+ else if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = DEL_KEY_QUIT;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (DEL_KEY_ERROR);
- }
- break;
- /* confirmed, quit */
- case DEL_KEY_CONFIRM:
- next_state = DEL_KEY_QUIT;
- break;
- /* quit, confirm(=save) */
- case DEL_KEY_QUIT:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, SAVE))
- next_state = DEL_KEY_CONFIRM;
- else {
+ }
+ break;
+ /* confirmed, quit */
+ case DEL_KEY_CONFIRM:
+ next_state = DEL_KEY_QUIT;
+ break;
+ /* quit, confirm(=save) */
+ case DEL_KEY_QUIT:
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, SAVE))
+ next_state = DEL_KEY_CONFIRM;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (DEL_KEY_ERROR);
- }
- break;
- /* error, quit */
- case DEL_KEY_ERROR:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = DEL_KEY_QUIT;
- else
- next_state = DEL_KEY_ERROR;
- break;
- default:
+ }
+ break;
+ /* error, quit */
+ case DEL_KEY_ERROR:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = DEL_KEY_QUIT;
+ else
+ next_state = DEL_KEY_ERROR;
+ break;
+ default:
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (DEL_KEY_ERROR);
- break;
- }
-
- return next_state;
+ break;
+ }
+
+ return next_state;
}
gpgme_error_t
seahorse_gpgme_key_op_del_subkey (SeahorseGpgmeSubkey *subkey)
{
- SeahorseEditParm *parms;
- gpgme_key_t key;
- int index;
-
- g_return_val_if_fail (SEAHORSE_GPGME_IS_SUBKEY (subkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
-
- key = seahorse_gpgme_subkey_get_pubkey (subkey);
- g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
-
- index = seahorse_pgp_subkey_get_index (SEAHORSE_PGP_SUBKEY (subkey));
- parms = seahorse_edit_parm_new (DEL_KEY_START, del_key_action,
- del_key_transit, GUINT_TO_POINTER (index));
-
- return edit_refresh_gpgme_key (NULL, key, parms);
+ SeahorseEditParm *parms;
+ gpgme_key_t key;
+ int index;
+
+ g_return_val_if_fail (SEAHORSE_GPGME_IS_SUBKEY (subkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+
+ key = seahorse_gpgme_subkey_get_pubkey (subkey);
+ g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
+
+ index = seahorse_pgp_subkey_get_index (SEAHORSE_PGP_SUBKEY (subkey));
+ parms = seahorse_edit_parm_new (DEL_KEY_START, del_key_action,
+ del_key_transit, GUINT_TO_POINTER (index));
+
+ return edit_refresh_gpgme_key (NULL, key, parms);
}
typedef struct
{
- guint index;
- SeahorseRevokeReason reason;
- const gchar *description;
+ unsigned int index;
+ SeahorseRevokeReason reason;
+ const char *description;
} RevSubkeyParm;
typedef enum {
- REV_SUBKEY_START,
- REV_SUBKEY_SELECT,
- REV_SUBKEY_COMMAND,
- REV_SUBKEY_CONFIRM,
- REV_SUBKEY_REASON,
- REV_SUBKEY_DESCRIPTION,
- REV_SUBKEY_ENDDESC,
- REV_SUBKEY_QUIT,
- REV_SUBKEY_ERROR
+ REV_SUBKEY_START,
+ REV_SUBKEY_SELECT,
+ REV_SUBKEY_COMMAND,
+ REV_SUBKEY_CONFIRM,
+ REV_SUBKEY_REASON,
+ REV_SUBKEY_DESCRIPTION,
+ REV_SUBKEY_ENDDESC,
+ REV_SUBKEY_QUIT,
+ REV_SUBKEY_ERROR
} RevSubkeyState;
/* action helper for revoking a subkey */
static gpgme_error_t
-rev_subkey_action (guint state, gpointer data, int fd)
+rev_subkey_action (unsigned int state, gpointer data, int fd)
{
- RevSubkeyParm *parm = (RevSubkeyParm*)data;
-
- switch (state) {
- case REV_SUBKEY_SELECT:
+ RevSubkeyParm *parm = (RevSubkeyParm*)data;
+
+ switch (state) {
+ case REV_SUBKEY_SELECT:
PRINTF ((fd, "key %d", parm->index));
- break;
- case REV_SUBKEY_COMMAND:
+ break;
+ case REV_SUBKEY_COMMAND:
PRINT ((fd, "revkey"));
- break;
- case REV_SUBKEY_CONFIRM:
+ break;
+ case REV_SUBKEY_CONFIRM:
PRINT ((fd, YES));
- break;
- case REV_SUBKEY_REASON:
+ break;
+ case REV_SUBKEY_REASON:
PRINTF ((fd, "%d", parm->reason));
- break;
- case REV_SUBKEY_DESCRIPTION:
+ break;
+ case REV_SUBKEY_DESCRIPTION:
PRINTF ((fd, "%s", parm->description));
- break;
- case REV_SUBKEY_ENDDESC:
+ break;
+ case REV_SUBKEY_ENDDESC:
/* Need empty line, which is written at the end */
- break;
- case REV_SUBKEY_QUIT:
+ break;
+ case REV_SUBKEY_QUIT:
PRINT ((fd, QUIT));
- break;
- default:
- g_return_val_if_reached (GPG_E (GPG_ERR_GENERAL));
- }
-
+ break;
+ default:
+ g_return_val_if_reached (GPG_E (GPG_ERR_GENERAL));
+ }
+
PRINT ((fd, "\n"));
- return GPG_OK;
+ return GPG_OK;
}
/* transition helper for revoking a subkey */
-static guint
-rev_subkey_transit (guint current_state, gpgme_status_code_t status,
- const gchar *args, gpointer data, gpgme_error_t *err)
-{
- guint next_state;
-
- switch (current_state) {
- /* start, select key */
- case REV_SUBKEY_START:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = REV_SUBKEY_SELECT;
- else {
+static unsigned int
+rev_subkey_transit (unsigned int current_state,
+ const char *status,
+ const char *args,
+ void *data,
+ gpgme_error_t *err)
+{
+ unsigned int next_state;
+
+ switch (current_state) {
+ /* start, select key */
+ case REV_SUBKEY_START:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = REV_SUBKEY_SELECT;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (REV_SUBKEY_ERROR);
- }
- break;
- /* selected key, do command */
- case REV_SUBKEY_SELECT:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = REV_SUBKEY_COMMAND;
- else {
+ }
+ break;
+ /* selected key, do command */
+ case REV_SUBKEY_SELECT:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = REV_SUBKEY_COMMAND;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (REV_SUBKEY_ERROR);
- }
- break;
- /* did command, confirm */
- case REV_SUBKEY_COMMAND:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args,
"keyedit.revoke.subkey.okay"))
- next_state = REV_SUBKEY_CONFIRM;
- else {
+ }
+ break;
+ /* did command, confirm */
+ case REV_SUBKEY_COMMAND:
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, "keyedit.revoke.subkey.okay"))
+ next_state = REV_SUBKEY_CONFIRM;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (REV_SUBKEY_ERROR);
- }
- break;
- case REV_SUBKEY_CONFIRM:
- /* did confirm, do reason */
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args,
"ask_revocation_reason.code"))
- next_state = REV_SUBKEY_REASON;
- /* did confirm, quit */
- else if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = REV_SUBKEY_QUIT;
- else {
+ }
+ break;
+ case REV_SUBKEY_CONFIRM:
+ /* did confirm, do reason */
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, "ask_revocation_reason.code"))
+ next_state = REV_SUBKEY_REASON;
+ /* did confirm, quit */
+ else if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = REV_SUBKEY_QUIT;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (REV_SUBKEY_ERROR);
- }
- break;
- /* did reason, do description */
- case REV_SUBKEY_REASON:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args,
"ask_revocation_reason.text"))
- next_state = REV_SUBKEY_DESCRIPTION;
- else {
+ }
+ break;
+ /* did reason, do description */
+ case REV_SUBKEY_REASON:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, "ask_revocation_reason.text"))
+ next_state = REV_SUBKEY_DESCRIPTION;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (REV_SUBKEY_ERROR);
- }
- break;
- case REV_SUBKEY_DESCRIPTION:
- /* did description, end it */
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args,
"ask_revocation_reason.text"))
- next_state = REV_SUBKEY_ENDDESC;
- /* did description, confirm */
- else if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args,
"ask_revocation_reason.okay"))
- next_state = REV_SUBKEY_CONFIRM;
- else {
+ }
+ break;
+ case REV_SUBKEY_DESCRIPTION:
+ /* did description, end it */
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, "ask_revocation_reason.text"))
+ next_state = REV_SUBKEY_ENDDESC;
+ /* did description, confirm */
+ else if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, "ask_revocation_reason.okay"))
+ next_state = REV_SUBKEY_CONFIRM;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (REV_SUBKEY_ERROR);
- }
- break;
- /* ended description, confirm */
- case REV_SUBKEY_ENDDESC:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args,
"ask_revocation_reason.okay"))
- next_state = REV_SUBKEY_CONFIRM;
- else {
+ }
+ break;
+ /* ended description, confirm */
+ case REV_SUBKEY_ENDDESC:
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, "ask_revocation_reason.okay"))
+ next_state = REV_SUBKEY_CONFIRM;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (REV_SUBKEY_ERROR);
- }
- break;
- /* quit, confirm(=save) */
- case REV_SUBKEY_QUIT:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, SAVE))
- next_state = REV_SUBKEY_CONFIRM;
- else {
+ }
+ break;
+ /* quit, confirm(=save) */
+ case REV_SUBKEY_QUIT:
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, SAVE))
+ next_state = REV_SUBKEY_CONFIRM;
+ else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (REV_SUBKEY_ERROR);
- }
- break;
- /* error, quit */
- case REV_SUBKEY_ERROR:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = REV_SUBKEY_QUIT;
- else
- next_state = REV_SUBKEY_ERROR;
- break;
- default:
+ }
+ break;
+ /* error, quit */
+ case REV_SUBKEY_ERROR:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = REV_SUBKEY_QUIT;
+ else
+ next_state = REV_SUBKEY_ERROR;
+ break;
+ default:
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (REV_SUBKEY_ERROR);
- break;
- }
-
- return next_state;
+ break;
+ }
+
+ return next_state;
}
gpgme_error_t
-seahorse_gpgme_key_op_revoke_subkey (SeahorseGpgmeSubkey *subkey, SeahorseRevokeReason reason,
- const gchar *description)
-{
- RevSubkeyParm rev_parm;
- SeahorseEditParm *parms;
- gpgme_subkey_t gsubkey;
- gpgme_key_t key;
-
- g_return_val_if_fail (SEAHORSE_GPGME_IS_SUBKEY (subkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
-
- gsubkey = seahorse_gpgme_subkey_get_subkey (subkey);
- g_return_val_if_fail (!gsubkey->revoked, GPG_E (GPG_ERR_INV_VALUE));
-
- key = seahorse_gpgme_subkey_get_pubkey (subkey);
- g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
-
- rev_parm.index = seahorse_pgp_subkey_get_index (SEAHORSE_PGP_SUBKEY (subkey));
- rev_parm.reason = reason;
- rev_parm.description = description;
-
- parms = seahorse_edit_parm_new (REV_SUBKEY_START, rev_subkey_action,
- rev_subkey_transit, &rev_parm);
-
- return edit_refresh_gpgme_key (NULL, key, parms);
+seahorse_gpgme_key_op_revoke_subkey (SeahorseGpgmeSubkey *subkey, SeahorseRevokeReason reason,
+ const char *description)
+{
+ RevSubkeyParm rev_parm;
+ SeahorseEditParm *parms;
+ gpgme_subkey_t gsubkey;
+ gpgme_key_t key;
+
+ g_return_val_if_fail (SEAHORSE_GPGME_IS_SUBKEY (subkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+
+ gsubkey = seahorse_gpgme_subkey_get_subkey (subkey);
+ g_return_val_if_fail (!gsubkey->revoked, GPG_E (GPG_ERR_INV_VALUE));
+
+ key = seahorse_gpgme_subkey_get_pubkey (subkey);
+ g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
+
+ rev_parm.index = seahorse_pgp_subkey_get_index (SEAHORSE_PGP_SUBKEY (subkey));
+ rev_parm.reason = reason;
+ rev_parm.description = description;
+
+ parms = seahorse_edit_parm_new (REV_SUBKEY_START, rev_subkey_action,
+ rev_subkey_transit, &rev_parm);
+
+ return edit_refresh_gpgme_key (NULL, key, parms);
}
typedef struct {
- guint index;
+ unsigned int index;
} PrimaryParm;
typedef enum {
@@ -1735,10 +1772,10 @@ typedef enum {
/* action helper for setting primary uid */
static gpgme_error_t
-primary_action (guint state, gpointer data, int fd)
+primary_action (unsigned int state, gpointer data, int fd)
{
PrimaryParm *parm = (PrimaryParm*)data;
-
+
switch (state) {
case PRIMARY_SELECT:
/* Note that the GPG id is not 0 based */
@@ -1757,23 +1794,26 @@ primary_action (guint state, gpointer data, int fd)
g_return_val_if_reached (GPG_E (GPG_ERR_GENERAL));
break;
}
-
+
PRINT ((fd, "\n"));
return GPG_OK;
}
/* transition helper for setting primary key */
-static guint
-primary_transit (guint current_state, gpgme_status_code_t status,
- const gchar *args, gpointer data, gpgme_error_t *err)
+static unsigned int
+primary_transit (unsigned int current_state,
+ const char *status,
+ const char *args,
+ void *data,
+ gpgme_error_t *err)
{
- guint next_state;
-
+ unsigned int next_state;
+
switch (current_state) {
-
+
/* start, select key */
case PRIMARY_START:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = PRIMARY_SELECT;
else {
*err = GPG_E (GPG_ERR_GENERAL);
@@ -1783,7 +1823,7 @@ primary_transit (guint current_state, gpgme_status_code_t status,
/* selected key, do command */
case PRIMARY_SELECT:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = PRIMARY_COMMAND;
else {
*err = GPG_E (GPG_ERR_GENERAL);
@@ -1793,17 +1833,17 @@ primary_transit (guint current_state, gpgme_status_code_t status,
/* did command, quit */
case PRIMARY_COMMAND:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = PRIMARY_QUIT;
else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (PRIMARY_ERROR);
}
break;
-
+
/* quitting so save */
- case PRIMARY_QUIT:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, SAVE))
+ case PRIMARY_QUIT:
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, SAVE))
next_state = PRIMARY_SAVE;
else {
*err = GPG_E (GPG_ERR_GENERAL);
@@ -1813,18 +1853,18 @@ primary_transit (guint current_state, gpgme_status_code_t status,
/* error, quit */
case PRIMARY_ERROR:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = PRIMARY_QUIT;
else
next_state = PRIMARY_ERROR;
break;
-
+
default:
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (PRIMARY_ERROR);
break;
}
-
+
return next_state;
}
@@ -1906,7 +1946,7 @@ seahorse_gpgme_key_op_make_primary_finish (SeahorseGpgmeUid *uid,
typedef struct {
- guint index;
+ unsigned int index;
} DelUidParm;
typedef enum {
@@ -1921,10 +1961,10 @@ typedef enum {
/* action helper for removing a uid */
static gpgme_error_t
-del_uid_action (guint state, gpointer data, int fd)
+del_uid_action (unsigned int state, gpointer data, int fd)
{
DelUidParm *parm = (DelUidParm*)data;
-
+
switch (state) {
case DEL_UID_SELECT:
PRINTF ((fd, "uid %d", parm->index));
@@ -1945,23 +1985,26 @@ del_uid_action (guint state, gpointer data, int fd)
g_return_val_if_reached (GPG_E (GPG_ERR_GENERAL));
break;
}
-
+
PRINT ((fd, "\n"));
return GPG_OK;
}
/* transition helper for setting deleting a uid */
-static guint
-del_uid_transit (guint current_state, gpgme_status_code_t status,
- const gchar *args, gpointer data, gpgme_error_t *err)
+static unsigned int
+del_uid_transit (unsigned int current_state,
+ const char *status,
+ const char *args,
+ void *data,
+ gpgme_error_t *err)
{
- guint next_state;
-
+ unsigned int next_state;
+
switch (current_state) {
-
+
/* start, select key */
case DEL_UID_START:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = DEL_UID_SELECT;
else {
*err = GPG_E (GPG_ERR_GENERAL);
@@ -1971,7 +2014,7 @@ del_uid_transit (guint current_state, gpgme_status_code_t status,
/* selected key, do command */
case DEL_UID_SELECT:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = DEL_UID_COMMAND;
else {
*err = GPG_E (GPG_ERR_GENERAL);
@@ -1981,9 +2024,9 @@ del_uid_transit (guint current_state, gpgme_status_code_t status,
/* did command, confirm */
case DEL_UID_COMMAND:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, "keyedit.remove.uid.okay"))
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, "keyedit.remove.uid.okay"))
next_state = DEL_UID_CONFIRM;
- else if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ else if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = DEL_UID_QUIT;
else {
*err = GPG_E (GPG_ERR_GENERAL);
@@ -1993,17 +2036,17 @@ del_uid_transit (guint current_state, gpgme_status_code_t status,
/* confirmed, quit */
case DEL_UID_CONFIRM:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = DEL_UID_QUIT;
else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (DEL_UID_ERROR);
}
break;
-
+
/* quitted so save */
- case DEL_UID_QUIT:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, SAVE))
+ case DEL_UID_QUIT:
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, SAVE))
next_state = DEL_UID_SAVE;
else {
*err = GPG_E (GPG_ERR_GENERAL);
@@ -2013,43 +2056,43 @@ del_uid_transit (guint current_state, gpgme_status_code_t status,
/* error, quit */
case DEL_UID_ERROR:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = DEL_UID_QUIT;
else
next_state = DEL_UID_ERROR;
break;
-
+
default:
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (DEL_UID_ERROR);
break;
}
-
+
return next_state;
}
-
-gpgme_error_t
+
+gpgme_error_t
seahorse_gpgme_key_op_del_uid (SeahorseGpgmeUid *uid)
{
- DelUidParm del_uid_parm;
- SeahorseEditParm *parms;
- gpgme_key_t key;
-
- g_return_val_if_fail (SEAHORSE_GPGME_IS_UID (uid), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
-
- key = seahorse_gpgme_uid_get_pubkey (uid);
- g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
-
- del_uid_parm.index = seahorse_gpgme_uid_get_actual_index (uid);
-
- parms = seahorse_edit_parm_new (DEL_UID_START, del_uid_action,
- del_uid_transit, &del_uid_parm);
-
- return edit_refresh_gpgme_key (NULL, key, parms);
+ DelUidParm del_uid_parm;
+ SeahorseEditParm *parms;
+ gpgme_key_t key;
+
+ g_return_val_if_fail (SEAHORSE_GPGME_IS_UID (uid), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+
+ key = seahorse_gpgme_uid_get_pubkey (uid);
+ g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
+
+ del_uid_parm.index = seahorse_gpgme_uid_get_actual_index (uid);
+
+ parms = seahorse_edit_parm_new (DEL_UID_START, del_uid_action,
+ del_uid_transit, &del_uid_parm);
+
+ return edit_refresh_gpgme_key (NULL, key, parms);
}
typedef struct {
- const gchar *filename;
+ const char *filename;
} PhotoIdAddParm;
typedef enum {
@@ -2064,10 +2107,10 @@ typedef enum {
/* action helper for adding a photoid to a #SeahorseKey */
static gpgme_error_t
-photoid_add_action (guint state, gpointer data, int fd)
+photoid_add_action (unsigned int state, gpointer data, int fd)
{
PhotoIdAddParm *parm = (PhotoIdAddParm*)data;
-
+
switch (state) {
case PHOTO_ID_ADD_COMMAND:
PRINT ((fd, "addphoto"));
@@ -2088,21 +2131,24 @@ photoid_add_action (guint state, gpointer data, int fd)
g_return_val_if_reached (GPG_E (GPG_ERR_GENERAL));
break;
}
-
+
seahorse_util_print_fd (fd, "\n");
return GPG_OK;
}
-static guint
-photoid_add_transit (guint current_state, gpgme_status_code_t status,
- const gchar *args, gpointer data, gpgme_error_t *err)
+static unsigned int
+photoid_add_transit (unsigned int current_state,
+ const char *status,
+ const char *args,
+ void *data,
+ gpgme_error_t *err)
{
- guint next_state;
-
+ unsigned int next_state;
+
switch (current_state) {
-
+
case PHOTO_ID_ADD_START:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
next_state = PHOTO_ID_ADD_COMMAND;
else {
*err = GPG_E (GPG_ERR_GENERAL);
@@ -2110,39 +2156,39 @@ photoid_add_transit (guint current_state, gpgme_status_code_t status,
}
break;
case PHOTO_ID_ADD_COMMAND:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, "photoid.jpeg.add")) {
- next_state = PHOTO_ID_ADD_URI;
- } else {
- *err = GPG_E (GPG_ERR_GENERAL);
- g_return_val_if_reached (PHOTO_ID_ADD_ERROR);
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, "photoid.jpeg.add")) {
+ next_state = PHOTO_ID_ADD_URI;
+ } else {
+ *err = GPG_E (GPG_ERR_GENERAL);
+ g_return_val_if_reached (PHOTO_ID_ADD_ERROR);
}
break;
case PHOTO_ID_ADD_URI:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT)) {
- next_state = PHOTO_ID_ADD_QUIT;
- } else if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, "photoid.jpeg.size")) {
- next_state = PHOTO_ID_ADD_BIG;
- } else {
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT)) {
+ next_state = PHOTO_ID_ADD_QUIT;
+ } else if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, "photoid.jpeg.size")) {
+ next_state = PHOTO_ID_ADD_BIG;
+ } else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (PHOTO_ID_ADD_ERROR);
}
- break;
+ break;
case PHOTO_ID_ADD_BIG:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT)) {
- next_state = PHOTO_ID_ADD_QUIT;
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT)) {
+ next_state = PHOTO_ID_ADD_QUIT;
/* This happens when the file is invalid or can't be accessed */
- } else if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, "photoid.jpeg.add")) {
+ } else if (g_str_equal (status, "GET_LINE") && g_str_equal (args, "photoid.jpeg.add")) {
*err = GPG_E (GPG_ERR_USER_1);
return PHOTO_ID_ADD_ERROR;
- } else {
+ } else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (PHOTO_ID_ADD_ERROR);
}
break;
case PHOTO_ID_ADD_QUIT:
- if (status == GPGME_STATUS_GET_BOOL && g_str_equal (args, SAVE)) {
- next_state = PHOTO_ID_ADD_SAVE;
- } else {
+ if (g_str_equal (status, "GET_BOOL") && g_str_equal (args, SAVE)) {
+ next_state = PHOTO_ID_ADD_SAVE;
+ } else {
*err = GPG_E (GPG_ERR_GENERAL);
g_return_val_if_reached (PHOTO_ID_ADD_ERROR);
}
@@ -2152,57 +2198,57 @@ photoid_add_transit (guint current_state, gpgme_status_code_t status,
g_return_val_if_reached (PHOTO_ID_ADD_ERROR);
break;
}
-
+
return next_state;
}
-gpgme_error_t
-seahorse_gpgme_key_op_photo_add (SeahorseGpgmeKey *pkey, const gchar *filename)
-{
- SeahorseEditParm *parms;
- PhotoIdAddParm photoid_add_parm;
- gpgme_key_t key;
-
- g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (pkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
- g_return_val_if_fail (filename, GPG_E (GPG_ERR_INV_VALUE));
-
- key = seahorse_gpgme_key_get_public (pkey);
- g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
-
- photoid_add_parm.filename = filename;
-
- parms = seahorse_edit_parm_new (PHOTO_ID_ADD_START, photoid_add_action,
- photoid_add_transit, &photoid_add_parm);
-
- return edit_refresh_gpgme_key (NULL, key, parms);
+gpgme_error_t
+seahorse_gpgme_key_op_photo_add (SeahorseGpgmeKey *pkey, const char *filename)
+{
+ SeahorseEditParm *parms;
+ PhotoIdAddParm photoid_add_parm;
+ gpgme_key_t key;
+
+ g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (pkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+ g_return_val_if_fail (filename, GPG_E (GPG_ERR_INV_VALUE));
+
+ key = seahorse_gpgme_key_get_public (pkey);
+ g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
+
+ photoid_add_parm.filename = filename;
+
+ parms = seahorse_edit_parm_new (PHOTO_ID_ADD_START, photoid_add_action,
+ photoid_add_transit, &photoid_add_parm);
+
+ return edit_refresh_gpgme_key (NULL, key, parms);
}
-gpgme_error_t
+gpgme_error_t
seahorse_gpgme_key_op_photo_delete (SeahorseGpgmePhoto *photo)
{
- DelUidParm del_uid_parm;
- SeahorseEditParm *parms;
- gpgme_key_t key;
-
- g_return_val_if_fail (SEAHORSE_IS_GPGME_PHOTO (photo), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
-
- key = seahorse_gpgme_photo_get_pubkey (photo);
- g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
-
- del_uid_parm.index = seahorse_gpgme_photo_get_index (photo);
-
- parms = seahorse_edit_parm_new (DEL_UID_START, del_uid_action,
- del_uid_transit, &del_uid_parm);
-
- return edit_refresh_gpgme_key (NULL, key, parms);
+ DelUidParm del_uid_parm;
+ SeahorseEditParm *parms;
+ gpgme_key_t key;
+
+ g_return_val_if_fail (SEAHORSE_IS_GPGME_PHOTO (photo), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+
+ key = seahorse_gpgme_photo_get_pubkey (photo);
+ g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
+
+ del_uid_parm.index = seahorse_gpgme_photo_get_index (photo);
+
+ parms = seahorse_edit_parm_new (DEL_UID_START, del_uid_action,
+ del_uid_transit, &del_uid_parm);
+
+ return edit_refresh_gpgme_key (NULL, key, parms);
}
typedef struct {
- GList *photos;
- guint uid;
- guint num_uids;
- char *output_file;
- gpgme_key_t key;
+ GList *photos;
+ unsigned int uid;
+ unsigned int num_uids;
+ char *output_file;
+ gpgme_key_t key;
} PhotoIdLoadParm;
typedef enum {
@@ -2216,181 +2262,184 @@ typedef enum {
/* action helper for getting a list of photoids attached to a #SeahorseKey */
static gpgme_error_t
-photoid_load_action (guint state, gpointer data, int fd)
+photoid_load_action (unsigned int state, gpointer data, int fd)
{
PhotoIdLoadParm *parm = (PhotoIdLoadParm*)data;
-
+
switch (state) {
- case PHOTO_ID_LOAD_SELECT:
- PRINTF ((fd, "uid %d", parm->uid));
- break;
- case PHOTO_ID_LOAD_OUTPUT_IMAGE:
+ case PHOTO_ID_LOAD_SELECT:
+ PRINTF ((fd, "uid %d", parm->uid));
+ break;
+ case PHOTO_ID_LOAD_OUTPUT_IMAGE:
PRINT ((fd, "showphoto"));
- break;
- case PHOTO_ID_LOAD_DESELECT:
- PRINTF ((fd, "uid %d", parm->uid));
- break;
- case PHOTO_ID_LOAD_QUIT:
+ break;
+ case PHOTO_ID_LOAD_DESELECT:
+ PRINTF ((fd, "uid %d", parm->uid));
+ break;
+ case PHOTO_ID_LOAD_QUIT:
PRINT ((fd, QUIT));
- break;
- default:
- g_return_val_if_reached (GPG_E (GPG_ERR_GENERAL));
- break;
+ break;
+ default:
+ g_return_val_if_reached (GPG_E (GPG_ERR_GENERAL));
+ break;
}
-
+
seahorse_util_print_fd (fd, "\n");
return GPG_OK;
}
-static guint
-photoid_load_transit (guint current_state, gpgme_status_code_t status,
- const gchar *args, gpointer data, gpgme_error_t *err)
-{
- PhotoIdLoadParm *parm = (PhotoIdLoadParm*)data;
- SeahorseGpgmePhoto *photo;
- GdkPixbuf *pixbuf = NULL;
- guint next_state = 0;
- struct stat st;
- GError *error = NULL;
-
- switch (current_state) {
-
- /* start, get photoid list */
- case PHOTO_ID_LOAD_START:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT))
- next_state = PHOTO_ID_LOAD_SELECT;
- else {
- *err = GPG_E (GPG_ERR_GENERAL);
- g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
- }
- break;
-
- case PHOTO_ID_LOAD_SELECT:
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT)) {
- next_state = PHOTO_ID_LOAD_OUTPUT_IMAGE;
- } else {
- *err = GPG_E (GPG_ERR_GENERAL);
- g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
- }
- break;
-
- case PHOTO_ID_LOAD_OUTPUT_IMAGE:
-
- if (g_file_test (parm->output_file, G_FILE_TEST_EXISTS)) {
-
- photo = seahorse_gpgme_photo_new (parm->key, NULL, parm->uid);
- parm->photos = g_list_append (parm->photos, photo);
-
- if (g_stat (parm->output_file, &st) == -1) {
- g_warning ("couldn't stat output image file '%s': %s", parm->output_file,
- g_strerror (errno));
-
- } else if (st.st_size > 0) {
- pixbuf = gdk_pixbuf_new_from_file (parm->output_file, &error);
- if (pixbuf == NULL) {
- g_warning ("Loading image %s failed: %s", parm->output_file,
- error && error->message ? error->message : "unknown");
- g_error_free (error);
- }
- }
-
- g_unlink (parm->output_file);
-
- /* Load a 'missing' icon */
- if (!pixbuf) {
- pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
- "gnome-unknown", 48, 0, NULL);
- }
-
- seahorse_pgp_photo_set_pixbuf (SEAHORSE_PGP_PHOTO (photo), pixbuf);
- g_object_unref (pixbuf);
- }
-
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT)) {
- next_state = PHOTO_ID_LOAD_DESELECT;
- } else {
- *err = GPG_E (GPG_ERR_GENERAL);
- g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
- }
- break;
-
- case PHOTO_ID_LOAD_DESELECT:
- if (parm->uid < parm->num_uids) {
- parm->uid = parm->uid + 1;
- g_debug ("PhotoIDLoad Next UID %i", parm->uid);
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT)) {
- next_state = PHOTO_ID_LOAD_SELECT;
- } else {
- *err = GPG_E (GPG_ERR_GENERAL);
- g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
- }
- } else {
- if (status == GPGME_STATUS_GET_LINE && g_str_equal (args, PROMPT)) {
- next_state = PHOTO_ID_LOAD_QUIT;
- g_debug ("PhotoIDLoad Quiting Load");
- } else {
- *err = GPG_E (GPG_ERR_GENERAL);
- g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
- }
- }
- break;
-
- case PHOTO_ID_LOAD_QUIT:
- /* Shouldn't be reached */
- *err = GPG_E (GPG_ERR_GENERAL);
- g_debug ("PhotoIDLoad Reached Quit");
- g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
- break;
-
- default:
- *err = GPG_E (GPG_ERR_GENERAL);
- g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
- break;
- }
-
- return next_state;
+static unsigned int
+photoid_load_transit (unsigned int current_state,
+ const char *status,
+ const char *args,
+ void *data,
+ gpgme_error_t *err)
+{
+ PhotoIdLoadParm *parm = (PhotoIdLoadParm*)data;
+ SeahorseGpgmePhoto *photo;
+ GdkPixbuf *pixbuf = NULL;
+ unsigned int next_state = 0;
+ struct stat st;
+ GError *error = NULL;
+
+ switch (current_state) {
+
+ /* start, get photoid list */
+ case PHOTO_ID_LOAD_START:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT))
+ next_state = PHOTO_ID_LOAD_SELECT;
+ else {
+ *err = GPG_E (GPG_ERR_GENERAL);
+ g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
+ }
+ break;
+
+ case PHOTO_ID_LOAD_SELECT:
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT)) {
+ next_state = PHOTO_ID_LOAD_OUTPUT_IMAGE;
+ } else {
+ *err = GPG_E (GPG_ERR_GENERAL);
+ g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
+ }
+ break;
+
+ case PHOTO_ID_LOAD_OUTPUT_IMAGE:
+
+ if (g_file_test (parm->output_file, G_FILE_TEST_EXISTS)) {
+
+ photo = seahorse_gpgme_photo_new (parm->key, NULL, parm->uid);
+ parm->photos = g_list_append (parm->photos, photo);
+
+ if (g_stat (parm->output_file, &st) == -1) {
+ g_warning ("couldn't stat output image file '%s': %s", parm->output_file,
+ g_strerror (errno));
+
+ } else if (st.st_size > 0) {
+ pixbuf = gdk_pixbuf_new_from_file (parm->output_file, &error);
+ if (pixbuf == NULL) {
+ g_warning ("Loading image %s failed: %s", parm->output_file,
+ error && error->message ? error->message : "unknown");
+ g_error_free (error);
+ }
+ }
+
+ g_unlink (parm->output_file);
+
+ /* Load a 'missing' icon */
+ if (!pixbuf) {
+ pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
+ "gnome-unknown", 48, 0, NULL);
+ }
+
+ seahorse_pgp_photo_set_pixbuf (SEAHORSE_PGP_PHOTO (photo), pixbuf);
+ g_object_unref (pixbuf);
+ }
+
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT)) {
+ next_state = PHOTO_ID_LOAD_DESELECT;
+ } else {
+ *err = GPG_E (GPG_ERR_GENERAL);
+ g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
+ }
+ break;
+
+ case PHOTO_ID_LOAD_DESELECT:
+ if (parm->uid < parm->num_uids) {
+ parm->uid = parm->uid + 1;
+ g_debug ("PhotoIDLoad Next UID %i", parm->uid);
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT)) {
+ next_state = PHOTO_ID_LOAD_SELECT;
+ } else {
+ *err = GPG_E (GPG_ERR_GENERAL);
+ g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
+ }
+ } else {
+ if (g_str_equal (status, "GET_LINE") && g_str_equal (args, PROMPT)) {
+ next_state = PHOTO_ID_LOAD_QUIT;
+ g_debug ("PhotoIDLoad Quiting Load");
+ } else {
+ *err = GPG_E (GPG_ERR_GENERAL);
+ g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
+ }
+ }
+ break;
+
+ case PHOTO_ID_LOAD_QUIT:
+ /* Shouldn't be reached */
+ *err = GPG_E (GPG_ERR_GENERAL);
+ g_debug ("PhotoIDLoad Reached Quit");
+ g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
+ break;
+
+ default:
+ *err = GPG_E (GPG_ERR_GENERAL);
+ g_return_val_if_reached (PHOTO_ID_LOAD_ERROR);
+ break;
+ }
+
+ return next_state;
}
-gpgme_error_t
+gpgme_error_t
seahorse_gpgme_key_op_photos_load (SeahorseGpgmeKey *pkey)
{
- /* Make sure there's enough room for the .jpg extension */
+ /* Make sure there's enough room for the .jpg extension */
char image_path[] = "/tmp/seahorse-photoid-XXXXXX\0\0\0\0";
- PhotoIdLoadParm photoid_load_parm;
- gpgme_error_t gerr;
- gpgme_key_t key;
- const gchar *keyid;
- gint fd;
-
- g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (pkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
-
- key = seahorse_gpgme_key_get_public (pkey);
- g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
- g_return_val_if_fail (key->subkeys && key->subkeys->keyid, GPG_E (GPG_ERR_INV_VALUE));
- keyid = key->subkeys->keyid;
-
- g_debug ("PhotoIDLoad Start");
-
- fd = g_mkstemp (image_path);
- if(fd == -1) {
- gerr = GPG_E(GPG_ERR_GENERAL);
-
- } else {
-
- g_unlink(image_path);
- close(fd);
- strcat (image_path, ".jpg");
-
- photoid_load_parm.uid = 1;
- photoid_load_parm.num_uids = 0;
- photoid_load_parm.photos = NULL;
- photoid_load_parm.output_file = image_path;
- photoid_load_parm.key = key;
-
- g_debug ("PhotoIdLoad KeyID %s", keyid);
- gerr = seahorse_gpg_op_num_uids (NULL, keyid, &(photoid_load_parm.num_uids));
- g_debug ("PhotoIDLoad Number of UIDs %i", photoid_load_parm.num_uids);
+ PhotoIdLoadParm photoid_load_parm;
+ gpgme_error_t gerr;
+ gpgme_key_t key;
+ const char *keyid;
+ int fd;
+
+ g_return_val_if_fail (SEAHORSE_GPGME_IS_KEY (pkey), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+
+ key = seahorse_gpgme_key_get_public (pkey);
+ g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
+ g_return_val_if_fail (key->subkeys && key->subkeys->keyid, GPG_E (GPG_ERR_INV_VALUE));
+ keyid = key->subkeys->keyid;
+
+ g_debug ("PhotoIDLoad Start");
+
+ fd = g_mkstemp (image_path);
+ if(fd == -1) {
+ gerr = GPG_E(GPG_ERR_GENERAL);
+
+ } else {
+
+ g_unlink(image_path);
+ close(fd);
+ strcat (image_path, ".jpg");
+
+ photoid_load_parm.uid = 1;
+ photoid_load_parm.num_uids = 0;
+ photoid_load_parm.photos = NULL;
+ photoid_load_parm.output_file = image_path;
+ photoid_load_parm.key = key;
+
+ g_debug ("PhotoIdLoad KeyID %s", keyid);
+ gerr = seahorse_gpg_op_num_uids (NULL, keyid, &(photoid_load_parm.num_uids));
+ g_debug ("PhotoIDLoad Number of UIDs %i", photoid_load_parm.num_uids);
if (GPG_IS_OK (gerr)) {
const char *oldpath;
@@ -2418,29 +2467,29 @@ seahorse_gpgme_key_op_photos_load (SeahorseGpgmeKey *pkey)
}
g_list_free_full (photoid_load_parm.photos, g_object_unref);
- }
+ }
- g_debug ("PhotoIDLoad Done");
+ g_debug ("PhotoIDLoad Done");
- return gerr;
+ return gerr;
}
-gpgme_error_t
+gpgme_error_t
seahorse_gpgme_key_op_photo_primary (SeahorseGpgmePhoto *photo)
{
- PrimaryParm pri_parm;
- SeahorseEditParm *parms;
- gpgme_key_t key;
-
- g_return_val_if_fail (SEAHORSE_IS_GPGME_PHOTO (photo), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
-
- key = seahorse_gpgme_photo_get_pubkey (photo);
- g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
-
- pri_parm.index = seahorse_gpgme_photo_get_index (photo);
-
- parms = seahorse_edit_parm_new (PRIMARY_START, primary_action,
- primary_transit, &pri_parm);
-
- return edit_refresh_gpgme_key (NULL, key, parms);
+ PrimaryParm pri_parm;
+ SeahorseEditParm *parms;
+ gpgme_key_t key;
+
+ g_return_val_if_fail (SEAHORSE_IS_GPGME_PHOTO (photo), GPG_E (GPG_ERR_WRONG_KEY_USAGE));
+
+ key = seahorse_gpgme_photo_get_pubkey (photo);
+ g_return_val_if_fail (key, GPG_E (GPG_ERR_INV_VALUE));
+
+ pri_parm.index = seahorse_gpgme_photo_get_index (photo);
+
+ parms = seahorse_edit_parm_new (PRIMARY_START, primary_action,
+ primary_transit, &pri_parm);
+
+ return edit_refresh_gpgme_key (NULL, key, parms);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]