goto err;
}
+ /* Clear flags,
+ * then set them according to requested Auth Level */
+ auth_ntlmssp_and_flags(a, ~(NTLMSSP_NEGOTIATE_SIGN |
+ NTLMSSP_NEGOTIATE_SEAL));
switch (pauth_info->auth_level) {
case DCERPC_AUTH_LEVEL_INTEGRITY:
- auth_ntlmssp_want_sign(a);
+ auth_ntlmssp_or_flags(a,
+ NTLMSSP_NEGOTIATE_SIGN);
break;
case DCERPC_AUTH_LEVEL_PRIVACY:
- auth_ntlmssp_want_seal(a);
+ /* Privacy always implies both sign and seal
+ * for ntlmssp */
+ auth_ntlmssp_or_flags(a,
+ NTLMSSP_NEGOTIATE_SIGN |
+ NTLMSSP_NEGOTIATE_SEAL);
break;
default:
break;
goto err;
}
+ /* Clear flags, then set them according to requested Auth Level */
+ auth_ntlmssp_and_flags(a, ~(NTLMSSP_NEGOTIATE_SIGN |
+ NTLMSSP_NEGOTIATE_SEAL));
+
switch (auth_info->auth_level) {
case DCERPC_AUTH_LEVEL_INTEGRITY:
- auth_ntlmssp_want_sign(a);
+ auth_ntlmssp_or_flags(a, NTLMSSP_NEGOTIATE_SIGN);
break;
case DCERPC_AUTH_LEVEL_PRIVACY:
- auth_ntlmssp_want_seal(a);
+ /* Privacy always implies both sign and seal for ntlmssp */
+ auth_ntlmssp_or_flags(a, NTLMSSP_NEGOTIATE_SIGN |
+ NTLMSSP_NEGOTIATE_SEAL);
break;
default:
break;