static void acmd_algs(admin *a, unsigned ac, char *av[])
{
+ peer *p;
+ const kdata *kd;
+ const group *g;
+ const algswitch *algs;
+
+ if (!ac)
+ kd = master;
+ else {
+ if ((p = a_findpeer(a, av[0])) == 0) return;
+ kd = p->kx.kpriv;
+ }
+ g = kd->g;
+ algs = &kd->algs;
+
a_info(a,
- "kx-group=%s", gg->ops->name,
- "kx-group-order-bits=%lu", (unsigned long)mp_bits(gg->r),
- "kx-group-elt-bits=%lu", (unsigned long)gg->nbits,
+ "kx-group=%s", g->ops->name,
+ "kx-group-order-bits=%lu", (unsigned long)mp_bits(g->r),
+ "kx-group-elt-bits=%lu", (unsigned long)g->nbits,
A_END);
a_info(a,
- "hash=%s", algs.h->name,
- "mgf=%s", algs.mgf->name,
- "hash-sz=%lu", (unsigned long)algs.h->hashsz,
+ "hash=%s", algs->h->name,
+ "mgf=%s", algs->mgf->name,
+ "hash-sz=%lu", (unsigned long)algs->h->hashsz,
A_END);
a_info(a,
- "cipher=%s", algs.c->name,
- "cipher-keysz=%lu", (unsigned long)algs.cksz,
- "cipher-blksz=%lu", (unsigned long)algs.c->blksz,
+ "cipher=%s", algs->c->name,
+ "cipher-keysz=%lu", (unsigned long)algs->cksz,
+ "cipher-blksz=%lu", (unsigned long)algs->c->blksz,
A_END);
a_info(a,
- "cipher-data-limit=%lu", (unsigned long)algs.expsz,
+ "cipher-data-limit=%lu", (unsigned long)algs->expsz,
A_END);
a_info(a,
- "mac=%s", algs.m->name,
- "mac-keysz=%lu", (unsigned long)algs.mksz,
- "mac-tagsz=%lu", (unsigned long)algs.tagsz,
+ "mac=%s", algs->m->name,
+ "mac-keysz=%lu", (unsigned long)algs->mksz,
+ "mac-tagsz=%lu", (unsigned long)algs->tagsz,
A_END);
a_ok(a);
}
static const acmd acmdtab[] = {
{ "add", "[OPTIONS] PEER ADDR ...", 2, 0xffff, acmd_add },
{ "addr", "PEER", 1, 1, acmd_addr },
- { "algs", 0, 0, 0, acmd_algs },
+ { "algs", "[PEER]", 0, 1, acmd_algs },
{ "bgcancel", "TAG", 1, 1, acmd_bgcancel },
{ "checkchal", "CHAL", 1, 1, acmd_checkchal },
{ "daemon", 0, 0, 0, acmd_daemon },