diff options
| author | Milan Crha <mcrha@redhat.com> | 2022-08-11 18:15:55 +0200 |
|---|---|---|
| committer | Milan Crha <mcrha@redhat.com> | 2022-08-11 18:15:55 +0200 |
| commit | 1385e7259c9a5bf4478ab3a2558dcbaaa63b098e (patch) | |
| tree | 9595a7ebc11ce34608ad565439ebefc508a6d2aa /src/modules | |
| parent | 5fe79c2c6451819faf8f8b00a135489897757686 (diff) | |
| download | evolution-data-server-1385e7259c9a5bf4478ab3a2558dcbaaa63b098e.tar.gz | |
Replace GcrCertificateWidget with libedataserverui's ECertificateWidget
The GcrCertificateWidget will be removed, thus use the one provided
by the libedataserverui instead. It helps to limit spread of the GCR
in the code.
Diffstat (limited to 'src/modules')
| -rw-r--r-- | src/modules/trust-prompt/CMakeLists.txt | 9 | ||||
| -rw-r--r-- | src/modules/trust-prompt/module-trust-prompt.c | 58 | ||||
| -rw-r--r-- | src/modules/trust-prompt/trust-prompt-gtk.c | 40 | ||||
| -rw-r--r-- | src/modules/trust-prompt/trust-prompt.h | 10 |
4 files changed, 15 insertions, 102 deletions
diff --git a/src/modules/trust-prompt/CMakeLists.txt b/src/modules/trust-prompt/CMakeLists.txt index 7aed5125a..f39034642 100644 --- a/src/modules/trust-prompt/CMakeLists.txt +++ b/src/modules/trust-prompt/CMakeLists.txt @@ -5,27 +5,20 @@ set(TRUST_PROMPT_SOURCES set(TRUST_PROMPT_CFLAGS ${GNOME_PLATFORM_CFLAGS} ${GTK_CFLAGS} - ${GCR_CFLAGS} ) set(TRUST_PROMPT_INCLUDE_DIRS ${GNOME_PLATFORM_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} - ${GCR_INCLUDE_DIRS} ) set(TRUST_PROMPT_LDFLAGS ${GNOME_PLATFORM_LDFLAGS} ${GTK_LDFLAGS} - ${GCR_LDFLAGS} ) set(extra_defines) -if(WITH_GCR3) - set(extra_defines -DWITH_GCR3=1) -endif(WITH_GCR3) - -set(extra_deps) +set(extra_deps edataserverui) set(sources module-trust-prompt.c trust-prompt.h diff --git a/src/modules/trust-prompt/module-trust-prompt.c b/src/modules/trust-prompt/module-trust-prompt.c index b2379e581..151b97019 100644 --- a/src/modules/trust-prompt/module-trust-prompt.c +++ b/src/modules/trust-prompt/module-trust-prompt.c @@ -105,18 +105,6 @@ cert_errors_to_reason (GTlsCertificateFlags flags) return g_string_free (reason, FALSE); } -static void -parser_parsed_cb (GcrParser *parser, - GcrParsed **out_parsed) -{ - GcrParsed *parsed; - - parsed = gcr_parser_get_parsed (parser); - g_return_if_fail (parsed != NULL); - - *out_parsed = gcr_parsed_ref (parsed); -} - static gboolean trust_prompt_show_trust_prompt (EUserPrompterServerExtension *extension, gint prompt_id, @@ -125,25 +113,11 @@ trust_prompt_show_trust_prompt (EUserPrompterServerExtension *extension, const gchar *host, *markup, *base64_cert, *cert_errs_str; gchar *reason; gint64 cert_errs; - GcrParser *parser; - GcrParsed *parsed = NULL; - guchar *data; - gsize data_length; - gboolean success = FALSE; - GError *local_error = NULL; + gboolean success; g_return_val_if_fail (extension != NULL, FALSE); g_return_val_if_fail (parameters != NULL, FALSE); - /* Continue even if PKCS#11 module registration fails. - * Certificate details won't display correctly but the - * user can still respond to the prompt. */ - gcr_pkcs11_initialize (NULL, &local_error); - if (local_error != NULL) { - g_warning ("%s: %s", G_STRFUNC, local_error->message); - g_clear_error (&local_error); - } - host = e_named_parameters_get (parameters, "host"); markup = e_named_parameters_get (parameters, "markup"); base64_cert = e_named_parameters_get (parameters, "certificate"); @@ -156,39 +130,13 @@ trust_prompt_show_trust_prompt (EUserPrompterServerExtension *extension, cert_errs = g_ascii_strtoll (cert_errs_str, NULL, 16); reason = cert_errors_to_reason (cert_errs); - parser = gcr_parser_new (); - - g_signal_connect ( - parser, "parsed", - G_CALLBACK (parser_parsed_cb), &parsed); - - data = g_base64_decode (base64_cert, &data_length); - gcr_parser_parse_data (parser, data, data_length, &local_error); - g_free (data); - - g_object_unref (parser); - - /* Sanity check. */ - g_warn_if_fail ( - ((parsed != NULL) && (local_error == NULL)) || - ((parsed == NULL) && (local_error != NULL))); - - if (parsed != NULL) { - success = trust_prompt_show ( - extension, prompt_id, host, markup, parsed, reason); - gcr_parsed_unref (parsed); - } - - if (local_error != NULL) { - g_warning ("%s: %s", G_STRFUNC, local_error->message); - g_clear_error (&local_error); - success = FALSE; - } + success = trust_prompt_show (extension, prompt_id, host, markup, base64_cert, reason); g_free (reason); return success; } + static void trust_prompt_register_dialogs (EExtension *extension, EUserPrompterServer *server) diff --git a/src/modules/trust-prompt/trust-prompt-gtk.c b/src/modules/trust-prompt/trust-prompt-gtk.c index bcacdbeb2..a7b6c6b6c 100644 --- a/src/modules/trust-prompt/trust-prompt-gtk.c +++ b/src/modules/trust-prompt/trust-prompt-gtk.c @@ -21,14 +21,7 @@ #include <glib/gi18n-lib.h> #include <libebackend/libebackend.h> - -#define GCR_API_SUBJECT_TO_CHANGE -#ifdef WITH_GCR3 -#include <gcr/gcr.h> -#else -#include <gcr-gtk3/gcr-gtk3.h> -#endif -#undef GCR_API_SUBJECT_TO_CHANGE +#include <libedataserverui/libedataserverui.h> #include "trust-prompt.h" @@ -120,14 +113,13 @@ trust_prompt_show (EUserPrompterServerExtension *extension, gint prompt_id, const gchar *host, const gchar *markup, - GcrParsed *parsed, + const gchar *base64_certificate_der, const gchar *reason) { - GcrCertificate *certificate; + guchar *certificate_der; + gsize certificate_der_len = 0; GtkWidget *dialog, *widget; GtkGrid *grid; - const guchar *data; - gsize length; gchar *tmp; gint row = 0; @@ -191,29 +183,17 @@ trust_prompt_show (EUserPrompterServerExtension *extension, trust_prompt_add_info_line (grid, _("Reason:"), reason, FALSE, &row); - data = gcr_parsed_get_data (parsed, &length); - - certificate = gcr_simple_certificate_new (data, length); - - #ifdef WITH_GCR3 - { - GcrCertificateWidget *certificate_widget; - GckAttributes *attributes; + widget = e_certificate_widget_new (); - attributes = gcr_parsed_get_attributes (parsed); - certificate_widget = gcr_certificate_widget_new (certificate); - gcr_certificate_widget_set_attributes (certificate_widget, attributes); - - widget = GTK_WIDGET (certificate_widget); + certificate_der = g_base64_decode (base64_certificate_der, &certificate_der_len); + if (certificate_der) { + e_certificate_widget_set_der (E_CERTIFICATE_WIDGET (widget), certificate_der, certificate_der_len); + g_free (certificate_der); } - #else - widget = gcr_certificate_widget_new (certificate); - #endif + gtk_grid_attach (grid, widget, 1, row, 2, 1); gtk_widget_show (widget); - g_clear_object (&certificate); - g_object_set_data (G_OBJECT (dialog), TRUST_PROMP_ID_KEY, GINT_TO_POINTER (prompt_id)); g_signal_connect (dialog, "response", G_CALLBACK (trust_prompt_response_cb), extension); diff --git a/src/modules/trust-prompt/trust-prompt.h b/src/modules/trust-prompt/trust-prompt.h index 0bdf4e959..965753578 100644 --- a/src/modules/trust-prompt/trust-prompt.h +++ b/src/modules/trust-prompt/trust-prompt.h @@ -18,14 +18,6 @@ #ifndef TRUST_PROMPT_H #define TRUST_PROMPT_H -#define GCR_API_SUBJECT_TO_CHANGE -#ifdef WITH_GCR3 -#include <gcr/gcr.h> -#else -#include <gcr-gtk3/gcr-gtk3.h> -#endif -#undef GCR_API_SUBJECT_TO_CHANGE - #include <libebackend/libebackend.h> G_BEGIN_DECLS @@ -45,7 +37,7 @@ trust_prompt_show (EUserPrompterServerExtension *extension, gint prompt_id, const gchar *host, const gchar *markup, - GcrParsed *parsed, + const gchar *base64_certificate_der, const gchar *reason); G_END_DECLS |
