/*
* Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2009 Colin Leroy <colin@colino.net> and
+ * Copyright (C) 1999-2012 Colin Leroy <colin@colino.net> and
* the Claws Mail team
*
* This program is free software; you can redistribute it and/or modify
#ifdef HAVE_CONFIG_H
# include "config.h"
+#include "claws-features.h"
#endif
#ifdef USE_GPGME
#include "smime.h"
#include <plugins/pgpcore/sgpgme.h>
#include <plugins/pgpcore/prefs_gpg.h>
+#include <plugins/pgpcore/pgp_utils.h>
#include <plugins/pgpcore/passphrase.h>
#include "alertpanel.h"
if (textstr && len) {
gchar *tmp_file = get_tmp_file();
MimeInfo *newinfo = NULL, *decinfo = NULL, *parentinfo = NULL;
- gint childnumber = 0;
-
+
str_write_to_file(textstr, tmp_file);
newinfo = procmime_scan_file(tmp_file);
decinfo = g_node_first_child(newinfo->node) != NULL ?
procmime_mimeinfo_free_all(newinfo);
decinfo->tmp = TRUE;
parentinfo = procmime_mimeinfo_parent(mimeinfo);
- childnumber = g_node_child_index(parentinfo->node, mimeinfo);
+
if (parentinfo->type == MIMETYPE_MESSAGE &&
!strcmp(parentinfo->subtype, "rfc822")) {
procmime_decode_content(parentinfo);
cm_return_val_if_fail(data != NULL, SIGNATURE_INVALID);
- if (data->sigstatus == NULL &&
- prefs_gpg_get_config()->auto_check_signatures)
- smime_check_signature(mimeinfo);
-
return sgpgme_sigstat_gpgme_to_privacy(data->ctx, data->sigstatus);
}
cm_return_val_if_fail(data != NULL, g_strdup("Error"));
- if (data->sigstatus == NULL &&
- prefs_gpg_get_config()->auto_check_signatures)
- smime_check_signature(mimeinfo);
-
return sgpgme_sigstat_info_short(data->ctx, data->sigstatus);
}
cm_return_val_if_fail(data != NULL, g_strdup("Error"));
- if (data->sigstatus == NULL &&
- prefs_gpg_get_config()->auto_check_signatures)
- smime_check_signature(mimeinfo);
-
return sgpgme_sigstat_info_full(data->ctx, data->sigstatus);
}
result = gpgme_op_sign_result(ctx);
if (result && result->signatures) {
if (gpgme_get_protocol(ctx) == GPGME_PROTOCOL_OpenPGP) {
- micalg = g_strdup_printf("PGP-%s", gpgme_hash_algo_name(
- result->signatures->hash_algo));
+ micalg = g_strdup_printf("pgp-%s", g_ascii_strdown(gpgme_hash_algo_name(
+ result->signatures->hash_algo),-1));
} else {
micalg = g_strdup(gpgme_hash_algo_name(
result->signatures->hash_algo));
prefs_gpg_remove_skip_encryption_warning(smime_system.id);
}
-static gchar *fp_read_noconv(FILE *fp)
-{
- GByteArray *array;
- guchar buf[BUFSIZ];
- gint n_read;
- gchar *result = NULL;
-
- if (!fp)
- return NULL;
- array = g_byte_array_new();
-
- while ((n_read = fread(buf, sizeof(gchar), sizeof(buf), fp)) > 0) {
- if (n_read < sizeof(buf) && ferror(fp))
- break;
- g_byte_array_append(array, buf, n_read);
- }
-
- if (ferror(fp)) {
- FILE_OP_ERROR("file stream", "fread");
- g_byte_array_free(array, TRUE);
- return NULL;
- }
-
- buf[0] = '\0';
- g_byte_array_append(array, buf, 1);
- result = (gchar *)array->data;
- g_byte_array_free(array, FALSE);
-
- return result;
-}
-
gboolean smime_encrypt(MimeInfo *mimeinfo, const gchar *encrypt_data)
{
MimeInfo *msgcontent, *encmultipart;
smime_encrypt,
smime_get_encrypt_warning,
smime_inhibit_encrypt_warning,
+ prefs_gpg_auto_check_signatures,
};
void smime_init()