chiark / gitweb /
Merge branch 'privsep'
[tripe] / server / admin.c
index ccd49b7373789da37750b086c9bde70e85db6150..a62bbe2243821a077725f71c7f3d1f88eb8e7b52 100644 (file)
@@ -1666,6 +1666,34 @@ static void acmd_bgcancel(admin *a, unsigned ac, char *av[])
   }
 }
 
+static void acmd_algs(admin *a, unsigned ac, char *av[])
+{
+  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,
+        A_END);
+  a_info(a,
+        "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,
+        A_END);
+  a_info(a,
+        "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,
+        A_END);
+  a_ok(a);
+}
+
 static void acmd_list(admin *a, unsigned ac, char *av[])
 {
   FOREACH_PEER(p, {  a_info(a, "%s", p_name(p), A_END); });
@@ -1866,6 +1894,7 @@ static void acmd_help(admin */*a*/, unsigned /*ac*/, char */*av*/[]);
 static const acmd acmdtab[] = {
   { "add",     "[OPTIONS] PEER ADDR ...", 2,   0xffff, acmd_add },
   { "addr",    "PEER",                 1,      1,      acmd_addr },
+  { "algs",    0,                      0,      0,      acmd_algs },
   { "bgcancel",        "TAG",                  1,      1,      acmd_bgcancel },
   { "checkchal", "CHAL",               1,      1,      acmd_checkchal },
   { "daemon",  0,                      0,      0,      acmd_daemon },