aboutsummaryrefslogtreecommitdiff
path: root/src/kdc/do_as_req.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kdc/do_as_req.c')
-rw-r--r--src/kdc/do_as_req.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/kdc/do_as_req.c b/src/kdc/do_as_req.c
index 34723fa..40c0ec2 100644
--- a/src/kdc/do_as_req.c
+++ b/src/kdc/do_as_req.c
@@ -201,6 +201,7 @@ finish_process_as_req(struct as_req_state *state, krb5_error_code errcode)
void *oldarg;
kdc_realm_t *kdc_active_realm = state->active_realm;
krb5_audit_state *au_state = state->au_state;
+ krb5_keyblock *replaced_reply_key = NULL;
assert(state);
oldrespond = state->respond;
@@ -262,10 +263,14 @@ finish_process_as_req(struct as_req_state *state, krb5_error_code errcode)
goto egress;
}
+ if (state->rock.replaced_reply_key)
+ replaced_reply_key = &state->client_keyblock;
+
errcode = handle_authdata(kdc_active_realm, state->c_flags, state->client,
state->server, NULL, state->local_tgt,
&state->local_tgt_key, &state->client_keyblock,
- &state->server_keyblock, NULL, state->req_pkt,
+ &state->server_keyblock, NULL,
+ replaced_reply_key, state->req_pkt,
state->request, NULL, NULL, NULL,
&state->auth_indicators, &state->enc_tkt_reply);
if (errcode) {