diff options
Diffstat (limited to 'src/lib/crypto/krb/encrypt_length.c')
-rw-r--r-- | src/lib/crypto/krb/encrypt_length.c | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/src/lib/crypto/krb/encrypt_length.c b/src/lib/crypto/krb/encrypt_length.c index a934b2a..bb9a102 100644 --- a/src/lib/crypto/krb/encrypt_length.c +++ b/src/lib/crypto/krb/encrypt_length.c @@ -32,28 +32,20 @@ krb5_error_code KRB5_CALLCONV krb5_c_encrypt_length(krb5_context context, krb5_enctype enctype, size_t inputlen, size_t *length) { - int i; + const struct krb5_keytypes *ktp; - 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 (krb5_enctypes_list[i].encrypt_len == NULL) { - assert(krb5_enctypes_list[i].aead != NULL); + if (ktp->encrypt_len == NULL) { + assert(ktp->aead != NULL); - krb5int_c_encrypt_length_aead_compat(krb5_enctypes_list[i].aead, - krb5_enctypes_list[i].enc, - krb5_enctypes_list[i].hash, + krb5int_c_encrypt_length_aead_compat(ktp->aead, ktp->enc, ktp->hash, inputlen, length); } else { - (*(krb5_enctypes_list[i].encrypt_len)) - (krb5_enctypes_list[i].enc, krb5_enctypes_list[i].hash, - inputlen, length); + (*ktp->encrypt_len)(ktp->enc, ktp->hash, inputlen, length); } - return(0); + return 0; } |