From 81c1a29c7fa073b4dbf8fd5b84533496def31328 Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Mon, 7 Feb 2000 13:30:41 +0000 Subject: [PATCH] krb5_check_transited_realms git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@7897 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/transited.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/krb5/transited.c b/lib/krb5/transited.c index c1bdb6084..2cd504e9c 100644 --- a/lib/krb5/transited.c +++ b/lib/krb5/transited.c @@ -363,6 +363,35 @@ krb5_domain_x500_encode(char **realms, int num_realms, krb5_data *encoding) return 0; } +krb5_error_code +krb5_check_transited_realms(krb5_context context, + const char *const *realms, + int num_realms, + int *bad_realm) +{ + int i; + int ret = 0; + char **bad_realms = krb5_config_get_strings(context, NULL, + "libdefaults", + "transited_realms_reject", + NULL); + if(bad_realms == NULL) + return 0; + + for(i = 0; i < num_realms; i++) { + char **p; + for(p = bad_realms; *p; p++) + if(strcmp(*p, realms[i]) == 0) { + ret = KRB5KRB_AP_ERR_ILL_CR_TKT; + if(bad_realm) + *bad_realm = i; + break; + } + } + krb5_config_free_strings(bad_realms); + return ret; +} + #if 0 int main(int argc, char **argv)