Create a 'straight paper path' for UTF16 passwords.
authorAndrew Bartlett <abartlet@samba.org>
Thu, 16 Oct 2008 01:48:16 +0000 (12:48 +1100)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 16 Oct 2008 01:48:16 +0000 (12:48 +1100)
commit7c88ea8aadfc2be0726cbe555543cfab8804c470
tree56f84c94f69e06880c6ad416117f0a1d7e7f5882
parentfc54ca014b21b655b643697475c6a0c05e773fc4
Create a 'straight paper path' for UTF16 passwords.

This uses a virtual attribute 'clearTextPassword' (name chosen to
match references in MS-SAMR) that contains the length-limited blob
containing an allegidly UTF16 password.  This ensures we do no
validation or filtering of the password before we get a chance to MD4
it.  We can then do the required munging into UTF8, and in future
implement the rules Microsoft has provided us with for invalid inputs.

All layers in the process now deal with the strings as length-limited
inputs, incluing the krb5 string2key calls.

This commit also includes a small change to samdb_result_passwords()
to ensure that LM passwords are not returned to the application logic
if LM authentication is disabled.

The objectClass module has been modified to allow the
clearTextPassword attribute to pass down the stack.

Andrew Bartlett
source4/auth/ntlm/auth_sam.c
source4/dsdb/common/util.c
source4/dsdb/samdb/ldb_modules/objectclass.c
source4/dsdb/samdb/ldb_modules/password_hash.c
source4/kdc/kpasswdd.c
source4/libcli/auth/smbencrypt.c
source4/librpc/idl/drsblobs.idl
source4/rpc_server/lsa/dcesrv_lsa.c
source4/rpc_server/netlogon/dcerpc_netlogon.c
source4/rpc_server/samr/samr_password.c