seq = 0;
for (;;) {
h = GM_INIT(m);
- STORE32(bb, seq);
- GH_HASH(h, bb, 4);
+ GH_HASHU32(h, seq);
seq++;
if (GC_CLASS(c)->blksz) {
GC_ENCRYPT(cx, 0, bb, GC_CLASS(c)->blksz);
freeenc(e);
if (s) freesig(s);
freekem(km);
+ if (fp != stdin) fclose(fp);
if (of) fclose(ofp);
key_close(&kf);
dstr_destroy(&d);
key_fulltag(sk, &d);
printf("INFO good-signature %s\n", d.buf);
}
+ freesig(s);
} else if (verb)
printf("INFO no-signature\n");
GC_SETIV(c, d.buf);
}
h = GM_INIT(m);
- STORE32(d.buf, seq);
- GH_HASH(h, d.buf, 4);
+ GH_HASHU32(h, seq);
seq++;
chunk_read(e, &d, &b);
if ((tag = buf_get(&b, GM_CLASS(m)->hashsz)) == 0) {
printf("FAIL bad ciphertext chunk: authentication failure\n");
exit(EXIT_FAILURE);
}
+ GH_DESTROY(h);
if (!BLEFT(&b))
break;
GC_DECRYPT(c, BCUR(&b), BCUR(&b), BLEFT(&b));
GC_DESTROY(cx);
GM_DESTROY(m);
freekem(km);
+ if (fp != stdin) fclose(fp);
if (of) fclose(ofp);
key_close(&kf);
dstr_destroy(&d);