#include <lib-lib/macros.h>
#include <lib-lib/file.h>
+#include <lib-mime/mime.h>
+
#include "mutt.h"
#include "enter.h"
#include "handler.h"
#include "mutt_curses.h"
#include "mutt_menu.h"
-#include "smime.h"
-#include "mime.h"
#include "copy.h"
#include "lib/debug.h"
/*
- * Queries and passphrase handling.
+ * Create a format string to be used with scanf.
+ * To use it, write, for instance, MUTT_FORMAT(HUGE_STRING).
+ *
+ * See K&R 2nd ed, p. 231 for an explanation.
*/
+#define _MUTT_FORMAT_2(a,b) "%" a b
+#define _MUTT_FORMAT_1(a, b) _MUTT_FORMAT_2(#a, b)
+#define MUTT_FORMAT(a) _MUTT_FORMAT_1(a, "s")
+/*
+ * Queries and passphrase handling.
+ */
/* these are copies from pgp.c */
void smime_getkeys (ENVELOPE * env)
{
- ADDRESS *t;
+ address_t *t;
int found = 0;
if (option (OPTSDEFAULTDECRYPTKEY) && SmimeDefaultKey && *SmimeDefaultKey) {
}
if (!found && (t = mutt_default_from ())) {
_smime_getkeys (t->mailbox);
- rfc822_free_address (&t);
+ address_delete (&t);
}
}
* It returns NULL if any of the keys can not be found.
*/
-char *smime_findKeys (ADDRESS * to, ADDRESS * cc, ADDRESS * bcc)
+char *smime_findKeys (address_t * to, address_t * cc, address_t * bcc)
{
char *keyID, *keylist = NULL;
size_t keylist_size = 0;
size_t keylist_used = 0;
- ADDRESS *tmp = NULL, *addr = NULL;
- ADDRESS **last = &tmp;
- ADDRESS *p, *q;
+ address_t *tmp = NULL, *addr = NULL;
+ address_t **last = &tmp;
+ address_t *p, *q;
int i;
const char *fqdn = mutt_fqdn (1);
abort ();
}
- *last = rfc822_cpy_adr (p);
+ *last = address_list_dup (p);
while (*last)
last = &((*last)->next);
}
if (!keyID) {
mutt_message (_("No (valid) certificate found for %s."), q->mailbox);
p_delete(&keylist);
- rfc822_free_address (&tmp);
- rfc822_free_address (&addr);
+ address_delete (&tmp);
+ address_delete (&addr);
return NULL;
}
sprintf (keylist + keylist_used, "%s\n", keyID); /* __SPRINTF_CHECKED__ */
keylist_used = m_strlen(keylist);
- rfc822_free_address (&addr);
+ address_delete (&addr);
}
- rfc822_free_address (&tmp);
+ address_delete (&tmp);
return (keylist);
}
switch (choice = mutt_multi_choice (_("1: DES, 2: Triple-DES "),
_("dt"))) {
case 1:
- str_replace (&SmimeCryptAlg, "des");
+ m_strreplace(&SmimeCryptAlg, "des");
break;
case 2:
- str_replace (&SmimeCryptAlg, "des3");
+ m_strreplace(&SmimeCryptAlg, "des3");
break;
}
break;
switch (choice = mutt_multi_choice (_("1: RC2-40, 2: RC2-64, 3: RC2-128 "),
_("468"))) {
case 1:
- str_replace (&SmimeCryptAlg, "rc2-40");
+ m_strreplace(&SmimeCryptAlg, "rc2-40");
break;
case 2:
- str_replace (&SmimeCryptAlg, "rc2-64");
+ m_strreplace(&SmimeCryptAlg, "rc2-64");
break;
case 3:
- str_replace (&SmimeCryptAlg, "rc2-128");
+ m_strreplace(&SmimeCryptAlg, "rc2-128");
break;
}
break;
switch (choice = mutt_multi_choice (_("1: AES128, 2: AES192, 3: AES256 "),
_("895"))) {
case 1:
- str_replace (&SmimeCryptAlg, "aes128");
+ m_strreplace(&SmimeCryptAlg, "aes128");
break;
case 2:
- str_replace (&SmimeCryptAlg, "aes192");
+ m_strreplace(&SmimeCryptAlg, "aes192");
break;
case 3:
- str_replace (&SmimeCryptAlg, "aes256");
+ m_strreplace(&SmimeCryptAlg, "aes256");
break;
}
break;
case 4: /* sign (a)s */
if ((p = smime_ask_for_key (_("Sign as: "), NULL, 0))) {
- str_replace (&SmimeDefaultKey, p);
+ m_strreplace(&SmimeDefaultKey, p);
msg->security |= SIGN;