#include <mLib/base64.h>
#include <mLib/dstr.h>
+#include <mLib/macros.h>
#include <mLib/mdwopt.h>
#include <mLib/quis.h>
#include <mLib/report.h>
if (n >= MSGBUFTHRESH) goto full;
b[n++] = ch;
f &= ~F_MIDLINE;
- } else if (isspace(ch)) {
+ } else if (ISSPACE(ch)) {
f |= F_MIDLINE;
if (n >= MSGBUFSZ) goto full;
b[n++] = ch; nsp++;
static void mcsetup_readfile(msgcanon *m, unsigned f, const char *fn)
{
m->f = F_DETACH | (f & (F_BINARY | F_PROGRESS));
- if (!fn || strcmp(fn, "-") == 0) {
+ if (!fn || STRCMP(fn, ==, "-")) {
m->fp = stdin;
m->f |= F_NOCLOSE;
} else if ((m->fp = fopen(fn, (f & F_BINARY) ? "rb" : "r")) == 0)
}
} else {
m->read = binreaddetach;
- if (!dfn || strcmp(dfn, "-") == 0)
+ if (!dfn || STRCMP(dfn, ==, "-"))
m->fp = stdin;
else if ((m->fp = fopen(dfn, "rb")) == 0)
die(EXIT_FAILURE, "can't open `%s': %s", dfn, strerror(errno));
}
}
} else {
- if (!dfn || strcmp(dfn, "-") == 0)
+ if (!dfn || STRCMP(dfn, ==, "-"))
m->fp = stdin;
else if ((m->fp = fopen(dfn, "r")) == 0)
die(EXIT_FAILURE, "can't read file `%s': %s", dfn, strerror(errno));
static void dohash(ghash *h, const void *p, size_t n)
{
-/* trace_block(1, "hashing", p, n); */
GH_HASH(h, p, n);
}
static void sig_writesig(enc *e, sigmsg *s)
{ chunk_write(e, s->sig.buf, s->sig.len); }
-static void diechoke(const char *m, void *p)
- { die(EXIT_FAILURE, "%s%s%s", p, p ? ": " : "", m); }
+static void NORETURN diechoke(const char *m, void *p)
+ { die(EXIT_FAILURE, "%s%s%s", (const char *)p, p ? ": " : "", m); }
static void sig_readheader(enc *e, sigmsg *s,
- void (*choke)(const char *, void *), void *p)
+ void NORETURN (*choke)(const char *, void *),
+ void *p)
{
uint16 f;
octet bb[MSGBUFSZ];
fn = (optind >= argc) ? 0 : argv[optind++];
- if (!of || strcmp(of, "-") == 0)
+ if (!of || STRCMP(of, ==, "-"))
ofp = stdout;
else if ((ofp = fopen(of, eo->wmode)) == 0) {
die(EXIT_FAILURE, "couldn't open file `%s' for output: %s",
- ofp, strerror(errno));
+ of, strerror(errno));
}
/* --- Start the work --- */
{
vrfctx *v = p;
- if (strcmp(b, "CATSIGN MESSAGE") == 0) {
+ if (STRCMP(b, ==, "CATSIGN MESSAGE")) {
v->f |= F_BINARY;
v->m |= F_BINARY | F_DETACH;
return (1);
- } else if (strcmp(b, "CATSIGN MESSAGE HEADER") == 0) {
+ } else if (STRCMP(b, ==, "CATSIGN MESSAGE HEADER")) {
v->m |= F_BINARY | F_DETACH;
return (1);
- } else if (strcmp(b, "CATSIGN SIGNATURE") == 0) {
+ } else if (STRCMP(b, ==, "CATSIGN SIGNATURE")) {
v->f |= F_DETACH;
v->m |= F_DETACH;
return (1);
return (0);
}
-static void vrfchoke(const char *m, void *p)
+static void NORETURN vrfchoke(const char *m, void *p)
{
vrfctx *v = p;
if (v->verb) printf("FAIL %s: %s\n", v->what, m);
case 'u': v.f |= F_UTC; break;
case 'C': v.f |= F_NOCHECK; break;
case 't':
- if (strcmp(optarg, "always") == 0) t_fresh = 0;
+ if (STRCMP(optarg, ==, "always")) t_fresh = 0;
else if ((t_fresh = get_date(optarg, 0)) < 0)
die(EXIT_FAILURE, "bad freshness time");
break;
die(EXIT_FAILURE, "encoding `%s' not found", ef);
fn = optind < argc ? argv[optind++] : "-";
- if (strcmp(fn, "-") == 0)
+ if (STRCMP(fn, ==, "-"))
fp = stdin;
else if ((fp = fopen(fn, eo->rmode)) == 0) {
die(EXIT_FAILURE, "couldn't open file `%s': %s",
(unsigned long)s.keyid);
exit(EXIT_FAILURE);
}
- if (kk && k->id != kk->id) {
+ if (kk && k != kk) {
if (v.verb) {
dstr_reset(&d); key_fulltag(k, &d);
dstr_reset(&dd); key_fulltag(kk, &dd);
printf("WARN verification key %s fails check: %s\n", d.buf, err);
dstr_reset(&dd); keyhash(k, s.s, &dd);
- if (dd.len != s.kh.len || memcmp(dd.buf, s.kh.buf, dd.len) != 0) {
+ if (dd.len != s.kh.len || MEMCMP(dd.buf, !=, s.kh.buf, dd.len)) {
if (v.verb) printf("FAIL key hash mismatch\n");
exit(EXIT_FAILURE);
}
if (!of && (v.f & F_DETACH)) {
rfp = ofp = 0;
v.f &= ~F_BUFFER;
- } else if (!of || strcmp(of, "-") == 0) {
+ } else if (!of || STRCMP(of, ==, "-")) {
v.f |= F_BUFFER;
ofp = stdout;
- }
- if (of && !(v.f & F_BUFFER)) {
+ } else if (of && !(v.f & F_BUFFER)) {
if ((ofp = fopen(of, (v.f & F_BINARY) ? "wb" : "w")) == 0) {
die(EXIT_FAILURE, "couldn't open file `%s' for output: %s",
of, strerror(errno));
}
rfp = ofp;
- } else if ((rfp = tmpfile()) == 0)
+ }
+ if ((v.f & F_BUFFER) && (rfp = tmpfile()) == 0)
die(EXIT_FAILURE, "couldn't create temporary file: %s", strerror(errno));
/* --- Read the message and verify the signature --- */
die(EXIT_FAILURE, "encoding `%s' not found", oef);
fn = optind < argc ? argv[optind++] : "-";
- if (strcmp(fn, "-") == 0)
+ if (STRCMP(fn, ==, "-"))
fp = stdin;
else if ((fp = fopen(fn, ieo->rmode)) == 0) {
die(EXIT_FAILURE, "couldn't open file `%s': %s",
if (!of)
mcsetup_writenull(&mc_out);
else {
- if (strcmp(of, "-") == 0)
+ if (STRCMP(of, ==, "-"))
ofp = stdout;
else if ((ofp = fopen(of, oeo->wmode)) == 0) {
die(EXIT_FAILURE, "couldn't open file `%s' for output: %s",
}
if (mf) {
- if (strcmp(mf, "-") == 0)
+ if (STRCMP(mf, ==, "-"))
mfp = stdout;
else if ((mfp = fopen(mf, (f & F_BINARY) ? "wb" : "w")) == 0) {
die(EXIT_FAILURE, "couldn't open file `%s' for output: %s",
return (0);
}
-static void infochoke(const char *m, void *p)
+static void NORETURN infochoke(const char *m, void *p)
{
vrfctx *v = p;
printf("BAD %s: %s\n", v->what, m);
if (optind >= argc)
fp = stdin;
- else if (strcmp(argv[optind], "-") == 0) {
+ else if (STRCMP(argv[optind], ==, "-")) {
fp = stdin;
optind++;
} else if ((fp = fopen(argv[optind], eo->rmode)) == 0) {
sub_init();
rand_noisesrc(RAND_GLOBAL, &noise_source);
rand_seed(RAND_GLOBAL, 160);
-/* trace_on(stderr, 1); */
/* --- Parse options --- */