+/* --- @dh_paramfree@, @dh_pubfree@, @dh_privfree@ --- *
+ *
+ * Arguments: @dh_param *dp@, @dh_pub *dp@, @dh_priv *dp@ = pointer
+ * to key block to free
+ *
+ * Returns: ---
+ *
+ * Use: Frees a Diffie-Hellman key block.
+ */
+
+void dh_paramfree(dh_param *dp)
+{
+ mp_drop(dp->p);
+ mp_drop(dp->q);
+ mp_drop(dp->g);
+}
+
+void dh_pubfree(dh_pub *dp)
+{
+ mp_drop(dp->dp.p);
+ mp_drop(dp->dp.q);
+ mp_drop(dp->dp.g);
+ mp_drop(dp->y);
+}
+
+void dh_privfree(dh_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);
+}
+