(krb5_derive_key): new function, used by derived-key-test.c

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@9744 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
2001-03-12 07:44:05 +00:00
parent 7fa065136e
commit 42a66c6903

View File

@@ -2665,7 +2665,7 @@ static krb5_error_code
derive_key(krb5_context context,
struct encryption_type *et,
struct key_data *key,
void *constant,
const void *constant,
size_t len)
{
unsigned char *k;
@@ -2737,6 +2737,35 @@ _new_derived_key(krb5_crypto crypto, unsigned usage)
return &d->key;
}
krb5_error_code
krb5_derive_key(krb5_context context,
const krb5_keyblock *key,
krb5_enctype etype,
const void *constant,
size_t constant_len,
krb5_keyblock **derived_key)
{
krb5_error_code ret;
struct encryption_type *et;
struct key_data d;
et = _find_enctype (etype);
if (et == NULL)
return KRB5_PROG_ETYPE_NOSUPP;
ret = krb5_copy_keyblock(context, key, derived_key);
if (ret)
return ret;
d.key = *derived_key;
d.schedule = NULL;
ret = derive_key(context, et, &d, constant, constant_len);
if (ret)
return ret;
ret = krb5_copy_keyblock(context, d.key, derived_key);
return ret;
}
static krb5_error_code
_get_derived_key(krb5_context context,
krb5_crypto crypto,
@@ -2765,7 +2794,7 @@ _get_derived_key(krb5_context context,
krb5_error_code
krb5_crypto_init(krb5_context context,
krb5_keyblock *key,
const krb5_keyblock *key,
krb5_enctype etype,
krb5_crypto *crypto)
{