]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Rename and add to etype utility functions
authorGreg Hudson <ghudson@mit.edu>
Thu, 7 Jun 2012 16:58:26 +0000 (12:58 -0400)
committerGreg Hudson <ghudson@mit.edu>
Thu, 7 Jun 2012 16:58:26 +0000 (12:58 -0400)
Rename krb5int_count_etypes and krb5int_copy_etypes to have k5_
prefixes, and make them available outside of libkrb5 (but not part of
the public API).  Add k5_etypes_contains to search an etype list, and
use it in krb5_is_permitted_enctype.

src/include/k5-int.h
src/lib/krb5/ccache/cc_retr.c
src/lib/krb5/krb/auth_con.c
src/lib/krb5/krb/copy_ctx.c
src/lib/krb5/krb/etype_list.c
src/lib/krb5/krb/get_in_tkt.c
src/lib/krb5/krb/init_ctx.c
src/lib/krb5/krb/int-proto.h
src/lib/krb5/krb/rd_req_dec.c
src/lib/krb5/krb/ser_ctx.c
src/lib/krb5/libkrb5.exports

index 539c8831ac350b163f1201145d3493a4b512f05f..643af180331dfbf7fa07422b7043a32c6b5926b5 100644 (file)
@@ -2579,6 +2579,12 @@ krb5_error_code krb5int_parse_enctype_list(krb5_context context,
                                            krb5_enctype *default_list,
                                            krb5_enctype **result);
 
+/* Utility functions for zero-terminated enctype lists. */
+size_t k5_count_etypes(const krb5_enctype *list);
+krb5_error_code k5_copy_etypes(const krb5_enctype *old_list,
+                               krb5_enctype **new_list);
+krb5_boolean k5_etypes_contains(const krb5_enctype *list, krb5_enctype etype);
+
 #ifdef DEBUG_ERROR_LOCATIONS
 #define krb5_set_error_message(ctx, code, ...)                          \
     krb5_set_error_message_fl(ctx, code, __FILE__, __LINE__, __VA_ARGS__)
