r16961: Merge 'seperate policy from logic' changes from Samba3. The 56-bit
[jelmer/samba4-debian.git] / source / auth / ntlmssp / ntlmssp.h
index 270beb151fc86215826e8d8d6803460e4d3d35ce..a9ad988a5ff73f51371c406a0f7b536818495162 100644 (file)
@@ -20,7 +20,7 @@
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
-#include "librpc/gen_ndr/ndr_samr.h"
+#include "librpc/gen_ndr/samr.h"
 
 /* NTLMSSP mode */
 enum ntlmssp_role
@@ -62,6 +62,7 @@ enum ntlmssp_message_type
 #define NTLMSSP_CHAL_NON_NT_SESSION_KEY    0x00040000
 #define NTLMSSP_NEGOTIATE_NTLM2            0x00080000
 #define NTLMSSP_CHAL_TARGET_INFO           0x00800000
+#define NTLMSSP_UNKNOWN_02000000           0x02000000
 #define NTLMSSP_NEGOTIATE_128              0x20000000 /* 128-bit encryption */
 #define NTLMSSP_NEGOTIATE_KEY_EXCH         0x40000000
 #define NTLMSSP_NEGOTIATE_56               0x80000000
@@ -77,6 +78,8 @@ enum ntlmssp_message_type
 
 struct gensec_ntlmssp_state
 {
+       struct gensec_security *gensec_security;
+
        enum ntlmssp_role role;
        enum samr_Role server_role;
        uint32_t expected_state;
@@ -87,8 +90,6 @@ struct gensec_ntlmssp_state
        BOOL allow_lm_key;     /* The LM_KEY code is not functional at this point, and it's not 
                                  very secure anyway */
 
-       BOOL server_use_session_keys; /* Set to 'False' for authentication only, 
-                                        that will never return a session key */
        BOOL server_multiple_authentications;  /* Set to 'True' to allow squid 2.5 
                                                  style 'challenge caching' */
 
@@ -152,6 +153,7 @@ struct gensec_ntlmssp_state
         *
         */
        NTSTATUS (*check_password)(struct gensec_ntlmssp_state *, 
+                                  TALLOC_CTX *mem_ctx, 
                                   DATA_BLOB *nt_session_key, DATA_BLOB *lm_session_key);
 
        const char *server_name;
@@ -178,11 +180,11 @@ struct gensec_ntlmssp_state
                        /* internal variables used by NTLM2 */
                        uint8_t session_nonce[16];
                } ntlm2;
-       };
+       } crypt;
 
        struct auth_context *auth_context;
        struct auth_serversupplied_info *server_info;
-       uint32_t have_features;
 };
 
-
+struct auth_session_info;
+#include "auth/ntlmssp/proto.h"