-static int gddone_##latin(gaead_dec *d, const gaead_aad *a, \
- buf *b, const void *t, size_t tsz) \
+static int gddone_##latin##_common(gdctx_##latin *dec, \
+ const latinpoly_aad *aad, \
+ buf *b, size_t tsz) \
+{ \
+ if (tsz != POLY1305_TAGSZ) return (-1); \
+ assert((!dec->aad.poly.count && !dec->aad.poly.nbuf && !aad) || \
+ aad == &dec->aad); \
+ if (!BOK(b)) return (-1); \
+ return (0); \
+} \
+ \
+static int gddone_##latin##_poly1305(gaead_dec *d, const gaead_aad *a, \
+ buf *b, const void *t, size_t tsz) \