key_file kf;
key *k;
sig *s;
+ fhashstate fh;
time_t exp = KEXP_EXPIRE;
unsigned verb = 0;
const char *ifile = 0, *hfile = 0;
/* --- Read the next filename to hash --- */
+ fhash_init(&fh, GH_CLASS(s->h), f | FHF_BINARY);
breset(&b);
if (getstring(ifp, &b.d, GSF_FILE | f))
break;
b.tag = T_FILE;
DENSURE(&b.b, GH_CLASS(s->h)->hashsz);
- if (fhash(GH_CLASS(s->h), f | FHF_BINARY, b.d.buf, b.b.buf)) {
+ if (fhash(&fh, b.d.buf, b.b.buf)) {
moan("error reading `%s': %s", b.d.buf, strerror(errno));
f |= f_bogus;
} else {
}
bemit(&b, ofp, s->h, f & f_bin);
}
+ fhash_free(&fh);
}
}
sig *s;
dstr d = DSTR_INIT;
const char *err;
+ fhashstate fh;
FILE *fp;
block b;
int e;
if (!(f & f_nocheck) && verb && (err = s->ops->check(s)) != 0)
printf("WARN public key fails check: %s", err);
+ fhash_init(&fh, GH_CLASS(s->h), f | FHF_BINARY);
for (;;) {
switch (e) {
case T_COMMENT:
case T_FILE:
DRESET(&d);
DENSURE(&d, GH_CLASS(s->h)->hashsz);
- if (fhash(GH_CLASS(s->h), f | FHF_BINARY, b.d.buf, d.buf)) {
+ if (fhash(&fh, b.d.buf, d.buf)) {
if (verb > 1) {
printf("BAD error reading file `%s': %s\n",
b.d.buf, strerror(errno));
}
}
done:
+ fhash_free(&fh);
bdestroy(&b);
dstr_destroy(&d);
freesig(s);