/*
* Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2007 the Claws Mail team
+ * Copyright (C) 1999-2009 the Claws Mail team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
const gchar *protocol;
PrivacyDataPGP *data = NULL;
- g_return_val_if_fail(mimeinfo != NULL, FALSE);
+ cm_return_val_if_fail(mimeinfo != NULL, FALSE);
if (mimeinfo->privacy != NULL) {
data = (PrivacyDataPGP *) mimeinfo->privacy;
if (data->done_sigtest)
gchar *textstr;
gpgme_data_t sigdata = NULL, textdata = NULL;
gpgme_error_t err;
- g_return_val_if_fail(mimeinfo != NULL, -1);
- g_return_val_if_fail(mimeinfo->privacy != NULL, -1);
+ cm_return_val_if_fail(mimeinfo != NULL, -1);
+ cm_return_val_if_fail(mimeinfo->privacy != NULL, -1);
data = (PrivacyDataPGP *) mimeinfo->privacy;
if ((err = gpgme_new(&data->ctx)) != GPG_ERR_NO_ERROR) {
debug_print(("Couldn't initialize GPG context, %s"), gpgme_strerror(err));
parent = procmime_mimeinfo_parent(mimeinfo);
fp = g_fopen(parent->data.filename, "rb");
- g_return_val_if_fail(fp != NULL, SIGNATURE_INVALID);
+ cm_return_val_if_fail(fp != NULL, SIGNATURE_INVALID);
boundary = g_hash_table_lookup(parent->typeparameters, "boundary");
if (!boundary) {
privacy_set_error(_("Signature boundary not found."));
+ fclose(fp);
return 0;
}
textstr = get_canonical_content(fp, boundary);
{
PrivacyDataPGP *data = (PrivacyDataPGP *) mimeinfo->privacy;
- g_return_val_if_fail(data != NULL, SIGNATURE_INVALID);
+ cm_return_val_if_fail(data != NULL, SIGNATURE_INVALID);
if (data->sigstatus == NULL &&
prefs_gpg_get_config()->auto_check_signatures)
{
PrivacyDataPGP *data = (PrivacyDataPGP *) mimeinfo->privacy;
- g_return_val_if_fail(data != NULL, g_strdup("Error"));
+ cm_return_val_if_fail(data != NULL, g_strdup("Error"));
if (data->sigstatus == NULL &&
prefs_gpg_get_config()->auto_check_signatures)
{
PrivacyDataPGP *data = (PrivacyDataPGP *) mimeinfo->privacy;
- g_return_val_if_fail(data != NULL, g_strdup("Error"));
+ cm_return_val_if_fail(data != NULL, g_strdup("Error"));
if (data->sigstatus == NULL &&
prefs_gpg_get_config()->auto_check_signatures)
return NULL;
}
- g_return_val_if_fail(pgpmime_is_encrypted(mimeinfo), NULL);
+ cm_return_val_if_fail(pgpmime_is_encrypted(mimeinfo), NULL);
encinfo = (MimeInfo *) g_node_nth_child(mimeinfo->node, 1)->data;
if (fprintf(dstfp, "MIME-Version: 1.0\n") < 0) {
FILE_OP_ERROR(fname, "fprintf");
+ fclose(dstfp);
privacy_set_error(_("Couldn't write to decrypted file %s"), fname);
g_free(fname);
gpgme_data_release(plain);
if (len > 0) {
if (fwrite(chars, 1, len, dstfp) < len) {
FILE_OP_ERROR(fname, "fwrite");
+ fclose(dstfp);
privacy_set_error(_("Couldn't write to decrypted file %s"), fname);
g_free(fname);
gpgme_data_release(plain);
return decinfo;
}
-gboolean pgpmime_sign(MimeInfo *mimeinfo, PrefsAccount *account)
+gboolean pgpmime_sign(MimeInfo *mimeinfo, PrefsAccount *account, const gchar *from_addr)
{
MimeInfo *msgcontent, *sigmultipart, *newinfo;
gchar *textstr, *micalg;
gpgme_set_armor(ctx, 1);
gpgme_signers_clear (ctx);
- if (!sgpgme_setup_signers(ctx, account)) {
+ if (!sgpgme_setup_signers(ctx, account, from_addr)) {
gpgme_release(ctx);
return FALSE;
}
gpgme_data_new_from_mem(&gpgtext, textstr, (size_t)strlen(textstr), 0);
gpgme_data_new(&gpgenc);
gpgme_set_armor(ctx, 1);
- gpgme_data_rewind(gpgtext);
+ cm_gpgme_data_rewind(gpgtext);
err = gpgme_op_encrypt(ctx, kset, GPGME_ENCRYPT_ALWAYS_TRUST, gpgtext, gpgenc);