make excpetion for known weak types

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23598 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2008-08-17 14:11:19 +00:00
parent 3a0b87a303
commit b5910292fc

View File

@@ -678,6 +678,7 @@ tgs_make_reply(krb5_context context,
EncTicketPart et;
KDCOptions f = b->kdc_options;
krb5_error_code ret;
int is_weak = 0;
memset(&rep, 0, sizeof(rep));
memset(&et, 0, sizeof(et));
@@ -885,6 +886,14 @@ tgs_make_reply(krb5_context context,
goto out;
}
if (krb5_enctype_valid(context, et.key.keytype) != 0
&& _kdc_is_weak_expection(server->entry.principal, et.key.keytype))
{
krb5_enctype_enable(context, et.key.keytype);
is_weak = 1;
}
/* It is somewhat unclear where the etype in the following
encryption should come from. What we have is a session
key in the passed tgt, and a list of preferred etypes
@@ -899,6 +908,9 @@ tgs_make_reply(krb5_context context,
&rep, &et, &ek, et.key.keytype,
kvno,
serverkey, 0, &tgt->key, e_text, reply);
if (is_weak)
krb5_enctype_disable(context, et.key.keytype);
out:
free_TGS_REP(&rep);
free_TransitedEncoding(&et.transited);