add krb5_create_checksum_iov

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23721 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2008-09-01 10:54:38 +00:00
parent 9623a6d1eb
commit 51e86080f1

View File

@@ -3498,6 +3498,45 @@ krb5_decrypt_iov_ivec(krb5_context context,
return 0;
}
krb5_error_code KRB5_LIB_FUNCTION
krb5_create_checksum_iov(krb5_context context,
krb5_crypto crypto,
unsigned usage,
int type,
krb5_crypto_iov *data,
size_t num_data,
Checksum *result)
{
krb5_error_code ret;
unsigned int i;
size_t len;
char *p, *q;
len = 0;
for (i = 0; i < num_data; i++) {
if (data[i].flags != KRB5_CRYPTO_TYPE_DATA &&
data[i].flags != KRB5_CRYPTO_TYPE_SIGN_ONLY)
continue;
len += data[i].data.length;
}
p = q = malloc(len);
for (i = 0; i < num_data; i++) {
if (data[i].flags != KRB5_CRYPTO_TYPE_DATA &&
data[i].flags != KRB5_CRYPTO_TYPE_SIGN_ONLY)
continue;
memcpy(q, data[i].data.data, data[i].data.length);
q += data[i].data.length;
}
ret = krb5_create_checksum(context, crypto, usage,
type, p, len, result);
free(p);
return ret;
}
size_t KRB5_LIB_FUNCTION
krb5_crypto_length(krb5_context context,
krb5_crypto crypto,