+static gaead_enc *gkenc_##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; \
+ gectx_##latin *enc = S_CREATE(gectx_##latin); \
+ \
+ enc->e.ops = &geops_##latin##_naclbox; \
+ enc->aad.a.ops = &gaops_##latin##_naclbox; \
+ x##latin##_init(&enc->ctx, key->key, key->ksz, 0); \
+ if (reinit_##latin(&enc->ctx, LPVAR_NACLBOX, \
+ &enc->aad.poly, &enc->poly, n, nsz)) \
+ { gedestroy_##latin(&enc->e); return (0); } \
+ return (&enc->e); \
+} \
+ \