Lots of man pages.
diff --git a/man/man3/dsa.3 b/man/man3/dsa.3
new file mode 100644
index 0000000..5535164
--- /dev/null
+++ b/man/man3/dsa.3
@@ -0,0 +1,132 @@
+.TH DSA 3
+.SH NAME
+dsagen, dsasign, dsaverify, dsapuballoc, dsapubfree, dsaprivalloc, dsaprivfree, dsasigalloc, dsasigfree, dsaprivtopub - digital signature algorithm
+.SH SYNOPSIS
+.B #include <u.h>
+.br
+.B #include <libc.h>
+.br
+.B #include <mp.h>
+.br
+.B #include <libsec.h>
+.PP
+.B
+DSApriv*	dsagen(DSApub *opub)
+.PP
+.B
+DSAsig*	dsasign(DSApriv *k, mpint *m)
+.PP
+.B
+int		dsaverify(DSApub *k, DSAsig *sig, mpint *m)
+.PP
+.B
+DSApub*	dsapuballoc(void)
+.PP
+.B
+void		dsapubfree(DSApub*)
+.PP
+.B
+DSApriv*	dsaprivalloc(void)
+.PP
+.B
+void		dsaprivfree(DSApriv*)
+.PP
+.B
+DSAsig*	dsasigalloc(void)
+.PP
+.B
+void		dsasigfree(DSAsig*)
+.PP
+.B
+DSApub*	dsaprivtopub(DSApriv*)
+.SH DESCRIPTION
+.PP
+DSA is the NIST approved digital signature algorithm.  The owner of a key publishes
+the public part of the key:
+.EX
+	struct DSApub
+	{
+		mpint	*p;	// modulus
+		mpint	*q;	// group order, q divides p-1
+		mpint	*alpha;	// group generator
+		mpint	*key;	// alpha**secret mod p
+	};
+.EE
+This part can be used for verifying signatures (with
+.IR dsaverify )
+created by the owner.
+The owner signs (with
+.IR dsasign )
+using his private key:
+.EX
+	struct DSApriv
+	{
+		DSApub	pub;
+		mpint	*secret; // (decryption key)
+	};
+.EE
+.PP
+Keys are generated using
+.IR dsagen .
+If
+.IR dsagen 's
+argument
+.I opub
+is
+.BR nil ,
+a key is created using a new
+.B p
+and
+.B q
+generated by
+.IR DSAprimes (2).
+Otherwise,
+.B p
+and
+.B q
+are copied from the old key.
+.PP
+.I Dsaprivtopub
+returns a newly allocated copy of the public key
+corresponding to the private key.
+.PP
+The routines
+.IR dsapuballoc ,
+.IR dsapubfree ,
+.IR dsaprivalloc ,
+and
+.I dsaprivfree
+are provided to manage key storage.
+.PP
+.I Dsasign
+signs message
+.I m
+using a private key
+.I k
+yielding a
+.EX
+	struct DSAsig
+	{
+		mpint	*r, *s;
+	};
+.EE
+.I Dsaverify
+returns 0 if the signature is valid and \-1 if not.
+.PP
+The routines
+.I dsasigalloc
+and
+.I dsasigfree
+are provided to manage signature storage.
+.SH SOURCE
+.B /sys/src/libsec
+.SH SEE ALSO
+.IR mp (2),
+.IR aes (2),
+.IR blowfish (2),
+.IR des (2),
+.IR rc4 (2),
+.IR rsa (2),
+.IR sechash (2),
+.IR prime (2),
+.IR rand (2)