/* -*-c-*-
*
- * $Id: keyutil.c,v 1.6 2000/06/17 11:28:22 mdw Exp $
+ * $Id: keyutil.c,v 1.7 2000/07/01 11:18:51 mdw Exp $
*
* Simple key manager program
*
/*----- Revision history --------------------------------------------------*
*
* $Log: keyutil.c,v $
+ * Revision 1.7 2000/07/01 11:18:51 mdw
+ * Use new interfaces for key manipulation.
+ *
* Revision 1.6 2000/06/17 11:28:22 mdw
* Use secure memory interface from MP library. `rand_getgood' is
* deprecated.
static void alg_rsa(keyopts *k)
{
- rsa_param rp;
+ rsa_priv rp;
key_data *kd;
/* --- Sanity checking --- */
{
grand *g = fibrand_create(rand_global.ops->word(&rand_global));
- mpmont mm;
+ rsa_pub rpp;
mp *m = mprand_range(MP_NEW, rp.n, g, 0);
mp *c;
- /* --- Encrypt the plaintext --- */
-
- mpmont_create(&mm, rp.n);
- c = mpmont_exp(&mm, MP_NEW, m, rp.e);
- mpmont_destroy(&mm);
-
- /* --- Decrypt the ciphertext --- */
-
- c = rsa_decrypt(&rp, c, c, g);
-
- /* --- Check everything went OK --- */
+ rpp.n = rp.n;
+ rpp.e = rp.e;
+ c = rsa_qpubop(&rpp, MP_NEW, m);
+ c = rsa_qprivop(&rp, c, c, g);
if (MP_CMP(c, !=, m))
die(EXIT_FAILURE, "test encryption failed");
mpkey(kd, "d-mod-q", rp.dq, KCAT_PRIV | KF_BURN);
dolock(k, kd, "private");
- mp_drop(rp.p); mp_drop(rp.q); mp_drop(rp.n); mp_drop(rp.q_inv);
- mp_drop(rp.e); mp_drop(rp.d); mp_drop(rp.dp); mp_drop(rp.dq);
+ rsa_privfree(&rp);
}
static void alg_dsaparam(keyopts *k)
static void alg_bbs(keyopts *k)
{
- bbs_param bp;
+ bbs_priv bp;
key_data *kd;
/* --- Sanity checking --- */
mpkey(kd, "q", bp.q, KCAT_PRIV | KF_BURN);
dolock(k, kd, "private");
- mp_drop(bp.p); mp_drop(bp.q); mp_drop(bp.n);
+ bbs_privfree(&bp);
}
/* --- The algorithm tables --- */