aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsglob.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/cifs/cifsglob.h')
-rw-r--r--fs/cifs/cifsglob.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index 66f76b2d270b..7ca5f6d8ed80 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -25,6 +25,9 @@
25#include <linux/workqueue.h> 25#include <linux/workqueue.h>
26#include "cifs_fs_sb.h" 26#include "cifs_fs_sb.h"
27#include "cifsacl.h" 27#include "cifsacl.h"
28#include <crypto/internal/hash.h>
29#include <linux/scatterlist.h>
30
28/* 31/*
29 * The sizes of various internal tables and strings 32 * The sizes of various internal tables and strings
30 */ 33 */
@@ -102,6 +105,27 @@ struct session_key {
102 char *response; 105 char *response;
103}; 106};
104 107
108/* crypto security descriptor definition */
109struct sdesc {
110 struct shash_desc shash;
111 char ctx[];
112};
113
114/* crypto hashing related structure/fields, not speicific to a sec mech */
115struct cifs_secmech {
116 struct crypto_shash *hmacmd5; /* hmac-md5 hash function */
117 struct crypto_shash *md5; /* md5 hash function */
118 struct sdesc *sdeschmacmd5; /* ctxt to generate ntlmv2 hash, CR1 */
119 struct sdesc *sdescmd5; /* ctxt to generate cifs/smb signature */
120};
121
122/* per smb connection structure/fields */
123struct ntlmssp_auth {
124 __u32 client_flags; /* sent by client in type 1 ntlmsssp exchange */
125 __u32 server_flags; /* sent by server in type 2 ntlmssp exchange */
126 unsigned char ciphertext[CIFS_CPHTXT_SIZE]; /* sent to server */
127};
128
105struct cifs_cred { 129struct cifs_cred {
106 int uid; 130 int uid;
107 int gid; 131 int gid;
@@ -178,6 +202,7 @@ struct TCP_Server_Info {
178 struct session_key session_key; 202 struct session_key session_key;
179 unsigned long lstrp; /* when we got last response from this server */ 203 unsigned long lstrp; /* when we got last response from this server */
180 u16 dialect; /* dialect index that server chose */ 204 u16 dialect; /* dialect index that server chose */
205 struct cifs_secmech secmech; /* crypto sec mech functs, descriptors */
181 /* extended security flavors that server supports */ 206 /* extended security flavors that server supports */
182 bool sec_kerberos; /* supports plain Kerberos */ 207 bool sec_kerberos; /* supports plain Kerberos */
183 bool sec_mskerberos; /* supports legacy MS Kerberos */ 208 bool sec_mskerberos; /* supports legacy MS Kerberos */
@@ -220,6 +245,7 @@ struct cifsSesInfo {
220 char ntlmv2_hash[16]; 245 char ntlmv2_hash[16];
221 unsigned int tilen; /* length of the target info blob */ 246 unsigned int tilen; /* length of the target info blob */
222 unsigned char *tiblob; /* target info blob in challenge response */ 247 unsigned char *tiblob; /* target info blob in challenge response */
248 struct ntlmssp_auth ntlmssp; /* ciphertext, flags */
223 bool need_reconnect:1; /* connection reset, uid now invalid */ 249 bool need_reconnect:1; /* connection reset, uid now invalid */
224}; 250};
225/* no more than one of the following three session flags may be set */ 251/* no more than one of the following three session flags may be set */