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/include | |
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/include')
-rw-r--r-- | source3/include/ntlmssp.h | 139 |
1 files changed, 0 insertions, 139 deletions
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; -}; |