From 68af5839511973a4322bcad92b251858ec1fee71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Wed, 29 Jun 2005 00:41:57 +0000 Subject: [PATCH] Add logging of all timestamps in AS-REQ and TGS-REQ, for auditing git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15523 ec53bebd-3082-4978-b11e-865c3cabbd6b --- kdc/kerberos5.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/kdc/kerberos5.c b/kdc/kerberos5.c index 18583648e..736c65755 100644 --- a/kdc/kerberos5.c +++ b/kdc/kerberos5.c @@ -174,6 +174,28 @@ make_anonymous_principalname (PrincipalName *pn) return 0; } +static void +log_timestamp(const char *type, + KerberosTime authtime, KerberosTime *starttime, + KerberosTime endtime, KerberosTime *renew_till) +{ + char atime[100], stime[100], etime[100], rtime[100]; + + krb5_format_time(context, authtime, atime, sizeof(atime), TRUE); + if (starttime) + krb5_format_time(context, *starttime, stime, sizeof(stime), TRUE); + else + strlcpy(stime, "unset", sizeof(stime)); + krb5_format_time(context, endtime, etime, sizeof(etime), TRUE); + if (renew_till) + krb5_format_time(context, *renew_till, rtime, sizeof(rtime), TRUE); + else + strlcpy(rtime, "unset", sizeof(rtime)); + + kdc_log(5, "%s authtime: %s starttime: %s endtype: %s renew till: %s", + type, atime, stime, etime, rtime); +} + static krb5_error_code encode_reply(KDC_REP *rep, EncTicketPart *et, EncKDCRepPart *ek, krb5_enctype etype, @@ -1222,6 +1244,9 @@ as_rep(KDC_REQ *req, rep.padata = NULL; } + log_timestamp("AS-REQ", et.authtime, et.starttime, + et.endtime, et.renew_till); + ret = encode_reply(&rep, &et, &ek, setype, server->kvno, &skey->key, client->kvno, reply_key, &e_text, reply); free_EncTicketPart(&et); @@ -1633,7 +1658,10 @@ tgs_make_reply(KDC_REQ_BODY *b, ek.renew_till = et.renew_till; ek.srealm = rep.ticket.realm; ek.sname = rep.ticket.sname; - + + log_timestamp("TGS-REQ", et.authtime, et.starttime, + et.endtime, et.renew_till); + /* 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