#include <mLib/base64.h>
#include <mLib/dstr.h>
+#include <mLib/macros.h>
#include <mLib/mdwopt.h>
#include <mLib/quis.h>
#include <mLib/report.h>
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)
+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];
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);
(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);
} else if (!of || strcmp(of, "-") == 0) {
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 --- */
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);
sub_init();
rand_noisesrc(RAND_GLOBAL, &noise_source);
rand_seed(RAND_GLOBAL, 160);
-/* trace_on(stderr, 1); */
/* --- Parse options --- */