0.9.6claws74
[claws.git] / src / rfc2015.c
index cbe5351cb56460c7fcb9fab7209775751ccf927d..0aa4fd2df835acd8183176ffed5eb763b2a99799 100644 (file)
@@ -126,302 +126,6 @@ rfc2015_secure_remove (const char *fname)
 }
 
 
-static const gchar *
-sig_status_to_string (GpgmeSigStat status)
-{
-    const gchar *result;
-
-    switch (status) {
-      case GPGME_SIG_STAT_NONE:
-        result = _("Oops: Signature not verified");
-        break;
-      case GPGME_SIG_STAT_NOSIG:
-        result = _("No signature found");
-        break;
-      case GPGME_SIG_STAT_GOOD:
-        result = _("Good signature");
-        break;
-      case GPGME_SIG_STAT_GOOD_EXP:    
-       result = _("Good signature but it has expired");
-       break;
-      case GPGME_SIG_STAT_GOOD_EXPKEY:
-       result = _("Good signature but the key has expired");
-       break;
-      case GPGME_SIG_STAT_BAD:
-        result = _("BAD signature");
-        break;
-      case GPGME_SIG_STAT_NOKEY:
-        result = _("No public key to verify the signature");
-        break;
-      case GPGME_SIG_STAT_ERROR:
-        result = _("Error verifying the signature");
-        break;
-      case GPGME_SIG_STAT_DIFF:
-        result = _("Different results for signatures");
-        break;
-      default:
-       result = _("Error: Unknown status");
-       break;
-    }
-
-    return result;
-}
-
-static const gchar *
-sig_status_with_name (GpgmeSigStat status)
-{
-    const gchar *result;
-
-    switch (status) {
-      case GPGME_SIG_STAT_NONE:
-        result = _("Oops: Signature not verified");
-        break;
-      case GPGME_SIG_STAT_NOSIG:
-        result = _("No signature found");
-        break;
-      case GPGME_SIG_STAT_GOOD:
-        result = _("Good signature from \"%s\"");
-        break;
-      case GPGME_SIG_STAT_GOOD_EXP:
-        result = _("Good signature from \"%s\" but it has expired");
-        break;
-      case GPGME_SIG_STAT_GOOD_EXPKEY:
-        result = _("Good signature from \"%s\" but the key has expired");
-        break;
-      case GPGME_SIG_STAT_BAD:
-        result = _("BAD signature from \"%s\"");
-        break;
-      case GPGME_SIG_STAT_NOKEY:
-        result = _("No public key to verify the signature");
-        break;
-      case GPGME_SIG_STAT_ERROR:
-        result = _("Error verifying the signature");
-        break;
-      case GPGME_SIG_STAT_DIFF:
-        result = _("Different results for signatures");
-        break;
-      default:
-       result = _("Error: Unknown status");
-       break;
-    }
-
-    return result;
-}
-
-static void
-sig_status_for_key(GString *str, GpgmeCtx ctx, GpgmeSigStat status, 
-                  GpgmeKey key, const gchar *fpr)
-{
-       gint idx = 0;
-       const char *uid;
-
-       uid = gpgme_key_get_string_attr (key, GPGME_ATTR_USERID, NULL, idx);
-       if (uid == NULL) {
-               g_string_sprintfa (str, "%s\n",
-                                  sig_status_to_string (status));
-               if ((fpr != NULL) && (*fpr != '\0'))
-                       g_string_sprintfa (str, "Key fingerprint: %s\n", fpr);
-               g_string_append (str, _("Cannot find user ID for this key."));
-               sig_expiration_check(str, ctx, key, status, 0);
-               return;
-       }
-       g_string_sprintfa (str, sig_status_with_name (status), uid);
-       g_string_append (str, "\n");
-
-       while (1) {
-               uid = gpgme_key_get_string_attr (key, GPGME_ATTR_USERID,
-                                                NULL, ++idx);
-               if (uid == NULL)
-                       break;
-               g_string_sprintfa (str, _("                aka \"%s\"\n"),
-                                  uid);
-       }
-       sig_expiration_check(str, ctx, key, status, 0);
-}
-
-static void
-sig_expiration_check(GString *str, GpgmeCtx ctx, GpgmeKey key, 
-                    GpgmeSigStat status, int idx)
-{
-       if (status == GPGME_SIG_STAT_GOOD_EXP)
-               sig_expired(str, ctx, idx);
-       else if (status == GPGME_SIG_STAT_GOOD_EXPKEY)
-               sig_key_expired(str, key, idx);
-}
-
-static void
-sig_expired(GString *str, GpgmeCtx ctx, int idx)
-{
-       unsigned long exp_time;
-       exp_time = gpgme_get_sig_ulong_attr(ctx, idx, GPGME_ATTR_EXPIRE, 0);
-       g_string_sprintfa(str, _("Signature expired %s"), ctime(&exp_time));    
-}
-
-static void
-sig_key_expired(GString *str, GpgmeKey key, int idx)
-{
-       unsigned long exp_time;
-       exp_time = gpgme_key_get_ulong_attr(key, GPGME_ATTR_EXPIRE, NULL, idx);
-       g_string_sprintfa(str, _("Key expired %s"), ctime(&exp_time));  
-}
-
-static gchar *
-sig_status_full (GpgmeCtx ctx)
-{
-       GString *str;
-       gint sig_idx = 0;
-       GpgmeError err;
-       GpgmeSigStat status;
-       GpgmeKey key;
-       const char *fpr;
-       time_t created;
-       struct tm *ctime_val;
-       char ctime_str[80];
-       gchar *retval;
-
-       str = g_string_new ("");
-
-       fpr = gpgme_get_sig_status (ctx, sig_idx, &status, &created);
-       while (fpr != NULL) {
-               if (created != 0) {
-                       ctime_val = localtime (&created);
-                       strftime (ctime_str, sizeof (ctime_str), "%c", 
-                                 ctime_val);
-                       g_string_sprintfa (str,
-                                          _("Signature made at %s\n"),
-                                          ctime_str);
-               }
-               err = gpgme_get_sig_key (ctx, sig_idx, &key);
-               if (err != 0) {
-                       g_string_sprintfa (str, "%s\n",
-                                          sig_status_to_string (status));
-                       if ((fpr != NULL) && (*fpr != '\0'))
-                               g_string_sprintfa (str, 
-                                                  _("Key fingerprint: %s\n"),
-                                                  fpr);
-               } else {
-                       const char *key_id_str;
-                       
-                       sig_status_for_key (str, ctx, status, key, fpr);
-                       key_id_str = gpgme_key_get_string_attr(key, 
-                                               GPGME_ATTR_KEYID, NULL, 0);
-                       key_id_str += 8;
-                       g_string_sprintfa (str, _("Key ID: %s\n"), key_id_str);
-                       gpgme_key_unref (key);
-               }
-               g_string_append (str, "\n\n");
-
-               fpr = gpgme_get_sig_status (ctx, ++sig_idx, &status, &created);
-       }
-
-       retval = str->str;
-       g_string_free (str, FALSE);
-       return retval;
-}
-
-static void check_signature (MimeInfo *mimeinfo, MimeInfo *partinfo, FILE *fp)
-{
-#if 0 /* FIXME */
-    GpgmeCtx ctx = NULL;
-    GpgmeError err;
-    GpgmeData sig = NULL, text = NULL;
-    GpgmeSigStat status = GPGME_SIG_STAT_NONE;
-    GpgmegtkSigStatus statuswindow = NULL;
-    const char *result = NULL;
-    gchar *tmp_file;
-    gint n_exclude_chars = 0;
-
-    if (prefs_common.gpg_signature_popup)
-       statuswindow = gpgmegtk_sig_status_create ();
-
-    err = gpgme_new (&ctx);
-    if (err) {
-       debug_print ("gpgme_new failed: %s\n", gpgme_strerror (err));
-       goto leave;
-    }
-
-    /* don't include the last empty line.
-       It does not belong to the signed text */
-    if (mimeinfo->children->length > 0) {
-       if (fseek(fp, mimeinfo->children->offset + mimeinfo->children->length - 1,
-                 SEEK_SET) < 0) {
-           perror("fseek");
-           goto leave;
-       }
-       if (fgetc(fp) == '\n') {
-           n_exclude_chars++;
-           if (mimeinfo->children->length > 1) {
-               if (fseek(fp, mimeinfo->children->offset + mimeinfo->children->length - 2,
-                         SEEK_SET) < 0) {
-                   perror("fseek");
-                   goto leave;
-               }
-               if (fgetc(fp) == '\r')
-                   n_exclude_chars++;
-           }
-       }
-    }
-
-    /* canonicalize the file part. */
-    tmp_file = get_tmp_file();
-    if (copy_file_part(fp, mimeinfo->children->offset,
-                      mimeinfo->children->length - n_exclude_chars,
-                      tmp_file) < 0) {
-       g_free(tmp_file);
-       goto leave;
-    }
-    if (canonicalize_file_replace(tmp_file) < 0) {
-       unlink(tmp_file);
-       g_free(tmp_file);
-       goto leave;
-    }
-
-    err = gpgme_data_new_from_file(&text, tmp_file, 1);
-
-    unlink(tmp_file);
-    g_free(tmp_file);
-
-    if (!err)
-       err = gpgme_data_new_from_filepart (&sig, NULL, fp,
-                                           partinfo->offset, partinfo->length);
-    if (err) {
-        debug_print ("gpgme_data_new_from_filepart failed: %s\n",
-                  gpgme_strerror (err));
-        goto leave;
-    }
-
-    err = gpgme_op_verify (ctx, sig, text, &status);
-    if (err)  {
-        debug_print ("gpgme_op_verify failed: %s\n", gpgme_strerror (err));
-        goto leave;
-    }
-
-    /* FIXME: check what the heck this sig_status_full stuff is.
-     * it should better go into sigstatus.c */
-    g_free (partinfo->sigstatus_full);
-    partinfo->sigstatus_full = sig_status_full (ctx);
-
-leave:
-    result = gpgmegtk_sig_status_to_string(status);
-    debug_print("verification status: %s\n", result);
-    if (prefs_common.gpg_signature_popup)
-       gpgmegtk_sig_status_update (statuswindow, ctx);
-
-    g_free (partinfo->sigstatus);
-    partinfo->sigstatus = g_strdup (result);
-    partinfo->sig_ok = (status == GPGME_SIG_STAT_GOOD);
-    partinfo->sig_unknown = (status == GPGME_SIG_STAT_NOKEY);
-    partinfo->sig_expired = (status == GPGME_SIG_STAT_GOOD_EXP);
-    partinfo->key_expired = (status == GPGME_SIG_STAT_GOOD_EXPKEY);
-
-    gpgme_data_release (sig);
-    gpgme_data_release (text);
-    gpgme_release (ctx);
-    if (prefs_common.gpg_signature_popup)
-       gpgmegtk_sig_status_destroy (statuswindow);
-#endif
-}
-
 /*
  * Copy a gpgme data object to a temporary file and
  * return this filename