diff options
author | Andrew Bartlett <abartlet@samba.org> | 2010-05-25 20:19:22 +1000 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2010-05-31 15:10:56 +0200 |
commit | ebae21f0235b957c8faeeb51c926724909d353e9 (patch) | |
tree | 970b18645f7bd1988eb0e7c7430641725b84103e /source3 | |
parent | 9a76932ccfe680b9bf224e0dcac7f9cdb7ce9f4e (diff) | |
download | samba-ebae21f0235b957c8faeeb51c926724909d353e9.tar.gz samba-ebae21f0235b957c8faeeb51c926724909d353e9.tar.bz2 samba-ebae21f0235b957c8faeeb51c926724909d353e9.zip |
ntlmssp: Make the ntlmssp.h from source3/ a common header
The code is not yet in common, but I hope to fix that soon.
Andrew Bartlett
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Günther Deschner <gd@samba.org>
Diffstat (limited to 'source3')
-rw-r--r-- | source3/auth/auth_ntlmssp.c | 2 | ||||
-rw-r--r-- | source3/include/ntlmssp.h | 139 | ||||
-rw-r--r-- | source3/libads/sasl.c | 2 | ||||
-rw-r--r-- | source3/libsmb/cliconnect.c | 2 | ||||
-rw-r--r-- | source3/libsmb/clifsinfo.c | 2 | ||||
-rw-r--r-- | source3/libsmb/ntlmssp.c | 2 | ||||
-rw-r--r-- | source3/libsmb/ntlmssp_sign.c | 2 | ||||
-rw-r--r-- | source3/libsmb/smb_seal.c | 2 | ||||
-rw-r--r-- | source3/rpc_client/cli_pipe.c | 2 | ||||
-rw-r--r-- | source3/rpc_server/srv_pipe.c | 2 | ||||
-rw-r--r-- | source3/smbd/seal.c | 2 | ||||
-rw-r--r-- | source3/smbd/sesssetup.c | 2 | ||||
-rw-r--r-- | source3/smbd/smb2_sesssetup.c | 2 | ||||
-rw-r--r-- | source3/utils/ntlm_auth.c | 2 | ||||
-rw-r--r-- | source3/winbindd/winbindd_ccache_access.c | 2 |
15 files changed, 14 insertions, 153 deletions
diff --git a/source3/auth/auth_ntlmssp.c b/source3/auth/auth_ntlmssp.c index e4505eb1bd..b455bc505f 100644 --- a/source3/auth/auth_ntlmssp.c +++ b/source3/auth/auth_ntlmssp.c @@ -21,7 +21,7 @@ */ #include "includes.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" struct auth_ntlmssp_state { TALLOC_CTX *mem_ctx; diff --git a/source3/include/ntlmssp.h b/source3/include/ntlmssp.h deleted file mode 100644 index 97192b8c6f..0000000000 --- a/source3/include/ntlmssp.h +++ /dev/null @@ -1,139 +0,0 @@ -/* - Unix SMB/CIFS implementation. - SMB parameters and setup - Copyright (C) Andrew Tridgell 1992-1997 - Copyright (C) Luke Kenneth Casson Leighton 1996-1997 - Copyright (C) Paul Ashton 1997 - Copyright (C) Andrew Bartlett 2010 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include "../librpc/gen_ndr/ntlmssp.h" - -/* NTLMSSP mode */ -enum ntlmssp_role -{ - NTLMSSP_SERVER, - NTLMSSP_CLIENT -}; - -/* NTLMSSP message types */ -enum ntlmssp_message_type -{ - NTLMSSP_INITIAL = 0 /* samba internal state */, - NTLMSSP_NEGOTIATE = 1, - NTLMSSP_CHALLENGE = 2, - NTLMSSP_AUTH = 3, - NTLMSSP_UNKNOWN = 4, - NTLMSSP_DONE = 5 /* samba final state */ -}; - -#define NTLMSSP_FEATURE_SESSION_KEY 0x00000001 -#define NTLMSSP_FEATURE_SIGN 0x00000002 -#define NTLMSSP_FEATURE_SEAL 0x00000004 -#define NTLMSSP_FEATURE_CCACHE 0x00000008 - -union ntlmssp_crypt_state; - -struct ntlmssp_state -{ - enum ntlmssp_role role; - uint32_t expected_state; - - bool unicode; - bool use_ntlmv2; - bool use_ccache; - bool use_nt_response; /* Set to 'False' to debug what happens when the NT response is omited */ - bool allow_lm_key; /* The LM_KEY code is not very secure... */ - - const char *user; - const char *domain; - uint8_t *nt_hash; - uint8_t *lm_hash; - - struct { - const char *netbios_name; - const char *netbios_domain; - } client; - - struct { - bool is_standalone; - const char *netbios_name; - const char *netbios_domain; - const char *dns_name; - const char *dns_domain; - } server; - - DATA_BLOB internal_chal; /* Random challenge as supplied to the client for NTLM authentication */ - - DATA_BLOB chal; /* Random challenge as input into the actual NTLM (or NTLM2) authentication */ - DATA_BLOB lm_resp; - DATA_BLOB nt_resp; - DATA_BLOB session_key; - - uint32_t neg_flags; /* the current state of negotiation with the NTLMSSP partner */ - - /** - * Private data for the callback functions - */ - void *callback_private; - - /** - * Callback to get the 'challenge' used for NTLM authentication. - * - * @param ntlmssp_state This structure - * @return 8 bytes of challenge data, determined by the server to be the challenge for NTLM authentication - * - */ - NTSTATUS (*get_challenge)(const struct ntlmssp_state *ntlmssp_state, - uint8_t challenge[8]); - - /** - * Callback to find if the challenge used by NTLM authentication may be modified - * - * The NTLM2 authentication scheme modifies the effective challenge, but this is not compatiable with the - * current 'security=server' implementation.. - * - * @param ntlmssp_state This structure - * @return Can the challenge be set to arbitary values? - * - */ - bool (*may_set_challenge)(const struct ntlmssp_state *ntlmssp_state); - - /** - * Callback to set the 'challenge' used for NTLM authentication. - * - * The callback may use the void *auth_context to store state information, but the same value is always available - * from the DATA_BLOB chal on this structure. - * - * @param ntlmssp_state This structure - * @param challenge 8 bytes of data, agreed by the client and server to be the effective challenge for NTLM2 authentication - * - */ - NTSTATUS (*set_challenge)(struct ntlmssp_state *ntlmssp_state, DATA_BLOB *challenge); - - /** - * Callback to check the user's password. - * - * The callback must reads the feilds of this structure for the information it needs on the user - * @param ntlmssp_state This structure - * @param nt_session_key If an NT session key is returned by the authentication process, return it here - * @param lm_session_key If an LM session key is returned by the authentication process, return it here - * - */ - NTSTATUS (*check_password)(struct ntlmssp_state *ntlmssp_state, DATA_BLOB *nt_session_key, DATA_BLOB *lm_session_key); - - union ntlmssp_crypt_state *crypt; -}; diff --git a/source3/libads/sasl.c b/source3/libads/sasl.c index d6e4f68544..8f7f6c11df 100644 --- a/source3/libads/sasl.c +++ b/source3/libads/sasl.c @@ -19,7 +19,7 @@ #include "includes.h" #include "../libcli/auth/spnego.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" #ifdef HAVE_LDAP diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index 9ac3551d7c..06a6f7e683 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -22,7 +22,7 @@ #include "../libcli/auth/libcli_auth.h" #include "../libcli/auth/spnego.h" #include "smb_krb5.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" static const struct { int prot; diff --git a/source3/libsmb/clifsinfo.c b/source3/libsmb/clifsinfo.c index 2f5f31a6fa..2274df4585 100644 --- a/source3/libsmb/clifsinfo.c +++ b/source3/libsmb/clifsinfo.c @@ -20,7 +20,7 @@ #include "includes.h" #include "../libcli/auth/spnego.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" /**************************************************************************** Get UNIX extensions version info. diff --git a/source3/libsmb/ntlmssp.c b/source3/libsmb/ntlmssp.c index 8dcd26af17..7095426cab 100644 --- a/source3/libsmb/ntlmssp.c +++ b/source3/libsmb/ntlmssp.c @@ -22,7 +22,7 @@ */ #include "includes.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" #include "../libcli/auth/libcli_auth.h" #include "../librpc/gen_ndr/ndr_ntlmssp.h" #include "../libcli/auth/ntlmssp_ndr.h" diff --git a/source3/libsmb/ntlmssp_sign.c b/source3/libsmb/ntlmssp_sign.c index 733998a14e..20730928cc 100644 --- a/source3/libsmb/ntlmssp_sign.c +++ b/source3/libsmb/ntlmssp_sign.c @@ -19,7 +19,7 @@ */ #include "includes.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" #include "../libcli/auth/libcli_auth.h" #include "../lib/crypto/md5.h" #include "../lib/crypto/arcfour.h" diff --git a/source3/libsmb/smb_seal.c b/source3/libsmb/smb_seal.c index ec879db5b4..cff237bc8b 100644 --- a/source3/libsmb/smb_seal.c +++ b/source3/libsmb/smb_seal.c @@ -18,7 +18,7 @@ */ #include "includes.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" /****************************************************************************** Pull out the encryption context for this packet. 0 means global context. diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c index 038e33ae8a..0cd4d60b5d 100644 --- a/source3/rpc_client/cli_pipe.c +++ b/source3/rpc_client/cli_pipe.c @@ -39,7 +39,7 @@ #include "../libcli/auth/schannel.h" #include "../libcli/auth/spnego.h" #include "smb_krb5.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" #include "rpc_client/cli_netlogon.h" #undef DBGC_CLASS diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c index 53acc1a68c..ce087a4e03 100644 --- a/source3/rpc_server/srv_pipe.c +++ b/source3/rpc_server/srv_pipe.c @@ -31,7 +31,7 @@ #include "../librpc/gen_ndr/ndr_schannel.h" #include "../libcli/auth/schannel.h" #include "../libcli/auth/spnego.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" #undef DBGC_CLASS #define DBGC_CLASS DBGC_RPC_SRV diff --git a/source3/smbd/seal.c b/source3/smbd/seal.c index 4acf5b09b5..171e809b44 100644 --- a/source3/smbd/seal.c +++ b/source3/smbd/seal.c @@ -20,7 +20,7 @@ #include "includes.h" #include "smbd/globals.h" #include "../libcli/auth/spnego.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" /****************************************************************************** Server side encryption. diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c index 4ac13988a5..7f99d6283c 100644 --- a/source3/smbd/sesssetup.c +++ b/source3/smbd/sesssetup.c @@ -25,7 +25,7 @@ #include "includes.h" #include "smbd/globals.h" #include "../libcli/auth/spnego.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" #include "librpc/gen_ndr/messaging.h" /* For split krb5 SPNEGO blobs. */ diff --git a/source3/smbd/smb2_sesssetup.c b/source3/smbd/smb2_sesssetup.c index b659f2e2ef..d91d0fe510 100644 --- a/source3/smbd/smb2_sesssetup.c +++ b/source3/smbd/smb2_sesssetup.c @@ -23,7 +23,7 @@ #include "smbd/globals.h" #include "../libcli/smb/smb_common.h" #include "../libcli/auth/spnego.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" static NTSTATUS smbd_smb2_session_setup(struct smbd_smb2_request *smb2req, uint64_t in_session_id, diff --git a/source3/utils/ntlm_auth.c b/source3/utils/ntlm_auth.c index 79cf3f8af2..e7887cca71 100644 --- a/source3/utils/ntlm_auth.c +++ b/source3/utils/ntlm_auth.c @@ -27,7 +27,7 @@ #include "utils/ntlm_auth.h" #include "../libcli/auth/libcli_auth.h" #include "../libcli/auth/spnego.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" #include "smb_krb5.h" #include <iniparser.h> #include "../lib/crypto/arcfour.h" diff --git a/source3/winbindd/winbindd_ccache_access.c b/source3/winbindd/winbindd_ccache_access.c index 935d9fe121..c5a760af05 100644 --- a/source3/winbindd/winbindd_ccache_access.c +++ b/source3/winbindd/winbindd_ccache_access.c @@ -23,7 +23,7 @@ #include "includes.h" #include "winbindd.h" -#include "ntlmssp.h" +#include "../libcli/auth/ntlmssp.h" #undef DBGC_CLASS #define DBGC_CLASS DBGC_WINBIND |