Example #1
0
static void
on_parser_parsed (GcrParser *parser, gpointer user_data)
{
	GcrSimpleCollection *collection = user_data;
	GcrSimpleCollection *testcol;
	GcrRenderer *renderer;
	gchar *group;

	renderer = gcr_renderer_create (gcr_parser_get_parsed_label (parser),
	                                gcr_parser_get_parsed_attributes (parser));
	if (renderer == NULL)
		return;

	if (GCR_IS_CERTIFICATE (renderer))
		group = gcr_certificate_get_subject_part (GCR_CERTIFICATE (renderer), "O");
	else
		group = g_strdup (G_OBJECT_TYPE_NAME (renderer));


	testcol = test_collection_instance (group);
	if (!gcr_simple_collection_contains (collection, G_OBJECT (testcol)))
		gcr_simple_collection_add (collection, G_OBJECT (testcol));

	gcr_simple_collection_add (GCR_SIMPLE_COLLECTION (testcol), G_OBJECT (renderer));
	g_object_unref (renderer);
	g_object_unref (testcol);
	g_free (group);
}
static void
on_parser_parsed (GcrParser *parser, GcrImporter *self)
{
	GP11Attributes *attrs;
	
	g_return_if_fail (GCR_IS_PARSER (parser));
	g_return_if_fail (GCR_IS_IMPORTER (self));
	
	attrs = gcr_parser_get_parsed_attributes (parser);
	g_return_if_fail (attrs);
	g_queue_push_tail (&self->pv->queue, gp11_attributes_ref (attrs));
}
static void
parsed_item (GcrParser *par, gpointer user_data)
{
	GP11Attributes *attrs;
	const gchar *description;
	const gchar *label;
	
	g_assert (GCR_IS_PARSER (par));
	g_assert (par == parser);
	g_assert (par == user_data);
	
	attrs = gcr_parser_get_parsed_attributes (parser);
	description = gcr_parser_get_parsed_description (parser);
	label = gcr_parser_get_parsed_label (parser);
	
	g_print ("parsed %s '%s' at: %s\n", description, label, filedesc);
}
Example #4
0
static void
on_parser_parsed (GcrParser *parser,
                  gpointer user_data)
{
	GcrViewer *viewer;
	GcrRenderer *renderer;
	GtkDialog *dialog = GTK_DIALOG (user_data);

	viewer = gcr_viewer_new_scrolled ();
	renderer = _gcr_certificate_request_renderer_new_for_attributes (gcr_parser_get_parsed_label (parser),
	                                                             gcr_parser_get_parsed_attributes (parser));
	gcr_viewer_add_renderer (viewer, renderer);
	g_object_unref (renderer);
	gtk_widget_show (GTK_WIDGET (viewer));
	gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (dialog)), GTK_WIDGET (viewer));

	gtk_container_set_border_width (GTK_CONTAINER (dialog), 20);
}
static gboolean
on_parser_authenticate (GcrParser *parser, gint count, GcrImporter *self)
{
	GcrImportDialog *dialog;
	GP11Attributes *attrs;
	const gchar *password;
	gchar *text, *label;
	GP11Slot *slot;
	gulong klass;
	
	dialog = _gcr_import_dialog_new ();
	
	if (self->pv->slot)
		_gcr_import_dialog_set_selected_slot (dialog, self->pv->slot);
	
	/* Figure out the text for the dialog */
	attrs = gcr_parser_get_parsed_attributes (parser);
	g_return_val_if_fail (attrs, FALSE);
	
	if (!gp11_attributes_find_ulong (attrs, CKA_CLASS, &klass))
		klass = (gulong)-1;
	if (!gp11_attributes_find_string (attrs, CKA_LABEL, &label))
		label = NULL;
	
	text = prepare_auth_secondary (klass, label);
	_gcr_import_dialog_set_primary_text (dialog, prepare_auth_primary (klass));
	_gcr_import_dialog_set_secondary_text (dialog, text);
	g_free (label);
	g_free (text);
	
	if (!_gcr_import_dialog_run (dialog, NULL))
		return FALSE;

	slot = _gcr_import_dialog_get_selected_slot (dialog);
	gcr_importer_set_slot (self, slot);
	
	password = _gcr_import_dialog_get_password (dialog);
	gcr_parser_add_password (parser, password);
	
	g_object_unref (dialog);
	self->pv->prompted = TRUE;
	return TRUE;
}
static void
on_parser_parsed (GcrParser *parser, gpointer unused)
{
	GcrCertificateWidget *details;
	GtkDialog *dialog;

	dialog = GTK_DIALOG (gtk_dialog_new ());
	g_object_ref_sink (dialog);

	details = g_object_new (GCR_TYPE_CERTIFICATE_WIDGET,
	                        "attributes", gcr_parser_get_parsed_attributes (parser),
	                        NULL);

	gtk_widget_show (GTK_WIDGET (details));
	gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (dialog)), GTK_WIDGET (details));

	gtk_container_set_border_width (GTK_CONTAINER (dialog), 20);
	gtk_dialog_run (dialog);
	gtk_widget_destroy (GTK_WIDGET (dialog));

	g_object_unref (dialog);
}