/* -*-c-*-
*
- * $Id: keyutil.c,v 1.5 2000/02/12 18:21:03 mdw Exp $
+ * $Id: keyutil.c,v 1.6 2000/06/17 11:28:22 mdw Exp $
*
* Simple key manager program
*
/*----- Revision history --------------------------------------------------*
*
* $Log: keyutil.c,v $
+ * Revision 1.6 2000/06/17 11:28:22 mdw
+ * Use secure memory interface from MP library. `rand_getgood' is
+ * deprecated.
+ *
* Revision 1.5 2000/02/12 18:21:03 mdw
* Overhaul of key management (again).
*
sz = (k->bits + 7) >> 3;
p = sub_alloc(sz);
m = (1 << (((k->bits - 1) & 7) + 1)) - 1;
- rand_getgood(RAND_GLOBAL, p, sz);
+ rand_get(RAND_GLOBAL, p, sz);
*p &= m;
key_binary(&k->k->k, p, sz);
k->k->k.e |= KCAT_SYMM | KF_BURN;
sz = k->bits / 7;
p = sub_alloc(sz);
- rand_getgood(RAND_GLOBAL, p, sz); /* Too much work done here! */
+ rand_get(RAND_GLOBAL, p, sz); /* Too much work done here! */
for (i = 0; i < sz; i++) {
octet x = p[i] | 0x01;
x = x ^ (x >> 4);
sz = (k->qbits + 7) >> 3;
p = sub_alloc(sz);
- rand_getgood(RAND_GLOBAL, p, sz);
+ rand_get(RAND_GLOBAL, p, sz);
/* --- Allocate the parameters --- */
/* --- Choose a private key --- */
- x = mprand_range(MP_NEW, q, &rand_global, 0);
- mp_burn(x);
+ x = mprand_range(MP_NEWSEC, q, &rand_global, 0);
mpmont_create(&mm, p);
y = mpmont_exp(&mm, MP_NEW, g, x);
* Since %$g$% has order %$q$%, choose %$x < q$%.
*/
- x = mprand_range(MP_NEW, q, &rand_global, 0);
- mp_burn(x);
+ x = mprand_range(MP_NEWSEC, q, &rand_global, 0);
/* --- Compute the public key %$y = g^x \bmod p$% --- */
/* --- Initialize the Catacomb random number generator --- */
- rand_init(RAND_GLOBAL);
rand_noisesrc(RAND_GLOBAL, &noise_source);
+ rand_seed(RAND_GLOBAL, 160);
/* --- Dispatch to appropriate command handler --- */