index 52ea8cdfe8c62a3ce72725f490d1e70384145399..23d0361c37959f534f7711b383d08142c4d582c3 100644 (file)
@@ -277,7 +277,7 @@ krb5_cc_retrieve_cred_default (krb5_context context, krb5_ccache id, krb5_flags
         ret = krb5_get_tgs_ktypes (context, mcreds->server, &ktypes);
         if (ret)
             return ret;
-        nktypes = krb5int_count_etypes (ktypes);
+        nktypes = k5_count_etypes (ktypes);
 
         ret = krb5_cc_retrieve_cred_seq (context, id, flags, mcreds, creds,
                                          nktypes, ktypes);
index 2ffe345ebd9ab72ad9ccfd5267b1bc67740c6657..0a2c5a98bde5a8d0b672cbfd5d5d52c3346fe191 100644 (file)
@@ -381,7 +381,7 @@ krb5_auth_con_setpermetypes(krb5_context context,
     krb5_enctype *newpe;
     krb5_error_code ret;
 
-    ret = krb5int_copy_etypes(permetypes, &newpe);
+    ret = k5_copy_etypes(permetypes, &newpe);
     if (ret != 0)
         return ret;
 
@@ -398,7 +398,7 @@ krb5_auth_con_getpermetypes(krb5_context context,
     *permetypes = NULL;
     if (auth_context->permitted_etypes == NULL)
         return 0;
-    return krb5int_copy_etypes(auth_context->permitted_etypes, permetypes);
+    return k5_copy_etypes(auth_context->permitted_etypes, permetypes);
 }
 
 krb5_error_code KRB5_CALLCONV
index 9d2c3e4918f2863776a693832eeeff9a523cfe7b..5d841700303faff5990c3d843a9dbe2f9c08fa1b 100644 (file)
@@ -85,10 +85,10 @@ krb5_copy_context(krb5_context ctx, krb5_context *nctx_out)
 
     memset(&nctx->err, 0, sizeof(nctx->err));
 
-    ret = krb5int_copy_etypes(ctx->in_tkt_etypes, &nctx->in_tkt_etypes);
+    ret = k5_copy_etypes(ctx->in_tkt_etypes, &nctx->in_tkt_etypes);
     if (ret)
         goto errout;
-    ret = krb5int_copy_etypes(ctx->tgs_etypes, &nctx->tgs_etypes);
+    ret = k5_copy_etypes(ctx->tgs_etypes, &nctx->tgs_etypes);
     if (ret)
         goto errout;
 
index a56155f04a1cf0b2ed906a333484e83f690f7ab9..9efe2e0bbe32024c683169aedbf2373058a56f97 100644 (file)
@@ -33,7 +33,7 @@
 #include "int-proto.h"
 
 size_t
-krb5int_count_etypes(const krb5_enctype *list)
+k5_count_etypes(const krb5_enctype *list)
 {
     size_t count;
 
@@ -43,13 +43,13 @@ krb5int_count_etypes(const krb5_enctype *list)
 
 /* Copy the zero-terminated enctype list old_list into *new_list. */
 krb5_error_code
-krb5int_copy_etypes(const krb5_enctype *old_list, krb5_enctype **new_list)
+k5_copy_etypes(const krb5_enctype *old_list, krb5_enctype **new_list)
 {
     size_t count;
     krb5_enctype *list;
 
     *new_list = NULL;
-    count = krb5int_count_etypes(old_list);
+    count = k5_count_etypes(old_list);
     list = malloc(sizeof(krb5_enctype) * (count + 1));
     if (list == NULL)
         return ENOMEM;
@@ -57,3 +57,12 @@ krb5int_copy_etypes(const krb5_enctype *old_list, krb5_enctype **new_list)
     *new_list = list;
     return 0;
 }
+
+krb5_boolean
+k5_etypes_contains(const krb5_enctype *list, krb5_enctype etype)
+{
+    size_t i;
+
+    for (i = 0; list[i] && list[i] != etype; i++);
+    return (list[i] == etype);
+}
index 8af0f5c22f553fecdd6faf80d17dbeb0bcbc36af..3f67df0a5eebfb2f67e0440753d23bb58412dafc 100644 (file)
@@ -906,7 +906,7 @@ krb5_init_creds_init(krb5_context context,
                ctx->request->nktypes * sizeof(krb5_enctype));
     } else if (krb5_get_default_in_tkt_ktypes(context,
                                               &ctx->request->ktype) == 0) {
-        ctx->request->nktypes = krb5int_count_etypes(ctx->request->ktype);
+        ctx->request->nktypes = k5_count_etypes(ctx->request->ktype);
     } else {
         /* there isn't any useful default here. */
         code = KRB5_CONFIG_ETYPE_NOSUPP;
@@ -1679,7 +1679,7 @@ krb5int_populate_gic_opt(krb5_context context, krb5_get_init_creds_opt **out,
     if (addrs)
         krb5_get_init_creds_opt_set_address_list(opt, (krb5_address **) addrs);
     if (ktypes) {
-        i = krb5int_count_etypes(ktypes);
+        i = k5_count_etypes(ktypes);
         if (i)
             krb5_get_init_creds_opt_set_etype_list(opt, ktypes, i);
     }
index 8455b5043d8e8e73757bb07d60ac99af75ca5565..6e098f8baa036882b412e368af7b45a683e51cec 100644 (file)
@@ -329,7 +329,7 @@ set_default_etype_var(krb5_context context, const krb5_enctype *etypes,
         /* Empty list passed in. */
         if (etypes[0] == 0)
             return EINVAL;
-        code = krb5int_copy_etypes(etypes, &list);
+        code = k5_copy_etypes(etypes, &list);
         if (code)
             return code;
 
@@ -508,7 +508,7 @@ get_profile_etype_list(krb5_context context, krb5_enctype **etypes_ptr,
 
     if (ctx_list) {
         /* Use application defaults. */
-        code = krb5int_copy_etypes(ctx_list, &etypes);
+        code = k5_copy_etypes(ctx_list, &etypes);
         if (code)
             return code;
     } else {
@@ -577,20 +577,12 @@ krb5_get_permitted_enctypes(krb5_context context, krb5_enctype **ktypes)
 krb5_boolean
 krb5_is_permitted_enctype(krb5_context context, krb5_enctype etype)
 {
-    krb5_enctype *list, *ptr;
+    krb5_enctype *list;
     krb5_boolean ret;
 
     if (krb5_get_permitted_enctypes(context, &list))
-        return(0);
-
-
-    ret = 0;
-
-    for (ptr = list; *ptr; ptr++)
-        if (*ptr == etype)
-            ret = 1;
-
-    krb5_free_ktypes (context, list);
-
-    return(ret);
+        return FALSE;
+    ret = k5_etypes_contains(list, etype);
+    krb5_free_ktypes(context, list);
+    return ret;
 }
index 3b93532af23ce6aed2f6364bd100159024500c4e..8dc6867cdbaf60eecbad8f6f997574121e3cb85a 100644 (file)
@@ -160,11 +160,6 @@ krb5_error_code krb5int_decode_tgs_rep(krb5_context,
                                        const krb5_keyblock *, krb5_keyusage,
                                        krb5_kdc_rep ** );
 
-/* Utility functions for zero-terminated enctype lists. */
-size_t krb5int_count_etypes(const krb5_enctype *list);
-krb5_error_code krb5int_copy_etypes(const krb5_enctype *old_list,
-                                    krb5_enctype **new_list);
-
 krb5_error_code
 krb5int_validate_times(krb5_context, krb5_ticket_times *);
 
index fd3f9f780d8259346caa99b4dd14bc19cbb186b2..6495baebed80125557271ee48bafab49814d5132 100644 (file)
@@ -494,7 +494,7 @@ rd_req_decoded_opt(krb5_context context, krb5_auth_context *auth_context,
             if (retval != 0)
                 goto cleanup;
         }
-        permitted_etypes_len = krb5int_count_etypes(permitted_etypes);
+        permitted_etypes_len = k5_count_etypes(permitted_etypes);
     } else {
         permitted_etypes = NULL;
         permitted_etypes_len = 0;
index 099611adba8db2e9ed7168fd0c74e0c305a9ef4b..0452ebf1daf48976788db7dcfc35a6fca8c5bff9 100644 (file)
@@ -100,7 +100,7 @@ static const krb5_ser_entry krb5_profile_ser_entry = {
 static inline unsigned int
 etypes_len(krb5_enctype *list)
 {
-    return (list == NULL) ? 0 : krb5int_count_etypes(list);
+    return (list == NULL) ? 0 : k5_count_etypes(list);
 }
 
 /*
index c8822618117f7e2e0f3aca93937b13bcca7f1126..53b5082253fbcc4dbdd4c0748900d579f62a5b5e 100644 (file)
@@ -98,6 +98,9 @@ initialize_k5e1_error_table
 initialize_kv5m_error_table
 initialize_prof_error_table
 k5_ccselect_free_context
+k5_copy_etypes
+k5_count_etypes
+k5_etypes_contains
 k5_free_serverlist
 k5_kt_get_principal
 k5_locate_kdc