diff --git a/src/cmd/auth/asn12dsa.c b/src/cmd/auth/asn12dsa.c
index 7df5dd7..793dbcd 100644
--- a/src/cmd/auth/asn12dsa.c
+++ b/src/cmd/auth/asn12dsa.c
@@ -59,7 +59,7 @@
 	if(key == nil)
 		sysfatal("couldn't parse asn1 key");
 
-	s = smprint("key proto=dsa %s%sp=%B q=%B alpha=%B key=%B !secret=%B\n",
+	s = smprint("key proto=dsa %s%sp=%lB q=%lB alpha=%lB key=%lB !secret=%lB\n",
 		tag ? tag : "", tag ? " " : "",
 		key->pub.p, key->pub.q, key->pub.alpha, key->pub.key,
 		key->secret);
diff --git a/src/cmd/auth/asn12rsa.c b/src/cmd/auth/asn12rsa.c
index a2df044..abddf8b 100644
--- a/src/cmd/auth/asn12rsa.c
+++ b/src/cmd/auth/asn12rsa.c
@@ -59,7 +59,7 @@
 	if(key == nil)
 		sysfatal("couldn't parse asn1 key");
 
-	s = smprint("key proto=rsa %s%ssize=%d ek=%B !dk=%B n=%B !p=%B !q=%B !kp=%B !kq=%B !c2=%B\n",
+	s = smprint("key proto=rsa %s%ssize=%d ek=%lB !dk=%lB n=%lB !p=%lB !q=%lB !kp=%lB !kq=%lB !c2=%lB\n",
 		tag ? tag : "", tag ? " " : "",
 		mpsignif(key->pub.n), key->pub.ek,
 		key->dk, key->pub.n, key->p, key->q,
diff --git a/src/cmd/auth/dsa2pub.c b/src/cmd/auth/dsa2pub.c
new file mode 100644
index 0000000..37dc832
--- /dev/null
+++ b/src/cmd/auth/dsa2pub.c
@@ -0,0 +1,44 @@
+#include <u.h>
+#include <libc.h>
+#include <auth.h>
+#include <mp.h>
+#include <libsec.h>
+#include "rsa2any.h"
+
+void
+usage(void)
+{
+	fprint(2, "usage: auth/dsa2pub [file]\n");
+	exits("usage");
+}
+
+void
+main(int argc, char **argv)
+{
+	RSApriv *key;
+	Attr *a;
+	char *s;
+
+	fmtinstall('A', _attrfmt);
+	fmtinstall('B', mpfmt);
+	quotefmtinstall();
+
+	ARGBEGIN{
+	default:
+		usage();
+	}ARGEND
+
+	if(argc > 1)
+		usage();
+
+	if((key = getdsakey(argc, argv, 0, &a)) == nil)
+		sysfatal("%r");
+
+	s = smprint("key %A p=%lB q=%lB alpha=%lB key=%lB\n",
+		a, 
+		key->pub.p, key->pub.q, key->pub.alpha, key->pub.key);
+	if(s == nil)
+		sysfatal("smprint: %r");
+	write(1, s, strlen(s));
+	exits(nil);
+}
diff --git a/src/cmd/auth/dsagen.c b/src/cmd/auth/dsagen.c
index 5fa9f99..58d5924 100644
--- a/src/cmd/auth/dsagen.c
+++ b/src/cmd/auth/dsagen.c
@@ -36,7 +36,7 @@
 
 	key = dsagen(nil);
 
-	s = smprint("key proto=dsa %s%sp=%B q=%B alpha=%B key=%B !secret=%B\n",
+	s = smprint("key proto=dsa %s%sp=%lB q=%lB alpha=%lB key=%lB !secret=%lB\n",
 		tag ? tag : "", tag ? " " : "",
 		key->pub.p, key->pub.q, key->pub.alpha, key->pub.key,
 		key->secret);
diff --git a/src/cmd/auth/mkfile b/src/cmd/auth/mkfile
index 39d2f53..2585456 100644
--- a/src/cmd/auth/mkfile
+++ b/src/cmd/auth/mkfile
@@ -6,6 +6,7 @@
 	asn12dsa\
 	asn12rsa\
 	dsagen\
+	dsa2pub\
 	dsa2ssh\
 	passwd\
 	pemdecode\
diff --git a/src/cmd/auth/rsa2pub.c b/src/cmd/auth/rsa2pub.c
index 7de1050..c0a208a 100644
--- a/src/cmd/auth/rsa2pub.c
+++ b/src/cmd/auth/rsa2pub.c
@@ -34,7 +34,7 @@
 	if((key = getkey(argc, argv, 0, &a)) == nil)
 		sysfatal("%r");
 
-	s = smprint("key %A size=%d ek=%B n=%B\n",
+	s = smprint("key %A size=%d ek=%lB n=%lB\n",
 		a, 
 		mpsignif(key->pub.n), key->pub.ek, key->pub.n);
 	if(s == nil)
diff --git a/src/cmd/auth/rsafill.c b/src/cmd/auth/rsafill.c
index b9e26d4..08cb859 100644
--- a/src/cmd/auth/rsafill.c
+++ b/src/cmd/auth/rsafill.c
@@ -34,7 +34,7 @@
 	if((key = getkey(argc, argv, 1, &a)) == nil)
 		sysfatal("%r");
 
-	s = smprint("key %A size=%d ek=%B !dk=%B n=%B !p=%B !q=%B !kp=%B !kq=%B !c2=%B\n",
+	s = smprint("key %A size=%d ek=%lB !dk=%lB n=%lB !p=%lB !q=%lB !kp=%lB !kq=%lB !c2=%lB\n",
 		a, 
 		mpsignif(key->pub.n), key->pub.ek,
 		key->dk, key->pub.n, key->p, key->q,
diff --git a/src/cmd/auth/rsagen.c b/src/cmd/auth/rsagen.c
index d05f562..d51560b 100644
--- a/src/cmd/auth/rsagen.c
+++ b/src/cmd/auth/rsagen.c
@@ -45,7 +45,7 @@
 		key = rsagen(bits, 6, 0);
 	}while(mpsignif(key->pub.n) != bits);
 
-	s = smprint("key proto=rsa %s%ssize=%d ek=%B !dk=%B n=%B !p=%B !q=%B !kp=%B !kq=%B !c2=%B\n",
+	s = smprint("key proto=rsa %s%ssize=%d ek=%lB !dk=%lB n=%lB !p=%lB !q=%lB !kp=%lB !kq=%lB !c2=%lB\n",
 		tag ? tag : "", tag ? " " : "",
 		mpsignif(key->pub.n), key->pub.ek,
 		key->dk, key->pub.n, key->p, key->q,
