enable DES when getting the afs credential
This commit is contained in:
@@ -163,6 +163,7 @@ get_cred(struct kafs_data *data, const char *name, const char *inst,
|
|||||||
krb5_error_code ret;
|
krb5_error_code ret;
|
||||||
krb5_creds in_creds, *out_creds;
|
krb5_creds in_creds, *out_creds;
|
||||||
struct krb5_kafs_data *d = data->data;
|
struct krb5_kafs_data *d = data->data;
|
||||||
|
int invalid;
|
||||||
|
|
||||||
memset(&in_creds, 0, sizeof(in_creds));
|
memset(&in_creds, 0, sizeof(in_creds));
|
||||||
|
|
||||||
@@ -175,8 +176,19 @@ get_cred(struct kafs_data *data, const char *name, const char *inst,
|
|||||||
krb5_free_principal(d->context, in_creds.server);
|
krb5_free_principal(d->context, in_creds.server);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
in_creds.session.keytype = ETYPE_DES_CBC_CRC;
|
in_creds.session.keytype = ETYPE_DES_CBC_CRC;
|
||||||
|
|
||||||
|
/* check if des is disable, and in that case enable it for afs */
|
||||||
|
invalid = krb5_enctype_valid(d->context, in_creds.session.keytype);
|
||||||
|
if (invalid)
|
||||||
|
krb5_enctype_enable(d->context, in_creds.session.keytype);
|
||||||
|
|
||||||
ret = krb5_get_credentials(d->context, 0, d->id, &in_creds, &out_creds);
|
ret = krb5_get_credentials(d->context, 0, d->id, &in_creds, &out_creds);
|
||||||
|
|
||||||
|
if (invalid)
|
||||||
|
krb5_enctype_disable(d->context, in_creds.session.keytype);
|
||||||
|
|
||||||
krb5_free_principal(d->context, in_creds.server);
|
krb5_free_principal(d->context, in_creds.server);
|
||||||
krb5_free_principal(d->context, in_creds.client);
|
krb5_free_principal(d->context, in_creds.client);
|
||||||
if(ret)
|
if(ret)
|
||||||
|
Reference in New Issue
Block a user