#include "intl.h"
#include "procmime.h"
#include "procheader.h"
-#include "base64.h"
-#include "uuencode.h"
+#include "common/base64.h"
+#include "common/uuencode.h"
#include "unmime.h"
#include "codeconv.h"
#include "utils.h"
NULL
};
-static char *mime_version_name[] = {
- "Mime-Version",
- NULL
-};
-
-
-struct passphrase_cb_info_s {
- GpgmeCtx c;
- int did_it;
-};
-
/* stolen from rfc2015.c */
static int
gpg_name_cmp(const char *a, const char *b)
return *a != *b;
}
-static const char *
-passphrase_cb (void *opaque, const char *desc, void *r_hd)
-{
- struct passphrase_cb_info_s *info = opaque;
- GpgmeCtx ctx = info ? info->c : NULL;
- const char *pass;
-
- if (!desc) {
- /* FIXME: cleanup by looking at *r_hd */
- return NULL;
- }
-
- gpgmegtk_set_passphrase_grab (prefs_common.passphrase_grab);
- debug_print ("requesting passphrase for `%s': ", desc);
- pass = gpgmegtk_passphrase_mbox (desc);
- if (!pass) {
- debug_print ("cancel passphrase entry\n");
- gpgme_cancel (ctx);
- }
- else
- debug_print ("sending passphrase\n");
-
- return pass;
-}
-
static GpgmeData
pgptext_decrypt (MimeInfo *partinfo, FILE *fp)
{
if (!getenv("GPG_AGENT_INFO")) {
info.c = ctx;
- gpgme_set_passphrase_cb (ctx, passphrase_cb, &info);
+ gpgme_set_passphrase_cb (ctx, gpgmegtk_passphrase_cb, (void *)&info);
}
err = gpgme_op_decrypt (ctx, cipher, plain);
leave:
gpgme_data_release (cipher);
if (err) {
+ gpgmegtk_free_passphrase();
debug_print ("decryption failed: %s\n", gpgme_strerror (err));
gpgme_data_release (plain);
plain = NULL;
MimeInfo * pgptext_find_signature (MimeInfo *mimeinfo)
{
+ return NULL;
}
gboolean pgptext_has_signature (MimeInfo *mimeinfo)
gchar *check_begin_pgp_msg = "-----BEGIN PGP MESSAGE-----\n";
gchar *check_end_pgp_msg = "-----END PGP MESSAGE-----\n";
- g_return_if_fail(msginfo != NULL);
+ g_return_val_if_fail(msginfo != NULL, 0);
if (!mimeinfo)
return 0;
- if ((fp = procmsg_open_message(msginfo)) == NULL) return;
- mimeinfo = procmime_scan_mime_header(fp, MIME_TEXT);
+ if ((fp = procmsg_open_message(msginfo)) == NULL) return 0;
+ mimeinfo = procmime_scan_mime_header(fp);
fclose(fp);
- if (!mimeinfo) return;
+ if (!mimeinfo) return 0;
file = procmsg_get_message_file_path(msginfo);
- g_return_if_fail(file != NULL);
+ g_return_val_if_fail(file != NULL, 0);
if (mimeinfo->mime_type != MIME_TEXT) {
- if ((fp = fopen(file, "r")) == NULL) {
+ if ((fp = fopen(file, "rb")) == NULL) {
FILE_OP_ERROR(file, "fopen");
- return;
+ g_free(file);
+ return 0;
}
/* skip headers */
if (mimeinfo->mime_type == MIME_MULTIPART) {
}
fclose(fp);
} else {
- if ((fp = fopen(file, "r")) == NULL) {
+ if ((fp = fopen(file, "rb")) == NULL) {
FILE_OP_ERROR(file, "fopen");
- return;
+ g_free(file);
+ return 0;
}
/* skip headers */
if (fseek(fp, mimeinfo->fpos, SEEK_SET) < 0)
{
static int id;
MimeInfo *partinfo;
- int n, found;
- int ver_okay=0;
char *fname;
GpgmeData plain;
FILE *dstfp;
fname = g_strdup_printf("%s%cplaintext.%08x",
get_mime_tmp_dir(), G_DIR_SEPARATOR, ++id);
- if ((dstfp = fopen(fname, "w")) == NULL) {
+ if ((dstfp = fopen(fname, "wb")) == NULL) {
FILE_OP_ERROR(fname, "fopen");
g_free(fname);
msginfo->decryption_failed = 1;
int pgptext_encrypt (const char *file, GSList *recp_list)
{
+ return 0;
}
int pgptext_sign (const char *file, PrefsAccount *ac)
{
+ return 0;
}
#endif /* USE_GPGME */