/************************************************************************
************************************************************************/
-static char* des_salt_key( void )
+static char *des_salt_key(const char *realm)
{
- char *key;
-
- if (asprintf(&key, "%s/DES/%s", SECRETS_SALTING_PRINCIPAL,
- lp_realm()) == -1) {
- return NULL;
- }
+ char *keystr;
- return key;
+ keystr = talloc_asprintf_strupper_m(talloc_tos(), "%s/DES/%s",
+ SECRETS_SALTING_PRINCIPAL,
+ realm);
+ SMB_ASSERT(keystr != NULL);
+ return keystr;
}
/************************************************************************
char* key;
bool ret;
- if ( (key = des_salt_key()) == NULL ) {
+ key = des_salt_key(lp_realm());
+ if (key == NULL) {
DEBUG(0,("kerberos_secrets_store_des_salt: failed to generate key!\n"));
return False;
}
ret = secrets_store( key, salt, strlen(salt)+1 );
- SAFE_FREE( key );
+ TALLOC_FREE(key);
return ret;
}
{
char *salt, *key;
- if ( (key = des_salt_key()) == NULL ) {
+ key = des_salt_key(lp_realm());
+ if (key == NULL) {
DEBUG(0,("kerberos_secrets_fetch_des_salt: failed to generate key!\n"));
return NULL;
}
salt = (char*)secrets_fetch( key, NULL );
- SAFE_FREE( key );
+ TALLOC_FREE(key);
return salt;
}