From 25d6c0a51813928a7ef343a1d5411247212a0bc6 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Wed, 12 Aug 2009 20:22:04 +0200 Subject: s3-ntlmssp: use NTLMSSP headers from IDL and remove duplicate constants. Guenther --- source3/include/ntlmssp.h | 29 ----------------------------- source3/include/rpc_dce.h | 3 --- source3/include/smb.h | 1 + source3/libsmb/ntlmssp.c | 30 ++++++++++++++---------------- 4 files changed, 15 insertions(+), 48 deletions(-) diff --git a/source3/include/ntlmssp.h b/source3/include/ntlmssp.h index 1662eaa616..9f47c9c555 100644 --- a/source3/include/ntlmssp.h +++ b/source3/include/ntlmssp.h @@ -37,39 +37,10 @@ enum NTLM_MESSAGE_TYPE NTLMSSP_DONE = 5 /* samba final state */ }; -/* NTLMSSP negotiation flags */ -#define NTLMSSP_NEGOTIATE_UNICODE 0x00000001 -#define NTLMSSP_NEGOTIATE_OEM 0x00000002 -#define NTLMSSP_REQUEST_TARGET 0x00000004 -#define NTLMSSP_NEGOTIATE_SIGN 0x00000010 /* Message integrity */ -#define NTLMSSP_NEGOTIATE_SEAL 0x00000020 /* Message confidentiality */ -#define NTLMSSP_NEGOTIATE_DATAGRAM_STYLE 0x00000040 -#define NTLMSSP_NEGOTIATE_LM_KEY 0x00000080 -#define NTLMSSP_NEGOTIATE_NETWARE 0x00000100 -#define NTLMSSP_NEGOTIATE_NTLM 0x00000200 -#define NTLMSSP_NEGOTIATE_DOMAIN_SUPPLIED 0x00001000 -#define NTLMSSP_NEGOTIATE_WORKSTATION_SUPPLIED 0x00002000 -#define NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL 0x00004000 -#define NTLMSSP_NEGOTIATE_ALWAYS_SIGN 0x00008000 -#define NTLMSSP_TARGET_TYPE_DOMAIN 0x10000 -#define NTLMSSP_TARGET_TYPE_SERVER 0x20000 -#define NTLMSSP_CHAL_INIT_RESPONSE 0x00010000 - -#define NTLMSSP_CHAL_ACCEPT_RESPONSE 0x00020000 -#define NTLMSSP_CHAL_NON_NT_SESSION_KEY 0x00040000 -#define NTLMSSP_NEGOTIATE_NTLM2 0x00080000 -#define NTLMSSP_CHAL_TARGET_INFO 0x00800000 -#define NTLMSSP_NEGOTIATE_VERSION 0x02000000 -#define NTLMSSP_NEGOTIATE_128 0x20000000 /* 128-bit encryption */ -#define NTLMSSP_NEGOTIATE_KEY_EXCH 0x40000000 -#define NTLMSSP_NEGOTIATE_56 0x80000000 - #define NTLMSSP_FEATURE_SESSION_KEY 0x00000001 #define NTLMSSP_FEATURE_SIGN 0x00000002 #define NTLMSSP_FEATURE_SEAL 0x00000004 -#define NTLMSSP_SIG_SIZE 16 - typedef struct ntlmssp_state { unsigned int ref_count; diff --git a/source3/include/rpc_dce.h b/source3/include/rpc_dce.h index 50ca9800d1..3dfbc1672e 100644 --- a/source3/include/rpc_dce.h +++ b/source3/include/rpc_dce.h @@ -56,9 +56,6 @@ enum RPC_PKT_TYPE { #define SMBD_NTLMSSP_NEG_FLAGS 0x000082b1 /* ALWAYS_SIGN|NEG_NTLM|NEG_LM|NEG_SEAL|NEG_SIGN|NEG_UNICODE */ -/* NTLMSSP signature version */ -#define NTLMSSP_SIGN_VERSION 0x01 - /* DCE RPC auth types - extended by Microsoft. */ #define RPC_ANONYMOUS_AUTH_TYPE 0 #define RPC_AUTH_TYPE_KRB5_1 1 diff --git a/source3/include/smb.h b/source3/include/smb.h index 3f3d7e6abc..f8816b6bc5 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -253,6 +253,7 @@ struct id_map { #include "librpc/gen_ndr/spoolss.h" #include "librpc/gen_ndr/dcerpc.h" #include "librpc/gen_ndr/ndr_dcerpc.h" +#include "librpc/gen_ndr/ntlmssp.h" struct lsa_dom_info { bool valid; diff --git a/source3/libsmb/ntlmssp.c b/source3/libsmb/ntlmssp.c index 023d356001..c770ae4323 100644 --- a/source3/libsmb/ntlmssp.c +++ b/source3/libsmb/ntlmssp.c @@ -72,30 +72,28 @@ void debug_ntlmssp_flags(uint32 neg_flags) DEBUGADD(4, (" NTLMSSP_NEGOTIATE_SIGN\n")); if (neg_flags & NTLMSSP_NEGOTIATE_SEAL) DEBUGADD(4, (" NTLMSSP_NEGOTIATE_SEAL\n")); - if (neg_flags & NTLMSSP_NEGOTIATE_DATAGRAM_STYLE) - DEBUGADD(4, (" NTLMSSP_NEGOTIATE_DATAGRAM_STYLE\n")); + if (neg_flags & NTLMSSP_NEGOTIATE_DATAGRAM) + DEBUGADD(4, (" NTLMSSP_NEGOTIATE_DATAGRAM\n")); if (neg_flags & NTLMSSP_NEGOTIATE_LM_KEY) DEBUGADD(4, (" NTLMSSP_NEGOTIATE_LM_KEY\n")); if (neg_flags & NTLMSSP_NEGOTIATE_NETWARE) DEBUGADD(4, (" NTLMSSP_NEGOTIATE_NETWARE\n")); if (neg_flags & NTLMSSP_NEGOTIATE_NTLM) DEBUGADD(4, (" NTLMSSP_NEGOTIATE_NTLM\n")); - if (neg_flags & NTLMSSP_NEGOTIATE_DOMAIN_SUPPLIED) - DEBUGADD(4, (" NTLMSSP_NEGOTIATE_DOMAIN_SUPPLIED\n")); - if (neg_flags & NTLMSSP_NEGOTIATE_WORKSTATION_SUPPLIED) - DEBUGADD(4, (" NTLMSSP_NEGOTIATE_WORKSTATION_SUPPLIED\n")); + if (neg_flags & NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED) + DEBUGADD(4, (" NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED\n")); + if (neg_flags & NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED) + DEBUGADD(4, (" NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED\n")); if (neg_flags & NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL) DEBUGADD(4, (" NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL\n")); if (neg_flags & NTLMSSP_NEGOTIATE_ALWAYS_SIGN) DEBUGADD(4, (" NTLMSSP_NEGOTIATE_ALWAYS_SIGN\n")); - if (neg_flags & NTLMSSP_CHAL_ACCEPT_RESPONSE) - DEBUGADD(4, (" NTLMSSP_CHAL_ACCEPT_RESPONSE\n")); - if (neg_flags & NTLMSSP_CHAL_NON_NT_SESSION_KEY) - DEBUGADD(4, (" NTLMSSP_CHAL_NON_NT_SESSION_KEY\n")); + if (neg_flags & NTLMSSP_REQUEST_NON_NT_SESSION_KEY) + DEBUGADD(4, (" NTLMSSP_REQUEST_NON_NT_SESSION_KEY\n")); if (neg_flags & NTLMSSP_NEGOTIATE_NTLM2) DEBUGADD(4, (" NTLMSSP_NEGOTIATE_NTLM2\n")); - if (neg_flags & NTLMSSP_CHAL_TARGET_INFO) - DEBUGADD(4, (" NTLMSSP_CHAL_TARGET_INFO\n")); + if (neg_flags & NTLMSSP_NEGOTIATE_TARGET_INFO) + DEBUGADD(4, (" NTLMSSP_NEGOTIATE_TARGET_INFO\n")); if (neg_flags & NTLMSSP_NEGOTIATE_VERSION) DEBUGADD(4, (" NTLMSSP_NEGOTIATE_VERSION\n")); if (neg_flags & NTLMSSP_NEGOTIATE_128) @@ -385,7 +383,7 @@ static const char *ntlmssp_target_name(struct ntlmssp_state *ntlmssp_state, uint32 neg_flags, uint32 *chal_flags) { if (neg_flags & NTLMSSP_REQUEST_TARGET) { - *chal_flags |= NTLMSSP_CHAL_TARGET_INFO; + *chal_flags |= NTLMSSP_NEGOTIATE_TARGET_INFO; *chal_flags |= NTLMSSP_REQUEST_TARGET; if (ntlmssp_state->server_role == ROLE_STANDALONE) { *chal_flags |= NTLMSSP_TARGET_TYPE_SERVER; @@ -580,7 +578,7 @@ static NTSTATUS ntlmssp_server_negotiate(struct ntlmssp_state *ntlmssp_state, } /* This creates the 'blob' of names that appears at the end of the packet */ - if (chal_flags & NTLMSSP_CHAL_TARGET_INFO) + if (chal_flags & NTLMSSP_NEGOTIATE_TARGET_INFO) { msrpc_gen(ntlmssp_state, &struct_blob, "aaaaa", NTLMSSP_NAME_TYPE_DOMAIN, target_name, @@ -989,14 +987,14 @@ static NTSTATUS ntlmssp_client_challenge(struct ntlmssp_state *ntlmssp_state, ntlmssp_handle_neg_flags(ntlmssp_state, chal_flags, lp_client_lanman_auth()); if (ntlmssp_state->unicode) { - if (chal_flags & NTLMSSP_CHAL_TARGET_INFO) { + if (chal_flags & NTLMSSP_NEGOTIATE_TARGET_INFO) { chal_parse_string = "CdUdbddB"; } else { chal_parse_string = "CdUdbdd"; } auth_gen_string = "CdBBUUUBd"; } else { - if (chal_flags & NTLMSSP_CHAL_TARGET_INFO) { + if (chal_flags & NTLMSSP_NEGOTIATE_TARGET_INFO) { chal_parse_string = "CdAdbddB"; } else { chal_parse_string = "CdAdbdd"; -- cgit