(pk_rd_pa_reply_dh): use krb5_random_to_key

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@13823 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2004-04-29 08:21:59 +00:00
parent 1d8257ac92
commit 37fccbef81

View File

@@ -1525,42 +1525,13 @@ pk_rd_pa_reply_dh(krb5_context context,
goto out; goto out;
} }
/* XXX all this stuff only to get the key length ? */ ret = krb5_random_to_key(context, etype, dh_gen_key, dh_gen_keylen, *key);
switch(etype) { if (ret) {
case ETYPE_DES3_CBC_SHA1:
case ETYPE_OLD_DES3_CBC_SHA1:
case ETYPE_DES_CBC_CRC:
case ETYPE_DES_CBC_MD4:
case ETYPE_DES_CBC_MD5: {
DES_cblock *k;
ret = krb5_generate_random_keyblock(context, etype, *key);
if (ret) {
free(*key);
*key = NULL;
goto out;
}
memcpy((*key)->keyvalue.data, dh_gen_key, (*key)->keyvalue.length);
k = (*key)->keyvalue.data;
DES_set_odd_parity(&k[0]);
switch (etype) {
case ETYPE_OLD_DES3_CBC_SHA1:
case ETYPE_DES3_CBC_SHA1:
DES_set_odd_parity(&k[1]);
DES_set_odd_parity(&k[2]);
break;
default:
break;
}
(*key)->keytype = etype;
break;
}
default:
krb5_set_error_string(context, krb5_set_error_string(context,
"PKINIT: unsupported enctype %d", etype); "PKINIT: can't create key from DH key");
ret = EINVAL; free(*key);
break; *key = NULL;
goto out;
} }
out: out: