* encryption keys for all of them. The file content is then replaced
* by the encrypted one. */
int
-rfc2015_encrypt (const char *file, GSList *recp_list, gboolean ascii_armored)
+rfc2015_encrypt (const char *file, GSList *recp_list, gboolean ascii_armored,
+ const gchar *out_codeset)
{
FILE *fp = NULL;
char buf[BUFFSIZE];
saved_last = 1;
continue;
}
+
if (saved_last) {
if (*buf == ' ' || *buf == '\t') {
char *last = clines[clineidx - 1];
if (buf[0] == '\r' || buf[0] == '\n')
break;
- err = gpgme_data_write (header, buf, strlen (buf));
+
+ err = gpgme_data_write (header, buf, strlen (buf));
}
if (ferror (fp)) {
FILE_OP_ERROR (file, "fgets");
/* write them to the temp data and add the rest of the message */
for (i = 0; !err && i < clineidx; i++) {
debug_print ("%% %s:%d: cline=`%s'", __FILE__ ,__LINE__, clines[i]);
- err = gpgme_data_write (plain, clines[i], strlen (clines[i]));
+ if (!ascii_armored)
+ err = gpgme_data_write (plain, clines[i], strlen (clines[i]));
}
- if (!err)
+ if (!err && !ascii_armored)
err = gpgme_data_write (plain, "\r\n", 2);
+
while (!err && fgets(buf, sizeof(buf), fp)) {
err = gpgme_data_write (plain, buf, strlen (buf));
}
if (ascii_armored) {
fprintf(fp,
- "Content-Type: text/plain; charset=US-ASCII\r\n"
- "Content-Transfer-Encoding: 7bit\r\n"
- "\r\n");
+ "Content-Type: text/plain; charset=%s\r\n"
+ "Content-Disposition: inline\r\n"
+ "Content-Transfer-Encoding: 8bit\r\n"
+ "\r\n", out_codeset ? out_codeset : CS_US_ASCII);
} else {
fprintf (fp,
"Content-Type: multipart/encrypted;"
GSList *rfc2015_create_signers_list (const gchar *keyid);
gint rfc2015_encrypt (const gchar *file,
GSList *recp_list,
- gboolean ascii_armored);
+ gboolean ascii_armored,
+ const gchar *out_codeset);
gint rfc2015_sign (const gchar *file,
GSList *key_list);
gint rfc2015_clearsign (const gchar *file,