From 8a667563e19d97b99626ce4e6dc8ee402b0956a6 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sun, 20 Jul 1997 14:41:22 +0000 Subject: [PATCH] implmenet `krb5_string_to_key_data' git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2504 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/str2key.c | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/lib/krb5/str2key.c b/lib/krb5/str2key.c index 429ad16e9..b9011f67e 100644 --- a/lib/krb5/str2key.c +++ b/lib/krb5/str2key.c @@ -126,10 +126,11 @@ init (unsigned char *a, unsigned char *b) a[7] = b[7] << 1; } -krb5_error_code -krb5_string_to_key (char *str, - krb5_data *salt, - krb5_keyblock *key) +static krb5_error_code +string_to_key_internal (char *str, + size_t str_len, + krb5_data *salt, + krb5_keyblock *key) { int odd, i; size_t len; @@ -138,7 +139,7 @@ krb5_string_to_key (char *str, des_key_schedule sched; krb5_error_code err; - len = strlen(str) + salt->length; + len = str_len + salt->length; #if 1 len = (len + 7) / 8 * 8; #endif @@ -151,8 +152,8 @@ krb5_string_to_key (char *str, return err; } memset (s, 0, len); - strncpy (p, str, strlen(str)); - p += strlen(str); + strncpy (p, str, str_len); + p += str_len; memcpy (p, salt->data, salt->length); odd = 1; memset (tempkey, 0, sizeof(tempkey)); @@ -182,6 +183,22 @@ krb5_string_to_key (char *str, return 0; } +krb5_error_code +krb5_string_to_key (char *str, + krb5_data *salt, + krb5_keyblock *key) +{ + return string_to_key_internal (str, strlen(str), salt, key); +} + +krb5_error_code +krb5_string_to_key_data (krb5_data *str, + krb5_data *salt, + krb5_keyblock *key) +{ + return string_to_key_internal (str->data, str->length, salt, key); +} + krb5_error_code krb5_get_salt (krb5_principal princ, krb5_data *salt)