#include <glib/gi18n.h>
#include <stdio.h>
#include <errno.h>
+#if HAVE_LOCALE_H
+# include <locale.h>
+#endif
#include "sgpgme.h"
#include "privacy.h"
debug_print("err code %d\n", gpg_err_code(sig->status));
switch (gpg_err_code(sig->status)) {
case GPG_ERR_NO_ERROR:
- if ((validity != GPGME_VALIDITY_MARGINAL) &&
- (validity != GPGME_VALIDITY_FULL) &&
- (validity != GPGME_VALIDITY_ULTIMATE))
- return SIGNATURE_WARN;
- return SIGNATURE_OK;
+ switch (gpg_err_code(sig->validity)) {
+ case GPGME_VALIDITY_NEVER:
+ return SIGNATURE_INVALID;
+ case GPGME_VALIDITY_UNKNOWN:
+ case GPGME_VALIDITY_UNDEFINED:
+ case GPGME_VALIDITY_MARGINAL:
+ case GPGME_VALIDITY_FULL:
+ case GPGME_VALIDITY_ULTIMATE:
+ return SIGNATURE_OK;
+ default:
+ return SIGNATURE_CHECK_FAILED;
+ }
case GPG_ERR_SIG_EXPIRED:
case GPG_ERR_KEY_EXPIRED:
return SIGNATURE_WARN;
uname = g_strdup("<?>");
switch (gpg_err_code(sig->status)) {
case GPG_ERR_NO_ERROR:
- result = g_strdup_printf(_("Good signature from %s (Trust: %s)."),
- uname, get_validity_str(sig->validity));
+ switch (gpg_err_code(sig->validity)) {
+ case GPGME_VALIDITY_MARGINAL:
+ case GPGME_VALIDITY_FULL:
+ case GPGME_VALIDITY_ULTIMATE:
+ result = g_strdup_printf(_("Good signature from %s."), uname);
+ break;
+ case GPGME_VALIDITY_UNKNOWN:
+ case GPGME_VALIDITY_UNDEFINED:
+ case GPGME_VALIDITY_NEVER:
+ default:
+ result = g_strdup_printf(_("Good signature (untrusted) from %s."), uname);
+ break;
+ }
break;
case GPG_ERR_SIG_EXPIRED:
result = g_strdup_printf(_("Expired signature from %s."), uname);
case GPG_ERR_BAD_SIGNATURE:
result = g_strdup_printf(_("Bad signature from %s."), uname);
break;
- case GPG_ERR_NO_PUBKEY:
- result = g_strdup(_("No key available to verify this signature."));
+ case GPG_ERR_NO_PUBKEY: {
+ gchar *id = g_strdup(sig->fpr + strlen(sig->fpr)-8);
+ result = g_strdup_printf(_("Key 0x%s not available to verify this signature."), id);
+ g_free(id);
break;
+ }
default:
result = g_strdup(_("The signature has not been checked."));
break;
case GPG_ERR_NO_ERROR:
case GPG_ERR_KEY_EXPIRED:
g_string_append_printf(siginfo,
- _("Good signature from \"%s\"\n"),
- uid);
+ _("Good signature from \"%s\" (Trust: %s)\n"),
+ uid, get_validity_str(sig->validity));
break;
case GPG_ERR_SIG_EXPIRED:
g_string_append_printf(siginfo,