X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=smime.c;h=3db7185a2b2690d4c21f75bd56f4213270dfa91e;hp=6a2486dc69bad9030c3aff345726923174897f36;hb=df5b14084b39821395408679a2fb6f74605182ce;hpb=c98480f8568e6c1bc927c6c5f2b5e80b4aa6548c diff --git a/smime.c b/smime.c index 6a2486d..3db7185 100644 --- a/smime.c +++ b/smime.c @@ -18,13 +18,13 @@ #include #include +#include + #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" @@ -83,10 +83,19 @@ static char SmimeIntermediateToUse[_POSIX_PATH_MAX]; /* - * 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 */ @@ -148,7 +157,7 @@ static const char *_mutt_fmt_smime_command (char *dest, char buf1[LONG_STRING], buf2[LONG_STRING]; struct stat sb; - strfcpy (path, NONULL (SmimeCALocation), sizeof (path)); + m_strcpy(path, sizeof(path), NONULL(SmimeCALocation)); mutt_expand_path (path, sizeof (path)); mutt_quote_filename (buf1, sizeof (buf1), path); @@ -553,7 +562,7 @@ char *smime_get_field_from_db (char *mailbox, char *query, short public, continue; } else if (choice == M_YES) { - strfcpy (key, fields[1], sizeof (key)); + m_strcpy(key, sizeof(key), fields[1]); ask = 0; break; } @@ -561,7 +570,7 @@ char *smime_get_field_from_db (char *mailbox, char *query, short public, else { if (public) key_trust_level = *fields[4]; - strfcpy (key, fields[1], sizeof (key)); + m_strcpy(key, sizeof(key), fields[1]); } found = 1; } @@ -577,13 +586,13 @@ char *smime_get_field_from_db (char *mailbox, char *query, short public, if (numFields >= 3 && !(m_strncasecmp(query, fields[2], query_len))) { ask = 0; - strfcpy (key, fields[1], sizeof (key)); + m_strcpy(key, sizeof(key), fields[1]); } /* query = certificate: return intermediate certificate. */ else if (numFields >= 4 && !(m_strncasecmp(query, fields[1], query_len))) { ask = 0; - strfcpy (key, fields[3], sizeof (key)); + m_strcpy(key, sizeof(key), fields[3]); } } @@ -687,7 +696,7 @@ void _smime_getkeys (char *mailbox) void smime_getkeys (ENVELOPE * env) { - ADDRESS *t; + address_t *t; int found = 0; if (option (OPTSDEFAULTDECRYPTKEY) && SmimeDefaultKey && *SmimeDefaultKey) { @@ -712,7 +721,7 @@ void smime_getkeys (ENVELOPE * env) } if (!found && (t = mutt_default_from ())) { _smime_getkeys (t->mailbox); - rfc822_free_address (&t); + address_delete (&t); } } @@ -720,14 +729,14 @@ void smime_getkeys (ENVELOPE * env) * 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); @@ -747,7 +756,7 @@ char *smime_findKeys (ADDRESS * to, ADDRESS * cc, ADDRESS * bcc) abort (); } - *last = rfc822_cpy_adr (p); + *last = address_list_dup (p); while (*last) last = &((*last)->next); } @@ -769,8 +778,8 @@ char *smime_findKeys (ADDRESS * to, ADDRESS * cc, ADDRESS * bcc) 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; } @@ -779,10 +788,10 @@ char *smime_findKeys (ADDRESS * to, ADDRESS * cc, ADDRESS * bcc) 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); } @@ -1897,10 +1906,10 @@ int smime_send_menu (HEADER * msg, int *redraw) 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; @@ -1909,13 +1918,13 @@ int smime_send_menu (HEADER * msg, int *redraw) 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; @@ -1924,13 +1933,13 @@ int smime_send_menu (HEADER * msg, int *redraw) 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; @@ -1960,7 +1969,7 @@ int smime_send_menu (HEADER * msg, int *redraw) 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;