projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
move some decoding functions right into the str module, with a bit more
[apps/madmutt.git]
/
crypt.c
diff --git
a/crypt.c
b/crypt.c
index
2f20bc1
..
b10ed05
100644
(file)
--- a/
crypt.c
+++ b/
crypt.c
@@
-16,16
+16,20
@@
# include "config.h"
#endif
# include "config.h"
#endif
+#include <lib-lib/str.h>
+#include <lib-lib/file.h>
+#include <lib-lib/ascii.h>
+#include <lib-lib/mem.h>
+#include <lib-lib/macros.h>
+
#include "mutt.h"
#include "mutt.h"
+#include "handler.h"
#include "mutt_curses.h"
#include "mime.h"
#include "copy.h"
#include "mutt_crypt.h"
#include "pgp.h"
#include "mutt_curses.h"
#include "mime.h"
#include "copy.h"
#include "mutt_crypt.h"
#include "pgp.h"
-#include "lib/mem.h"
-#include "lib/intl.h"
-#include "lib/str.h"
#include <sys/wait.h>
#include <string.h>
#include <sys/wait.h>
#include <string.h>
@@
-49,7
+53,7
@@
/* print the current time to avoid spoofing of the signature output */
/* print the current time to avoid spoofing of the signature output */
-void crypt_current_time (STATE * s, char *app_name)
+void crypt_current_time (STATE * s, c
onst c
har *app_name)
{
time_t t;
char p[STRING], tmp[STRING];
{
time_t t;
char p[STRING], tmp[STRING];
@@
-386,7
+390,7
@@
int mutt_is_application_smime (BODY * m)
/* no .p7c, .p10 support yet. */
/* no .p7c, .p10 support yet. */
- len =
str_len
(t) - 4;
+ len =
m_strlen
(t) - 4;
if (len > 0 && *(t + len) == '.') {
len++;
if (!ascii_strcasecmp ((t + len), "p7m"))
if (len > 0 && *(t + len) == '.') {
len++;
if (!ascii_strcasecmp ((t + len), "p7m"))
@@
-485,7
+489,7
@@
int crypt_write_signed (BODY * a, STATE * s, const char *tempfile)
return -1;
}
return -1;
}
- fseek (s->fpin, a->hdr_offset, 0);
+ fseek
o
(s->fpin, a->hdr_offset, 0);
bytes = a->length + a->offset - a->hdr_offset;
hadcr = 0;
while (bytes > 0) {
bytes = a->length + a->offset - a->hdr_offset;
hadcr = 0;
while (bytes > 0) {
@@
-528,7
+532,7
@@
void convert_to_7bit (BODY * a)
convert_to_7bit (a->parts);
}
else if (a->type == TYPEMESSAGE &&
convert_to_7bit (a->parts);
}
else if (a->type == TYPEMESSAGE &&
-
str_casecmp
(a->subtype, "delivery-status")) {
+
m_strcasecmp
(a->subtype, "delivery-status")) {
if (a->encoding != ENC7BIT)
mutt_message_to_7bit (a, NULL);
}
if (a->encoding != ENC7BIT)
mutt_message_to_7bit (a, NULL);
}
@@
-695,7
+699,7
@@
int crypt_get_keys (HEADER * msg, char **keylist)
-static void crypt_fetch_signatures (BODY ***
signatures, BODY * a, int *n)
+static void crypt_fetch_signatures (BODY ***signatures, BODY * a, int *n)
{
if (!WithCrypto)
return;
{
if (!WithCrypto)
return;
@@
-705,7
+709,7
@@
static void crypt_fetch_signatures (BODY *** signatures, BODY * a, int *n)
crypt_fetch_signatures (signatures, a->parts, n);
else {
if ((*n % 5) == 0)
crypt_fetch_signatures (signatures, a->parts, n);
else {
if ((*n % 5) == 0)
-
safe_realloc (signatures, (*n + 6) * sizeof (BODY **)
);
+
p_realloc(signatures, *n + 6
);
(*signatures)[(*n)++] = a;
}
(*signatures)[(*n)++] = a;
}
@@
-717,7
+721,7
@@
static void crypt_fetch_signatures (BODY *** signatures, BODY * a, int *n)
* This routine verifies a "multipart/signed" body.
*/
* This routine verifies a "multipart/signed" body.
*/
-
void
mutt_signed_handler (BODY * a, STATE * s)
+
int
mutt_signed_handler (BODY * a, STATE * s)
{
char tempfile[_POSIX_PATH_MAX];
char *protocol;
{
char tempfile[_POSIX_PATH_MAX];
char *protocol;
@@
-729,9
+733,10
@@
void mutt_signed_handler (BODY * a, STATE * s)
int sigcnt = 0;
int i;
short goodsig = 1;
int sigcnt = 0;
int i;
short goodsig = 1;
+ int rc = 0;
if (!WithCrypto)
if (!WithCrypto)
- return;
+ return
(-1)
;
protocol = mutt_get_parameter ("protocol", a->parameter);
a = a->parts;
protocol = mutt_get_parameter ("protocol", a->parameter);
a = a->parts;
@@
-745,7
+750,7
@@
void mutt_signed_handler (BODY * a, STATE * s)
if ((protocol_minor = strchr (protocol, '/')))
protocol_minor++;
if ((protocol_minor = strchr (protocol, '/')))
protocol_minor++;
-
strfcpy (major, protocol, sizeof (major)
);
+
m_strcpy(major, sizeof(major), protocol
);
if ((t = strchr (major, '/')))
*t = '\0';
if ((t = strchr (major, '/')))
*t = '\0';
@@
-755,30
+760,28
@@
void mutt_signed_handler (BODY * a, STATE * s)
/* consistency check */
if (!(a && a->next && a->next->type == protocol_major &&
/* consistency check */
if (!(a && a->next && a->next->type == protocol_major &&
- !
str_casecmp
(a->next->subtype, protocol_minor))) {
+ !
m_strcasecmp
(a->next->subtype, protocol_minor))) {
state_attach_puts (_("[-- Error: "
"Inconsistent multipart/signed structure! --]\n\n"),
s);
state_attach_puts (_("[-- Error: "
"Inconsistent multipart/signed structure! --]\n\n"),
s);
- mutt_body_handler (a, s);
- return;
+ return mutt_body_handler (a, s);
}
if ((WithCrypto & APPLICATION_PGP)
&& protocol_major == TYPEAPPLICATION
}
if ((WithCrypto & APPLICATION_PGP)
&& protocol_major == TYPEAPPLICATION
- && !
str_casecmp
(protocol_minor, "pgp-signature"));
+ && !
m_strcasecmp
(protocol_minor, "pgp-signature"));
else if ((WithCrypto & APPLICATION_SMIME)
&& protocol_major == TYPEAPPLICATION
else if ((WithCrypto & APPLICATION_SMIME)
&& protocol_major == TYPEAPPLICATION
- && !(
str_casecmp
(protocol_minor, "x-pkcs7-signature")
- &&
str_casecmp
(protocol_minor, "pkcs7-signature")));
+ && !(
m_strcasecmp
(protocol_minor, "x-pkcs7-signature")
+ &&
m_strcasecmp
(protocol_minor, "pkcs7-signature")));
else if (protocol_major == TYPEMULTIPART
else if (protocol_major == TYPEMULTIPART
- && !
str_casecmp
(protocol_minor, "mixed"));
+ && !
m_strcasecmp
(protocol_minor, "mixed"));
else {
state_printf (s, _("[-- Error: "
"Unknown multipart/signed protocol %s! --]\n\n"),
protocol);
else {
state_printf (s, _("[-- Error: "
"Unknown multipart/signed protocol %s! --]\n\n"),
protocol);
- mutt_body_handler (a, s);
- return;
+ return mutt_body_handler (a, s);
}
if (s->flags & M_DISPLAY) {
}
if (s->flags & M_DISPLAY) {
@@
-791,7
+794,7
@@
void mutt_signed_handler (BODY * a, STATE * s)
for (i = 0; i < sigcnt; i++) {
if ((WithCrypto & APPLICATION_PGP)
&& signatures[i]->type == TYPEAPPLICATION
for (i = 0; i < sigcnt; i++) {
if ((WithCrypto & APPLICATION_PGP)
&& signatures[i]->type == TYPEAPPLICATION
- && !
str_casecmp
(signatures[i]->subtype, "pgp-signature")) {
+ && !
m_strcasecmp
(signatures[i]->subtype, "pgp-signature")) {
if (crypt_pgp_verify_one (signatures[i], s, tempfile) != 0)
goodsig = 0;
if (crypt_pgp_verify_one (signatures[i], s, tempfile) != 0)
goodsig = 0;
@@
-801,8
+804,8
@@
void mutt_signed_handler (BODY * a, STATE * s)
if ((WithCrypto & APPLICATION_SMIME)
&& signatures[i]->type == TYPEAPPLICATION
&&
if ((WithCrypto & APPLICATION_SMIME)
&& signatures[i]->type == TYPEAPPLICATION
&&
- (!
str_casecmp
(signatures[i]->subtype, "x-pkcs7-signature")
- || !
str_casecmp
(signatures[i]->subtype,
+ (!
m_strcasecmp
(signatures[i]->subtype, "x-pkcs7-signature")
+ || !
m_strcasecmp
(signatures[i]->subtype,
"pkcs7-signature"))) {
if (crypt_smime_verify_one (signatures[i], s, tempfile) != 0)
goodsig = 0;
"pkcs7-signature"))) {
if (crypt_smime_verify_one (signatures[i], s, tempfile) != 0)
goodsig = 0;
@@
-825,15
+828,17
@@
void mutt_signed_handler (BODY * a, STATE * s)
state_attach_puts (_("[-- The following data is signed --]\n\n"), s);
state_attach_puts (_("[-- The following data is signed --]\n\n"), s);
-
FREE
(&signatures);
+
p_delete
(&signatures);
}
else
state_attach_puts (_("[-- Warning: Can't find any signatures. --]\n\n"),
s);
}
}
else
state_attach_puts (_("[-- Warning: Can't find any signatures. --]\n\n"),
s);
}
- mutt_body_handler (a, s);
+
rc =
mutt_body_handler (a, s);
if (s->flags & M_DISPLAY && sigcnt)
state_attach_puts (_("\n[-- End of signed data --]\n"), s);
if (s->flags & M_DISPLAY && sigcnt)
state_attach_puts (_("\n[-- End of signed data --]\n"), s);
+
+ return (rc);
}
}