diff options
author | Andrew Bartlett <abartlet@samba.org> | 2002-01-20 08:58:21 +0000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2002-01-20 08:58:21 +0000 |
commit | 2d06adc3f02ba18b832886bf4cda95679b13a39b (patch) | |
tree | e9047f631d95201d32dab38162dab757c6e185cb /source3 | |
parent | 8d2d97b17647d4a9c6bc39cb87ae99dc3c86cc06 (diff) | |
download | samba-2d06adc3f02ba18b832886bf4cda95679b13a39b.tar.gz samba-2d06adc3f02ba18b832886bf4cda95679b13a39b.tar.bz2 samba-2d06adc3f02ba18b832886bf4cda95679b13a39b.zip |
Add a touch of 'const' to some auth components, and move the simple plaintext
password check into its own helper funciton. (This will allow it to be called
from other places).
Andrew Bartlett
(This used to be commit 9e96f438057da21254f40facdd9a31dd20652f35)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/auth/auth_compat.c | 53 | ||||
-rw-r--r-- | source3/auth/auth_util.c | 20 |
2 files changed, 41 insertions, 32 deletions
diff --git a/source3/auth/auth_compat.c b/source3/auth/auth_compat.c index 28a9780d3f..8cf304a071 100644 --- a/source3/auth/auth_compat.c +++ b/source3/auth/auth_compat.c @@ -31,8 +31,34 @@ SMB hash return True if the password is correct, False otherwise ****************************************************************************/ -static NTSTATUS pass_check_smb(char *smb_name, - char *domain, +NTSTATUS check_plaintext_password(const char *smb_name, DATA_BLOB plaintext_password, auth_serversupplied_info **server_info) +{ + struct auth_context *plaintext_auth_context = NULL; + auth_usersupplied_info *user_info = NULL; + const uint8 *chal; + NTSTATUS nt_status; + if (!NT_STATUS_IS_OK(nt_status = make_auth_context_subsystem(&plaintext_auth_context))) { + return nt_status; + } + + chal = plaintext_auth_context->get_ntlm_challenge(plaintext_auth_context); + + if (!make_user_info_for_reply(&user_info, + smb_name, lp_workgroup(), chal, + plaintext_password)) { + return NT_STATUS_NO_MEMORY; + } + + nt_status = plaintext_auth_context->check_ntlm_password(plaintext_auth_context, + user_info, server_info); + + (plaintext_auth_context->free)(&plaintext_auth_context); + free_user_info(&user_info); + return nt_status; +} + +static NTSTATUS pass_check_smb(const char *smb_name, + const char *domain, DATA_BLOB lm_pwd, DATA_BLOB nt_pwd, DATA_BLOB plaintext_password, @@ -40,37 +66,20 @@ static NTSTATUS pass_check_smb(char *smb_name, { NTSTATUS nt_status; - auth_usersupplied_info *user_info = NULL; extern struct auth_context *negprot_global_auth_context; auth_serversupplied_info *server_info = NULL; if (encrypted) { + auth_usersupplied_info *user_info = NULL; make_user_info_for_reply_enc(&user_info, smb_name, domain, lm_pwd, nt_pwd); nt_status = negprot_global_auth_context->check_ntlm_password(negprot_global_auth_context, user_info, &server_info); + free_user_info(&user_info); } else { - struct auth_context *plaintext_auth_context = NULL; - const uint8 *chal; - if (!NT_STATUS_IS_OK(nt_status = make_auth_context_subsystem(&plaintext_auth_context))) { - return nt_status; - } - - chal = plaintext_auth_context->get_ntlm_challenge(plaintext_auth_context); - - if (!make_user_info_for_reply(&user_info, - smb_name, domain, chal, - plaintext_password)) { - return NT_STATUS_NO_MEMORY; - } - - nt_status = plaintext_auth_context->check_ntlm_password(plaintext_auth_context, - user_info, &server_info); - - (plaintext_auth_context->free)(&plaintext_auth_context); + nt_status = check_plaintext_password(smb_name, plaintext_password, &server_info); } - free_user_info(&user_info); free_server_info(&server_info); return nt_status; } diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c index 0839b19665..5b252f42cd 100644 --- a/source3/auth/auth_util.c +++ b/source3/auth/auth_util.c @@ -241,11 +241,11 @@ BOOL make_user_info_map(auth_usersupplied_info **user_info, ****************************************************************************/ BOOL make_user_info_netlogon_network(auth_usersupplied_info **user_info, - char *smb_name, - char *client_domain, - char *wksta_name, - uchar *lm_network_pwd, int lm_pwd_len, - uchar *nt_network_pwd, int nt_pwd_len) + const char *smb_name, + const char *client_domain, + const char *wksta_name, + const uchar *lm_network_pwd, int lm_pwd_len, + const uchar *nt_network_pwd, int nt_pwd_len) { BOOL ret; DATA_BLOB lm_blob = data_blob(lm_network_pwd, lm_pwd_len); @@ -361,8 +361,8 @@ BOOL make_user_info_netlogon_interactive(auth_usersupplied_info **user_info, ****************************************************************************/ BOOL make_user_info_for_reply(auth_usersupplied_info **user_info, - char *smb_name, - char *client_domain, + const char *smb_name, + const char *client_domain, const uint8 chal[8], DATA_BLOB plaintext_password) { @@ -416,9 +416,9 @@ BOOL make_user_info_for_reply(auth_usersupplied_info **user_info, ****************************************************************************/ BOOL make_user_info_for_reply_enc(auth_usersupplied_info **user_info, - char *smb_name, - char *client_domain, - DATA_BLOB lm_resp, DATA_BLOB nt_resp) + const char *smb_name, + const char *client_domain, + DATA_BLOB lm_resp, DATA_BLOB nt_resp) { uint32 auth_flags = AUTH_FLAG_NONE; |