#include#include
DSA * d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length);
int i2d_DSAPublicKey(const DSA *a, unsigned char **pp);
DSA * d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length);
int i2d_DSA_PUBKEY(const DSA *a, unsigned char **pp);
DSA * d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length);
int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp);
DSA * d2i_DSAparams(DSA **a, const unsigned char **pp, long length);
int i2d_DSAparams(const DSA *a, unsigned char **pp);
DSA * d2i_DSA_SIG(DSA_SIG **a, const unsigned char **pp, long length);
int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp);
_d_2_i___D_S_A___P_U_B_K_E_Y_(_) and _i_2_d___D_S_A___P_U_B_K_E_Y_(_) decode and encode an DSA public key using a SubjectPublicKeyInfo (certificate public key) structure.
_d_2_i___D_S_A_P_r_i_v_a_t_e_K_e_y_(_), _i_2_d___D_S_A_P_r_i_v_a_t_e_K_e_y_(_) decode and encode the DSA private key components.
_d_2_i___D_S_A_p_a_r_a_m_s_(_), _i_2_d___D_S_A_p_a_r_a_m_s_(_) decode and encode the DSA parameters using a DDssss--PPaarrmmss structure as defined in RFC2459.
_d_2_i___D_S_A___S_I_G_(_), _i_2_d___D_S_A___S_I_G_(_) decode and encode a DSA signature using a DDssss--SSiigg--VVaalluuee structure as defined in RFC2459.
The usage of all of these functions is similar to the _d_2_i___X_5_0_9_(_) and _i_2_d___X_5_0_9_(_) described in the _d_2_i___X_5_0_9(3) manual page.
The data encoded by the private key functions is unencrypted and therefore offers no private key security.
The DDSSAA__PPUUBBKKEEYY functions should be used in preference to the DDSSAAPPuubblliiccKKeeyy functions when encoding public keys because they use a standard format.
The DDSSAAPPuubblliiccKKeeyy functions use an non standard format the actual data encoded depends on the value of the wwrriittee__ppaarraammss field of the aa key parameter. If wwrriittee__ppaarraammss is zero then only the ppuubb__kkeeyy field is encoded as an IINNTTEEGGEERR. If wwrriittee__ppaarraammss is 1 then a SSEEQQUUEENNCCEE consisting of the pp, qq, gg and ppuubb__kkeeyy respectively fields are encoded.
The DDSSAAPPrriivvaatteeKKeeyy functions also use a non standard structure consiting consisting of a SEQUENCE containing the pp, qq, gg and ppuubb__kkeeyy and pprriivv__kkeeyy fields respectively.