struct ldb_context *ldb;
krb5_error_code krb5_ret;
krb5_principal salt_principal;
- krb5_salt salt;
+ krb5_data salt;
krb5_keyblock key;
krb5_data cleartext_data;
/*
* create salt from salt_principal
*/
- krb5_ret = krb5_get_pw_salt(io->smb_krb5_context->krb5_context,
+ krb5_ret = smb_krb5_get_pw_salt(io->smb_krb5_context->krb5_context,
salt_principal, &salt);
krb5_free_principal(io->smb_krb5_context->krb5_context, salt_principal);
if (krb5_ret) {
}
/* create a talloc copy */
io->g.salt = talloc_strndup(io->ac,
- (char *)salt.saltvalue.data,
- salt.saltvalue.length);
- krb5_free_salt(io->smb_krb5_context->krb5_context, salt);
+ (char *)salt.data,
+ salt.length);
+ kerberos_free_data_contents(io->smb_krb5_context->krb5_context, &salt);
if (!io->g.salt) {
return ldb_oom(ldb);
}
- salt.saltvalue.data = discard_const(io->g.salt);
- salt.saltvalue.length = strlen(io->g.salt);
+ /* now use the talloced copy of the salt */
+ salt.data = discard_const(io->g.salt);
+ salt.length = strlen(io->g.salt);
/*
* create ENCTYPE_AES256_CTS_HMAC_SHA1_96 key out of
* the salt and the cleartext password
*/
- krb5_ret = krb5_string_to_key_data_salt(io->smb_krb5_context->krb5_context,
- ENCTYPE_AES256_CTS_HMAC_SHA1_96,
- cleartext_data,
- salt,
- &key);
+ krb5_ret = smb_krb5_create_key_from_string(io->smb_krb5_context->krb5_context,
+ NULL,
+ &salt,
+ &cleartext_data,
+ ENCTYPE_AES256_CTS_HMAC_SHA1_96,
+ &key);
if (krb5_ret) {
ldb_asprintf_errstring(ldb,
"setup_kerberos_keys: "
* create ENCTYPE_AES128_CTS_HMAC_SHA1_96 key out of
* the salt and the cleartext password
*/
- krb5_ret = krb5_string_to_key_data_salt(io->smb_krb5_context->krb5_context,
- ENCTYPE_AES128_CTS_HMAC_SHA1_96,
- cleartext_data,
- salt,
- &key);
+ krb5_ret = smb_krb5_create_key_from_string(io->smb_krb5_context->krb5_context,
+ NULL,
+ &salt,
+ &cleartext_data,
+ ENCTYPE_AES128_CTS_HMAC_SHA1_96,
+ &key);
if (krb5_ret) {
ldb_asprintf_errstring(ldb,
"setup_kerberos_keys: "
* create ENCTYPE_DES_CBC_MD5 key out of
* the salt and the cleartext password
*/
- krb5_ret = krb5_string_to_key_data_salt(io->smb_krb5_context->krb5_context,
- ENCTYPE_DES_CBC_MD5,
- cleartext_data,
- salt,
- &key);
+ krb5_ret = smb_krb5_create_key_from_string(io->smb_krb5_context->krb5_context,
+ NULL,
+ &salt,
+ &cleartext_data,
+ ENCTYPE_DES_CBC_MD5,
+ &key);
if (krb5_ret) {
ldb_asprintf_errstring(ldb,
"setup_kerberos_keys: "
* create ENCTYPE_DES_CBC_CRC key out of
* the salt and the cleartext password
*/
- krb5_ret = krb5_string_to_key_data_salt(io->smb_krb5_context->krb5_context,
- ENCTYPE_DES_CBC_CRC,
- cleartext_data,
- salt,
- &key);
+ krb5_ret = smb_krb5_create_key_from_string(io->smb_krb5_context->krb5_context,
+ NULL,
+ &salt,
+ &cleartext_data,
+ ENCTYPE_DES_CBC_CRC,
+ &key);
if (krb5_ret) {
ldb_asprintf_errstring(ldb,
"setup_kerberos_keys: "