X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/2eed595914ae2ec6f26832d9c55c226220a8c6b5..HEAD:/symm/gcm-def.h diff --git a/symm/gcm-def.h b/symm/gcm-def.h index 34f95aa1..ffa008c3 100644 --- a/symm/gcm-def.h +++ b/symm/gcm-def.h @@ -392,9 +392,9 @@ int pre##_gcmencrypt(pre##_gcmctx *ctx, \ /* Determine the buffering plan. Our buffer is going to do double- \ * duty here. The end portion is going to contain mask from the \ * encrypted counter which we mix into the plaintext to encrypt it; \ - * the start portion, which originally mask bytes we've already used, \ - * will hold the output ciphertext, which will eventually be \ - * collected into the GHASH state. \ + * the start portion, which originally contained mask bytes we've \ + * already used, will hold the output ciphertext, which will \ + * eventually be collected into the GHASH state. \ */ \ rsvr_mkplan(&plan, &pre##_gcmpolicy, ctx->off, sz); \ \ @@ -477,9 +477,9 @@ int pre##_gcmdecrypt(pre##_gcmctx *ctx, \ /* Determine the buffering plan. Our buffer is going to do double- \ * duty here. The end portion is going to contain mask from the \ * encrypted counter which we mix into the plaintext to encrypt it; \ - * the start portion, which originally mask bytes we've already used, \ - * will hold the input ciphertext, which will eventually be \ - * collected into the GHASH state. \ + * the start portion, which originally contained mask bytes we've \ + * already used, will hold the input ciphertext, which will \ + * eventually be collected into the GHASH state. \ */ \ rsvr_mkplan(&plan, &pre##_gcmpolicy, ctx->off, sz); \ \ @@ -790,11 +790,14 @@ static gaead_key *gckey(const void *k, size_t ksz) \ return (&key->k); \ } \ \ +static int gcszok(size_t nsz, size_t hsz, size_t msz, size_t tsz) \ + { return (gaead_szokcommon(&pre##_gcm, nsz, hsz, msz, tsz)); } \ + \ const gcaead pre##_gcm = { \ name "-gcm", \ pre##_keysz, pre##_gcmnoncesz, pre##_gcmtagsz, \ PRE##_BLKSZ, 0, 0, 0, \ - gckey \ + gckey, gcszok \ }; \ \ GCM_TESTX(PRE, pre, name, fname) @@ -815,6 +818,7 @@ GCM_TESTX(PRE, pre, name, fname) #include #include +#include #include #include @@ -876,8 +880,8 @@ static int gcmverify(dstr *v) \ d.len = BLEN(&b); \ \ if (d.len != v[4].len || \ - memcmp(d.buf, v[4].buf, v[4].len) != 0 || \ - memcmp(t.buf, v[5].buf, v[5].len) != 0) { \ + MEMCMP(d.buf, !=, v[4].buf, v[4].len) || \ + MEMCMP(t.buf, !=, v[5].buf, v[5].len)) { \ fail_enc: \ printf("\nfail encrypt:\n\tstep = %i", *ip); \ fputs("\n\tkey = ", stdout); type_hex.dump(&v[0], stdout); \ @@ -918,7 +922,7 @@ static int gcmverify(dstr *v) \ d.len = BLEN(&b); \ \ if (d.len != v[3].len || !win || \ - memcmp(d.buf, v[3].buf, v[3].len) != 0) { \ + MEMCMP(d.buf, !=, v[3].buf, v[3].len)) { \ fail_dec: \ printf("\nfail decrypt:\n\tstep = %i", *ip); \ fputs("\n\tkey = ", stdout); type_hex.dump(&v[0], stdout); \