+/* --- @dsa_paramfree@, @dsa_pubfree@, @dsa_privfree@ --- *
+ *
+ * Arguments: @dsa_param *dp@, @dsa_pub *dp@, @dsa_priv *dp@ = pointer
+ * to key block to free
+ *
+ * Returns: ---
+ *
+ * Use: Frees a DSA key block.
+ */
+
+void dsa_paramfree(dsa_param *dp)
+{
+ mp_drop(dp->p);
+ mp_drop(dp->q);
+ mp_drop(dp->g);
+}
+
+void dsa_pubfree(dsa_pub *dp)
+{
+ mp_drop(dp->dp.p);
+ mp_drop(dp->dp.q);
+ mp_drop(dp->dp.g);
+ mp_drop(dp->y);
+}
+
+void dsa_privfree(dsa_priv *dp)
+{
+ mp_drop(dp->dp.p);
+ mp_drop(dp->dp.q);
+ mp_drop(dp->dp.g);
+ mp_drop(dp->y);
+ mp_drop(dp->x);
+}
+