aboutsummaryrefslogtreecommitdiff
path: root/src/lib/crypto/krb/keylengths.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/crypto/krb/keylengths.c')
-rw-r--r--src/lib/crypto/krb/keylengths.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/lib/crypto/krb/keylengths.c b/src/lib/crypto/krb/keylengths.c
index acd1da8..d28d595 100644
--- a/src/lib/crypto/krb/keylengths.c
+++ b/src/lib/crypto/krb/keylengths.c
@@ -39,23 +39,19 @@ krb5_error_code KRB5_CALLCONV
krb5_c_keylengths(krb5_context context, krb5_enctype enctype,
size_t *keybytes, size_t *keylength)
{
- int i;
+ const struct krb5_keytypes *ktp;
if (keybytes == NULL && keylength == NULL)
- return(EINVAL);
+ return EINVAL;
- for (i=0; i<krb5_enctypes_length; i++) {
- if (krb5_enctypes_list[i].etype == enctype)
- break;
- }
-
- if (i == krb5_enctypes_length)
- return(KRB5_BAD_ENCTYPE);
+ ktp = find_enctype(enctype);
+ if (ktp == NULL)
+ return KRB5_BAD_ENCTYPE;
if (keybytes)
- *keybytes = krb5_enctypes_list[i].enc->keybytes;
+ *keybytes = ktp->enc->keybytes;
if (keylength)
- *keylength = krb5_enctypes_list[i].enc->keylength;
+ *keylength = ktp->enc->keylength;
- return(0);
+ return 0;
}