From b92da8eb98f9e8ee5c86949c408c9f6e08a33c1e Mon Sep 17 00:00:00 2001 From: mdw Date: Sat, 1 Jul 2000 11:20:51 +0000 Subject: [PATCH] New functions for freeing public and private keys. --- bbs-fetch.c | 26 +++++++++++++++++++++++++- dh-fetch.c | 39 ++++++++++++++++++++++++++++++++++++++- dh.h | 19 ++++++++++++++++++- dsa-fetch.c | 39 ++++++++++++++++++++++++++++++++++++++- dsa.h | 25 +++++++++++++++++++++---- rsa-fetch.c | 32 +++++++++++++++++++++++++++++++- 6 files changed, 171 insertions(+), 9 deletions(-) diff --git a/bbs-fetch.c b/bbs-fetch.c index 87827bc..e0597a0 100644 --- a/bbs-fetch.c +++ b/bbs-fetch.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: bbs-fetch.c,v 1.1 2000/06/17 10:41:45 mdw Exp $ + * $Id: bbs-fetch.c,v 1.2 2000/07/01 11:19:22 mdw Exp $ * * Key fetching for BBS public and private keys * @@ -30,6 +30,9 @@ /*----- Revision history --------------------------------------------------* * * $Log: bbs-fetch.c,v $ + * Revision 1.2 2000/07/01 11:19:22 mdw + * New functions for freeing public and private keys. + * * Revision 1.1 2000/06/17 10:41:45 mdw * Table for driving key data extraction. * @@ -59,4 +62,25 @@ const key_fetchdef bbs_privfetch[] = { { 0, 0, 0, 0 } }; +/* --- @bbs_pubfree@, @bbs_privfree@ --- * + * + * Arguments: @bbs_pub *bp@, @bbs_priv *bp@ = pointer to key block + * + * Returns: --- + * + * Use: Frees an RSA key block. + */ + +void bbs_pubfree(bbs_pub *bp) +{ + mp_drop(bp->n); +} + +void bbs_privfree(bbs_priv *bp) +{ + mp_drop(bp->n); + mp_drop(bp->p); + mp_drop(bp->q); +} + /*----- That's all, folks -------------------------------------------------*/ diff --git a/dh-fetch.c b/dh-fetch.c index 7a7e18c..2f25122 100644 --- a/dh-fetch.c +++ b/dh-fetch.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: dh-fetch.c,v 1.1 2000/06/17 10:41:45 mdw Exp $ + * $Id: dh-fetch.c,v 1.2 2000/07/01 11:19:22 mdw Exp $ * * Key fetching for Diffie-Hellman public and private keys * @@ -30,6 +30,9 @@ /*----- Revision history --------------------------------------------------* * * $Log: dh-fetch.c,v $ + * Revision 1.2 2000/07/01 11:19:22 mdw + * New functions for freeing public and private keys. + * * Revision 1.1 2000/06/17 10:41:45 mdw * Table for driving key data extraction. * @@ -71,4 +74,38 @@ const key_fetchdef dh_privfetch[] = { { 0, 0, 0, 0 } }; +/* --- @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); +} + /*----- That's all, folks -------------------------------------------------*/ diff --git a/dh.h b/dh.h index 2fff372..2ae710c 100644 --- a/dh.h +++ b/dh.h @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: dh.h,v 1.4 2000/06/17 10:52:47 mdw Exp $ + * $Id: dh.h,v 1.5 2000/07/01 11:20:51 mdw Exp $ * * Diffie-Hellman and related public-key systems * @@ -30,6 +30,9 @@ /*----- Revision history --------------------------------------------------* * * $Log: dh.h,v $ + * Revision 1.5 2000/07/01 11:20:51 mdw + * New functions for freeing public and private keys. + * * Revision 1.4 2000/06/17 10:52:47 mdw * Minor changes for key fetching. * @@ -88,6 +91,20 @@ extern const key_fetchdef dh_pubfetch[]; extern const key_fetchdef dh_privfetch[]; #define DH_PRIVFETCHSZ 9 +/* --- @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. + */ + +extern void dh_paramfree(dh_param */*dp*/); +extern void dh_pubfree(dh_pub */*dp*/); +extern void dh_privfree(dh_priv */*dp*/); + /*----- Functions provided ------------------------------------------------*/ /* --- @dh_gen@ --- * diff --git a/dsa-fetch.c b/dsa-fetch.c index 440f80e..27c446e 100644 --- a/dsa-fetch.c +++ b/dsa-fetch.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: dsa-fetch.c,v 1.1 2000/06/17 10:41:45 mdw Exp $ + * $Id: dsa-fetch.c,v 1.2 2000/07/01 11:19:22 mdw Exp $ * * Key fetching for DSA public and private keys * @@ -30,6 +30,9 @@ /*----- Revision history --------------------------------------------------* * * $Log: dsa-fetch.c,v $ + * Revision 1.2 2000/07/01 11:19:22 mdw + * New functions for freeing public and private keys. + * * Revision 1.1 2000/06/17 10:41:45 mdw * Table for driving key data extraction. * @@ -71,4 +74,38 @@ const key_fetchdef dsa_privfetch[] = { { 0, 0, 0, 0 } }; +/* --- @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); +} + /*----- That's all, folks -------------------------------------------------*/ diff --git a/dsa.h b/dsa.h index e891b40..2b4949d 100644 --- a/dsa.h +++ b/dsa.h @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: dsa.h,v 1.5 2000/06/17 10:53:42 mdw Exp $ + * $Id: dsa.h,v 1.6 2000/07/01 11:20:51 mdw Exp $ * * Digital Signature Algorithm * @@ -30,6 +30,9 @@ /*----- Revision history --------------------------------------------------* * * $Log: dsa.h,v $ + * Revision 1.6 2000/07/01 11:20:51 mdw + * New functions for freeing public and private keys. + * * Revision 1.5 2000/06/17 10:53:42 mdw * Minor changes for key fetching. Typesetting fixes. * @@ -126,6 +129,20 @@ extern const key_fetchdef dsa_pubfetch[]; extern const key_fetchdef dsa_privfetch[]; #define DSA_PRIVFETCHSZ 9 +/* --- @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. + */ + +extern void dsa_paramfree(dsa_param */*dp*/); +extern void dsa_pubfree(dsa_pub */*dp*/); +extern void dsa_privfree(dsa_priv */*dp*/); + /*----- DSA stepper -------------------------------------------------------*/ typedef struct dsa_stepctx { @@ -250,9 +267,9 @@ extern int dsa_vrfy(const dsa_param */*dp*/, mp */*y*/, */ extern int dsa_verify(const dsa_param */*dp*/, mp */*y*/, - const void */*m*/, size_t /*msz*/, - const void */*r*/, size_t /*rsz*/, - const void */*s*/, size_t /*ssz*/); + const void */*m*/, size_t /*msz*/, + const void */*r*/, size_t /*rsz*/, + const void */*s*/, size_t /*ssz*/); /*----- That's all, folks -------------------------------------------------*/ diff --git a/rsa-fetch.c b/rsa-fetch.c index f3dcc1d..feb8e97 100644 --- a/rsa-fetch.c +++ b/rsa-fetch.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: rsa-fetch.c,v 1.1 2000/06/17 10:41:45 mdw Exp $ + * $Id: rsa-fetch.c,v 1.2 2000/07/01 11:19:22 mdw Exp $ * * Key fetching for RSA public and private keys * @@ -30,6 +30,9 @@ /*----- Revision history --------------------------------------------------* * * $Log: rsa-fetch.c,v $ + * Revision 1.2 2000/07/01 11:19:22 mdw + * New functions for freeing public and private keys. + * * Revision 1.1 2000/06/17 10:41:45 mdw * Table for driving key data extraction. * @@ -65,4 +68,31 @@ const key_fetchdef rsa_privfetch[] = { { 0, 0, 0, 0 } }; +/* --- @rsa_pubfree@, @rsa_privfree@ --- * + * + * Arguments: @rsa_pub *rp@, @rsa_priv *rp@ = pointer to key block + * + * Returns: --- + * + * Use: Frees an RSA key block. + */ + +void rsa_pubfree(rsa_pub *rp) +{ + mp_drop(rp->n); + mp_drop(rp->e); +} + +void rsa_privfree(rsa_priv *rp) +{ + mp_drop(rp->n); + mp_drop(rp->e); + mp_drop(rp->p); + mp_drop(rp->q); + mp_drop(rp->q_inv); + mp_drop(rp->d); + mp_drop(rp->dp); + mp_drop(rp->dq); +} + /*----- That's all, folks -------------------------------------------------*/ -- 2.11.0