-
- pdb_init_sam(&sam_pass);
-
- /*
- * We need the NT hash of the user who is changing the user's password.
- * This NT hash is used to generate a "user session key"
- * This "user session key" is in turn used to encrypt/decrypt the user's password.
- */
-
- become_root();
- ret = pdb_getsampwuid(sam_pass, user.uid);
- unbecome_root();
- if(ret == False) {
- DEBUG(0,("_samr_set_userinfo: Unable to get smbpasswd entry for uid %u\n", (unsigned int)user.uid ));
- pdb_free_sam(&sam_pass);
- return NT_STATUS_ACCESS_DENIED;
- }
-
- memset(sess_key, '\0', 16);
- mdfour(sess_key, pdb_get_nt_passwd(sam_pass), 16);
-
- pdb_free_sam(&sam_pass);
-