diff options
author | Greg Hudson <ghudson@mit.edu> | 2009-11-27 00:00:06 +0000 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2009-11-27 00:00:06 +0000 |
commit | c8572c103a04a852c81747f249317bc42be1dc13 (patch) | |
tree | 523020b05ab47c3fcb4105aa36e6b7cb9a22c69a /src/lib/crypto/krb | |
parent | 1df0550c374c42b6493dc2f0e563a09c03b66968 (diff) | |
download | krb5-c8572c103a04a852c81747f249317bc42be1dc13.tar.gz krb5-c8572c103a04a852c81747f249317bc42be1dc13.tar.xz krb5-c8572c103a04a852c81747f249317bc42be1dc13.zip |
Add krb5_k_prf, the krb5_key version of krb5_c_prf
ticket: 6576
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23365 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/crypto/krb')
-rw-r--r-- | src/lib/crypto/krb/prf.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/lib/crypto/krb/prf.c b/src/lib/crypto/krb/prf.c index 141390f63..27286c348 100644 --- a/src/lib/crypto/krb/prf.c +++ b/src/lib/crypto/krb/prf.c @@ -50,17 +50,16 @@ krb5_c_prf_length(krb5_context context, krb5_enctype enctype, size_t *len) } krb5_error_code KRB5_CALLCONV -krb5_c_prf(krb5_context context, const krb5_keyblock *keyblock, +krb5_k_prf(krb5_context context, krb5_key key, krb5_data *input, krb5_data *output) { const struct krb5_keytypes *ktp; - krb5_key key; krb5_error_code ret; assert(input && output); assert(output->data); - ktp = find_enctype(keyblock->enctype); + ktp = find_enctype(key->keyblock.enctype); if (ktp == NULL) return KRB5_BAD_ENCTYPE; if (ktp->prf == NULL) @@ -69,10 +68,21 @@ krb5_c_prf(krb5_context context, const krb5_keyblock *keyblock, output->magic = KV5M_DATA; if (ktp->prf_length != output->length) return KRB5_CRYPTO_INTERNAL; + ret = (*ktp->prf)(ktp->enc, ktp->hash, key, input, output); + return ret; +} + +krb5_error_code KRB5_CALLCONV +krb5_c_prf(krb5_context context, const krb5_keyblock *keyblock, + krb5_data *input, krb5_data *output) +{ + krb5_key key; + krb5_error_code ret; + ret = krb5_k_create_key(context, keyblock, &key); if (ret != 0) return ret; - ret = (*ktp->prf)(ktp->enc, ktp->hash, key, input, output); + ret = krb5_k_prf(context, key, input, output); krb5_k_free_key(context, key); return ret; } |