keyset *ks = CREATE(keyset);
time_t now = time(0);
const octet *pp = k;
+ const algswitch *algs = &p->kx.kpriv->algs;
T( static unsigned seq = 0; )
T( trace(T_KEYSET, "keyset: adding new keyset %u", seq); )
#define HASH_in MINE; YOURS; OURS
#define HASH_out YOURS; MINE; OURS
-#define INIT_c(k) GC_INIT(algs.c, (k), algs.cksz)
-#define INIT_m(k) GM_KEY(algs.m, (k), algs.mksz)
+#define INIT_c(k) GC_INIT(algs->c, (k), algs->cksz)
+#define INIT_m(k) GM_KEY(algs->m, (k), algs->mksz)
#define STR_c "encryption"
#define STR_m "integrity"
#define STR_in "incoming"
#define STR_out "outgoing"
#define SETKEY(a, dir) do { \
- h = GH_INIT(algs.h); \
+ h = GH_INIT(algs->h); \
HASH_STRING(h, "tripe-" STR_##a); \
HASH_##dir; \
hh = GH_DONE(h, 0); \
IF_TRACING(T_KEYSET, { \
trace_block(T_CRYPTO, "crypto: " STR_##dir " key " STR_##a, \
- hh, algs.a##ksz); \
+ hh, algs->a##ksz); \
}) \
ks->a##dir = INIT_##a(hh); \
GH_DESTROY(h); \
T( ks->seq = seq++; )
ks->ref = 1;
ks->t_exp = now + T_EXP;
- ks->sz_exp = algs.expsz;
- ks->sz_regen = algs.expsz/2;
+ ks->sz_exp = algs->expsz;
+ ks->sz_regen = algs->expsz/2;
ks->oseq = 0;
seq_reset(&ks->iseq);
ks->next = 0;
ks->p = p;
ks->f = KSF_LISTEN;
- ks->tagsz = algs.tagsz;
+ ks->tagsz = algs->tagsz;
return (ks);
}