#define RSAPUB_LOADCORE_PASSBN(ix,en,what) \
en##s, en##_loc,
+#define RSAPUB_INIT_ST_BN( ix,en,what) mpz_init (&st->en);
+#define RSAPUB_CLEAR_ST_BN(ix,en,what) mpz_clear(&st->en);
+
struct rsapub {
closure_t cl;
struct sigpubkey_if ops;
st->ops.hash=0;
st->ops.dispose=rsapub_dispose;
st->loc=overall_loc;
+ RSAPUB_BNS(RSAPUB_INIT_ST_BN)
#define RSAPUB_LOADCORE_GETBN(ix,en,what) \
if (mpz_init_set_str(&st->en,en##s,10)!=0) { \
RSAPUB_BNS(RSAPUB_LOADCORE_GETBN)
return st;
+
+ error_out:
+ rsapub_dispose(st);
+ return 0;
}
static list_t *rsapub_apply(closure_t *self, struct cloc loc, dict_t *context,