=head1 NAME
d2i_DSAPublicKey, i2d_DSAPublicKey, d2i_DSAPrivateKey, i2d_DSAPrivateKey,
-d2i_DSA_PUBKEY, i2d_DSA_PUBKEY, d2i_DSAparams, i2d_DSAparams, d2i_DSA_SIG, i2d_DSA_SIG - DSA key encoding
-and parsing functions.
+d2i_DSA_PUBKEY, i2d_DSA_PUBKEY, d2i_DSAparams, i2d_DSAparams,
+d2i_DSA_SIG, i2d_DSA_SIG - DSA key encoding and parsing functions.
=head1 SYNOPSIS
int i2d_DSA_PUBKEY(const DSA *a, unsigned char **pp);
+ DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa);
+ DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa);
+
+ int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa);
+ int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa);
+
DSA * d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length);
int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp);
d2i_DSA_PUBKEY() and i2d_DSA_PUBKEY() decode and encode an DSA public key using
a SubjectPublicKeyInfo (certificate public key) structure.
+d2i_DSA_PUBKEY_bio(), d2i_DSA_PUBKEY_fp(), i2d_DSA_PUBKEY_bio() and
+i2d_DSA_PUBKEY_fp() are similar to d2i_DSA_PUBKEY() and i2d_DSA_PUBKEY()
+except they decode or encode using a B<BIO> or B<FILE> pointer.
+
d2i_DSAPrivateKey(), i2d_DSAPrivateKey() decode and encode the DSA private key
components.
The B<DSA_PUBKEY> functions should be used in preference to the B<DSAPublicKey>
functions when encoding public keys because they use a standard format.
-The B<DSAPublicKey> functions use an non standard format the actual data encoded
-depends on the value of the B<write_params> field of the B<a> key parameter.
-If B<write_params> is zero then only the B<pub_key> field is encoded as an
-B<INTEGER>. If B<write_params> is 1 then a B<SEQUENCE> consisting of the
-B<p>, B<q>, B<g> and B<pub_key> respectively fields are encoded.
+The B<DSAPublicKey> functions use a non standard format which is a
+B<SEQUENCE> consisting of the B<p>, B<q>, B<g> and B<pub_key> fields
+respectively.
The B<DSAPrivateKey> functions also use a non standard structure consisting
consisting of a SEQUENCE containing the B<p>, B<q>, B<g> and B<pub_key> and