aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsencrypt.c
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2006-06-02 22:57:13 +0000
committerSteve French <sfrench@us.ibm.com>2006-06-02 22:57:13 +0000
commitbdc4bf6e8ac8cc29c61c2f0dc61d9776ef9a8ed4 (patch)
tree60e8cd01fa1a5a8c5bc00c920db629232191ccf1 /fs/cifs/cifsencrypt.c
parent43411d699e8cf3293674da558d31a02e0012aa9d (diff)
downloadlinux-bdc4bf6e8ac8cc29c61c2f0dc61d9776ef9a8ed4.tar.gz
[CIFS] Support for older servers which require plaintext passwords
disabled by default, but can be enabled via proc for servers which require such support. Also includes support for setting security flags for cifs. See fs/cifs/README Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifsencrypt.c')
-rw-r--r--fs/cifs/cifsencrypt.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/cifs/cifsencrypt.c b/fs/cifs/cifsencrypt.c
index e11d8c6bb2270..3ae964bbfdc3f 100644
--- a/fs/cifs/cifsencrypt.c
+++ b/fs/cifs/cifsencrypt.c
@@ -271,9 +271,18 @@ void calc_lanman_hash(struct cifsSesInfo * ses, char * lnm_session_key)
int i;
char password_with_pad[CIFS_ENCPWD_SIZE];
+ if(ses->server == NULL)
+ return;
+
memset(password_with_pad, 0, CIFS_ENCPWD_SIZE);
strncpy(password_with_pad, ses->password, CIFS_ENCPWD_SIZE);
+ if((ses->server->secMode & SECMODE_PW_ENCRYPT) == 0)
+ if(extended_security & CIFSSEC_MAY_PLNTXT) {
+ memcpy(lnm_session_key, password_with_pad, CIFS_ENCPWD_SIZE);
+ return;
+ }
+
/* calculate old style session key */
/* calling toupper is less broken than repeatedly
calling nls_toupper would be since that will never