#endif
static const trace_opt w_opts[] = {
+#ifndef NTRACE
{ 't', AF_TRACE, "trace messages" },
+#endif
{ 'n', AF_NOTE, "asynchronous notifications" },
{ 'w', AF_WARN, "warnings" },
{ 'A', AF_ALLMSGS, "all of the above" },
add = xmalloc(sizeof(*add));
add->peer.name = 0;
add->peer.tag = 0;
+ add->peer.privtag = 0;
add->peer.t_ka = 0;
add->peer.tops = tun_default;
add->peer.f = 0;
add->peer.tag = xstrdup(arg);
})
OPT("-mobile", { add->peer.f |= PSF_MOBILE; })
+ OPTARG("-priv", arg, {
+ if (add->peer.privtag)
+ xfree(add->peer.privtag);
+ add->peer.privtag = xstrdup(arg);
+ })
});
/* --- Make sure someone's not got there already --- */
fail:
if (add->peer.name) xfree(add->peer.name);
if (add->peer.tag) xfree(add->peer.tag);
+ if (add->peer.privtag) xfree(add->peer.privtag);
xfree(add);
return;
}
"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,
+ "bulk-transform=%s", algs->bulk->name,
+ "bulk-overhead=%lu", (unsigned long)algs->bulk->overhead(algs),
A_END);
+ if (algs->c) {
+ 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);
+ if (algs->m) {
+ a_info(a,
+ "mac=%s", algs->m->name,
+ "mac-keysz=%lu", (unsigned long)algs->mksz,
+ "mac-tagsz=%lu", (unsigned long)algs->tagsz,
+ A_END);
+ }
+ if (algs->b) {
+ a_info(a,
+ "blkc=%.*s", strlen(algs->b->name) - 4, algs->b->name,
+ "blkc-keysz=%lu", (unsigned long)algs->bksz,
+ "blkc-blksz=%lu", (unsigned long)algs->b->blksz,
+ A_END);
+ }
a_ok(a);
}
{
peer *p;
const peerspec *ps;
+ const char *ptag;
if ((p = a_findpeer(a, av[0])) != 0) {
ps = p_spec(p);
a_info(a, "tunnel=%s", ps->tops->name, A_END);
- a_info(a, "key=%s", p_tag(p), A_END);
+ a_info(a, "key=%s", p_tag(p),
+ "current-key=%s", p->kx.kpub->tag, A_END);
+ if ((ptag = p_privtag(p)) == 0) ptag = "(default)";
+ a_info(a, "private-key=%s", ptag,
+ "current-private-key=%s", p->kx.kpriv->tag, A_END);
a_info(a, "keepalive=%lu", ps->t_ka, A_END);
a_ok(a);
}