auth/ntlmssp: fix handling of GENSEC_FEATURE_LDAP_STYLE as a server
authorStefan Metzmacher <metze@samba.org>
Mon, 7 May 2018 12:50:27 +0000 (14:50 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 16 May 2018 01:26:03 +0000 (03:26 +0200)
commitc7a3ce95ac4ce837d8fde36578b3b1f56c3ac2fa
treefb943b4dd0eff044e3b3d8a5f39d451388bf037b
parentfc1c5bd3be2c3f90eab2f31e43cf053f7ff13782
auth/ntlmssp: fix handling of GENSEC_FEATURE_LDAP_STYLE as a server

This fixes "NTLMSSP NTLM2 packet check failed due to invalid signature!"
error messages, which were generated if the client only sends
NTLMSSP_NEGOTIATE_SIGN without NTLMSSP_NEGOTIATE_SEAL on an LDAP
connection.

This fixes a regession in the combination of commits
77adac8c3cd2f7419894d18db735782c9646a202 and
3a0b835408a6efa339e8b34333906bfe3aacd6e3.

We need to evaluate GENSEC_FEATURE_LDAP_STYLE at the end
of the authentication (as a server, while we already
do so at the beginning as a client).

As a reminder I introduced GENSEC_FEATURE_LDAP_STYLE
(as an internal flag) in order to let us work as a
Windows using NTLMSSP for LDAP. Even if only signing is
negotiated during the authentication the following PDUs
will still be encrypted if NTLMSSP is used. This is exactly the
same as if the client would have negotiated NTLMSSP_NEGOTIATE_SEAL.
I guess it's a bug in Windows, but we have to reimplement that
bug. Note this only applies to NTLMSSP and only to LDAP!
Signing only works fine for LDAP with Kerberos
or DCERPC and NTLMSSP.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=13427

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Wed May 16 03:26:03 CEST 2018 on sn-devel-144
auth/ntlmssp/gensec_ntlmssp_server.c
auth/ntlmssp/ntlmssp_server.c
selftest/knownfail.d/ntlmssp_ldap_style_send_seal [deleted file]