From 94bf464f8d00c209ae2bd6ee8b71026daa76fafb Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Sun, 27 Oct 2019 00:19:46 -0500 Subject: [PATCH] krb5: Add krb5_ticket_get_times() --- lib/krb5/libkrb5-exports.def.in | 1 + lib/krb5/ticket.c | 25 ++++++++++++++++++++++++- lib/krb5/version-script.map | 1 + 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/lib/krb5/libkrb5-exports.def.in b/lib/krb5/libkrb5-exports.def.in index 1afc21680..c06e1f48e 100644 --- a/lib/krb5/libkrb5-exports.def.in +++ b/lib/krb5/libkrb5-exports.def.in @@ -684,6 +684,7 @@ EXPORTS krb5_ticket_get_authorization_data_type krb5_ticket_get_client krb5_ticket_get_endtime + krb5_ticket_get_times krb5_ticket_get_server krb5_timeofday krb5_unparse_name diff --git a/lib/krb5/ticket.c b/lib/krb5/ticket.c index bb32e1141..511f89921 100644 --- a/lib/krb5/ticket.c +++ b/lib/krb5/ticket.c @@ -147,7 +147,7 @@ krb5_ticket_get_server(krb5_context context, } /** - * Return end time of ticket + * Return end time of a ticket * * @param context a Kerberos 5 context * @param ticket ticket to copy @@ -164,6 +164,29 @@ krb5_ticket_get_endtime(krb5_context context, return ticket->ticket.endtime; } +/** + * Return authentication, start, end, and renew limit times of a ticket + * + * @param context a Kerberos 5 context + * @param ticket ticket to copy + * @param t pointer to krb5_times structure + * + * @ingroup krb5 + */ + +KRB5_LIB_FUNCTION void KRB5_LIB_CALL +krb5_ticket_get_times(krb5_context context, + const krb5_ticket *ticket, + krb5_times *t) +{ + t->authtime = ticket->ticket.authtime; + t->starttime = ticket->ticket.starttime ? *ticket->ticket.starttime : + t->authtime; + t->endtime = ticket->ticket.endtime; + t->renew_till = ticket->ticket.renew_till ? *ticket->ticket.renew_till : + t->endtime; +} + /** * Get the flags from the Kerberos ticket * diff --git a/lib/krb5/version-script.map b/lib/krb5/version-script.map index f4861f2bb..f573709e8 100644 --- a/lib/krb5/version-script.map +++ b/lib/krb5/version-script.map @@ -673,6 +673,7 @@ HEIMDAL_KRB5_2.0 { krb5_ticket_get_authorization_data_type; krb5_ticket_get_client; krb5_ticket_get_endtime; + krb5_ticket_get_times; krb5_ticket_get_server; krb5_timeofday; krb5_unparse_name;