- reinit_##latin(&dec->ctx, &dec->aad.poly, &dec->poly, n, nsz); \
+ if (reinit_##latin(&dec->ctx, LPVAR_POLY1305, \
+ &dec->aad.poly, &dec->poly, n, nsz)) \
+ { gddestroy_##latin(&dec->d); return (0); } \
+ return (&dec->d); \
+} \
+ \
+static gaead_dec *gkdec_##latin##_naclbox(const gaead_key *k, \
+ const void *n, size_t nsz, \
+ size_t hsz, size_t msz, \
+ size_t tsz) \
+{ \
+ latinpoly_key *key = (latinpoly_key *)k; \
+ gdctx_##latin *dec = S_CREATE(gdctx_##latin); \
+ \
+ dec->d.ops = &gdops_##latin##_naclbox; \
+ dec->aad.a.ops = &gaops_##latin##_naclbox; \
+ x##latin##_init(&dec->ctx, key->key, key->ksz, 0); \
+ if (reinit_##latin(&dec->ctx, LPVAR_NACLBOX, \
+ &dec->aad.poly, &dec->poly, n, nsz)) \
+ { gddestroy_##latin(&dec->d); return (0); } \