chiark / gitweb /
server: Use the new kdata system.
[tripe] / server / keyset.c
index 1f580ff7b79830ee107c6f897653e896a0b4c94b..898c55a4ccd9a8de84d42a4e912bfc6d74c85b78 100644 (file)
@@ -293,6 +293,7 @@ keyset *ks_gen(const void *k, size_t x, size_t y, size_t z, peer *p)
   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); )
@@ -308,21 +309,21 @@ keyset *ks_gen(const void *k, size_t x, size_t y, size_t z, peer *p)
 
 #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);                                                       \
@@ -347,14 +348,14 @@ keyset *ks_gen(const void *k, size_t x, size_t y, size_t z, peer *p)
   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);
 }