Ejemplo n.º 1
0
static void
prepare_unlock_object (GkmWrapPrompt *self, const gchar *label, CK_OBJECT_CLASS klass)
{
	GkuPrompt *prompt;
	gchar *text;

	g_assert (GKM_WRAP_IS_PROMPT (self));

	prompt = GKU_PROMPT (self);

	gku_prompt_set_title (prompt, prepare_unlock_object_title (klass));
	gku_prompt_set_primary_text (prompt, prepare_unlock_object_primary (klass));

	text = prepare_unlock_object_secondary (klass, label);
	gku_prompt_set_secondary_text (prompt, text);
	g_free (text);

	gku_prompt_hide_widget (prompt, "name_area");
	gku_prompt_hide_widget (prompt, "confirm_area");
	gku_prompt_show_widget (prompt, "details_area");
	gku_prompt_show_widget (prompt, "password_area");
	gku_prompt_show_widget (prompt, "options_area");

	/* TODO: After string freeze need to add a reason */
	if (!gkm_wrap_login_is_usable ())
		gku_prompt_set_unlock_sensitive (prompt, GCR_UNLOCK_OPTION_ALWAYS, FALSE, NULL);
}
Ejemplo n.º 2
0
static void
prepare_unlock_keyring_other (GkmWrapPrompt *self, const gchar *label)
{
	GkuPrompt *prompt;
	gchar *text;

	g_assert (GKM_WRAP_IS_PROMPT (self));

	prompt = GKU_PROMPT (self);

	gku_prompt_set_title (prompt, _("Unlock Keyring"));

	text = g_markup_printf_escaped (_("Enter password for keyring '%s' to unlock"), label);
	gku_prompt_set_primary_text (prompt, text);
	g_free (text);

	text = g_markup_printf_escaped (_("An application wants access to the keyring '%s', but it is locked"), label);
	gku_prompt_set_secondary_text (prompt, text);
	g_free (text);

	gku_prompt_hide_widget (prompt, "name_area");
	gku_prompt_hide_widget (prompt, "confirm_area");
	gku_prompt_show_widget (prompt, "details_area");
	gku_prompt_show_widget (prompt, "password_area");
	gku_prompt_show_widget (prompt, "options_area");

	if (!gkm_wrap_login_is_usable ())
		gku_prompt_set_unlock_sensitive (prompt, GCR_UNLOCK_OPTION_ALWAYS, FALSE, NULL);
}
Ejemplo n.º 3
0
static void
prepare_unlock_keyring_login (GkmWrapPrompt *self)
{
	GkuPrompt *prompt;
	const gchar *text;

	g_assert (GKM_WRAP_IS_PROMPT (self));

	prompt = GKU_PROMPT (self);

	gku_prompt_set_title (prompt, _("Unlock Login Keyring"));

	text = _("Enter password to unlock your login keyring");
	gku_prompt_set_primary_text (prompt, text);

	if (gkm_wrap_login_did_unlock_fail ())
		text = _("The password you use to log in to your computer no longer matches that of your login keyring.");
	else
		text = _("The login keyring did not get unlocked when you logged into your computer.");
	gku_prompt_set_secondary_text (prompt, text);

	gku_prompt_hide_widget (prompt, "name_area");
	gku_prompt_hide_widget (prompt, "confirm_area");
	gku_prompt_show_widget (prompt, "password_area");
}
Ejemplo n.º 4
0
static void
prepare_create_prompt (GkdSecretCreate *self)
{
	GkuPrompt *prompt;
	gchar *label;
	gchar *text;

	g_assert (GKD_SECRET_IS_CREATE (self));
	g_assert (self->pkcs11_attrs);

	prompt = GKU_PROMPT (self);

	if (!gck_attributes_find_string (self->pkcs11_attrs, CKA_LABEL, &label))
		label = g_strdup (_("Unnamed"));

	gku_prompt_reset (prompt, TRUE);

	gku_prompt_set_title (prompt, _("New Keyring Password"));
	gku_prompt_set_primary_text (prompt, _("Choose password for new keyring"));

	text = g_markup_printf_escaped (_("An application wants to create a new keyring called '%s'. "
	                                  "Choose the password you want to use for it."), label);
	gku_prompt_set_secondary_text (prompt, text);
	g_free (text);

	gku_prompt_show_widget (prompt, "password_area");
	gku_prompt_show_widget (prompt, "confirm_area");

	g_free (label);
}
Ejemplo n.º 5
0
static void
prepare_unlock_token (GkmWrapPrompt *self, CK_TOKEN_INFO_PTR tinfo)
{
	GkuPrompt *prompt;
	gchar *label;
	gchar *text;

	g_assert (GKM_WRAP_IS_PROMPT (self));

	prompt = GKU_PROMPT (self);

	label = g_strndup ((gchar*)tinfo->label, sizeof (tinfo->label));
	g_strchomp (label);

	/* Build up the prompt */
	gku_prompt_show_widget (prompt, "password_area");
	gku_prompt_hide_widget (prompt, "confirm_area");
	gku_prompt_hide_widget (prompt, "original_area");
	gku_prompt_set_title (prompt, _("Unlock certificate/key storage"));
	gku_prompt_set_primary_text (prompt, _("Enter password to unlock the certificate/key storage"));

	/* TRANSLATORS: The storage is locked, and needs unlocking before the application can use it. */
	text = g_strdup_printf (_("An application wants access to the certificate/key storage '%s', but it is locked"), label);
	gku_prompt_set_secondary_text (prompt, text);
	g_free (text);

	gku_prompt_show_widget (prompt, "details_area");
	gku_prompt_show_widget (prompt, "options_area");
	gku_prompt_set_unlock_sensitive (prompt, GCR_UNLOCK_OPTION_IDLE, FALSE, NULL);
	gku_prompt_set_unlock_sensitive (prompt, GCR_UNLOCK_OPTION_TIMEOUT, FALSE, NULL);
	gku_prompt_set_unlock_sensitive (prompt, GCR_UNLOCK_OPTION_ALWAYS,
	                                 gkm_wrap_login_is_usable (), NULL);

	g_free (label);
}
Ejemplo n.º 6
0
static void
prepare_unlock_prompt (GkmWrapPrompt *self, CK_ATTRIBUTE_PTR attrs,
                       CK_ULONG n_attrs, gboolean first)
{
	CK_ATTRIBUTE_PTR attr;
	GkuPrompt *prompt;
	const gchar *label = NULL;
	CK_OBJECT_CLASS klass;

	g_assert (GKM_WRAP_IS_PROMPT (self));

	prompt = GKU_PROMPT (self);

	/* Hard reset on first prompt, soft on later */
	gku_prompt_reset (GKU_PROMPT (prompt), first);

	/* Load up the object class */
	if (!gkm_attributes_find_ulong (attrs, n_attrs, CKA_CLASS, &klass))
		klass = (CK_ULONG)-1;

	/* Load up its label */
	attr = gkm_attributes_find (attrs, n_attrs, CKA_LABEL);
	if (attr != NULL)
		label = attr->pValue;

	/* Load up the identifier */
	attr = gkm_attributes_find (attrs, n_attrs, CKA_ID);
	if (attr != NULL && !label)
		label = attr->pValue;

	if (!label)
		label = _("Unnamed");

	if (klass == CKO_G_COLLECTION) {
		if (is_login_keyring (attrs, n_attrs))
			prepare_unlock_keyring_login (self);
		else
			prepare_unlock_keyring_other (self, label);
	} else {
		prepare_unlock_object (self, label, klass);
	}

	if (!first)
		gku_prompt_set_warning (GKU_PROMPT (self), _("The unlock password was incorrect"));
}
Ejemplo n.º 7
0
static gboolean
auto_unlock_should_attach (GkmWrapPrompt *self)
{
	GkuPrompt *prompt = GKU_PROMPT (self);
	const gchar *choice;

	if (!gku_prompt_has_response (prompt))
		return FALSE;

	choice = gku_prompt_get_unlock_choice (prompt);
	return (choice && g_str_equal (choice, GCR_UNLOCK_OPTION_ALWAYS));
}
Ejemplo n.º 8
0
static void
set_warning_wrong (GkdSecretUnlock *self)
{
	g_assert (GKD_SECRET_IS_UNLOCK (self));
	gku_prompt_set_warning (GKU_PROMPT (self), _("The unlock password was incorrect"));
}