Lines Matching refs:ses
81 struct cifs_ses *ses = NULL; in smb3_get_sign_key() local
91 list_for_each_entry(ses, &pserver->smb_ses_list, smb_ses_list) { in smb3_get_sign_key()
92 if (ses->Suid == ses_id) in smb3_get_sign_key()
102 spin_lock(&ses->ses_lock); in smb3_get_sign_key()
103 spin_lock(&ses->chan_lock); in smb3_get_sign_key()
105 is_binding = (cifs_chan_needs_reconnect(ses, server) && in smb3_get_sign_key()
106 ses->ses_status == SES_GOOD); in smb3_get_sign_key()
113 memcpy(key, ses->smb3signingkey, SMB3_SIGN_KEY_SIZE); in smb3_get_sign_key()
114 spin_unlock(&ses->chan_lock); in smb3_get_sign_key()
115 spin_unlock(&ses->ses_lock); in smb3_get_sign_key()
123 for (i = 0; i < ses->chan_count; i++) { in smb3_get_sign_key()
124 chan = ses->chans + i; in smb3_get_sign_key()
127 spin_unlock(&ses->chan_lock); in smb3_get_sign_key()
128 spin_unlock(&ses->ses_lock); in smb3_get_sign_key()
132 spin_unlock(&ses->chan_lock); in smb3_get_sign_key()
133 spin_unlock(&ses->ses_lock); in smb3_get_sign_key()
149 struct cifs_ses *ses; in smb2_find_smb_ses_unlocked() local
154 list_for_each_entry(ses, &pserver->smb_ses_list, smb_ses_list) { in smb2_find_smb_ses_unlocked()
155 if (ses->Suid != ses_id) in smb2_find_smb_ses_unlocked()
158 spin_lock(&ses->ses_lock); in smb2_find_smb_ses_unlocked()
159 if (ses->ses_status == SES_EXITING) { in smb2_find_smb_ses_unlocked()
160 spin_unlock(&ses->ses_lock); in smb2_find_smb_ses_unlocked()
163 cifs_smb_ses_inc_refcount(ses); in smb2_find_smb_ses_unlocked()
164 spin_unlock(&ses->ses_lock); in smb2_find_smb_ses_unlocked()
165 return ses; in smb2_find_smb_ses_unlocked()
174 struct cifs_ses *ses; in smb2_get_sign_key() local
181 list_for_each_entry(ses, &server->smb_ses_list, smb_ses_list) { in smb2_get_sign_key()
182 if (ses->Suid != ses_id) in smb2_get_sign_key()
186 spin_lock(&ses->ses_lock); in smb2_get_sign_key()
187 switch (ses->ses_status) { in smb2_get_sign_key()
190 if (likely(ses->auth_key.response)) { in smb2_get_sign_key()
191 memcpy(key, ses->auth_key.response, in smb2_get_sign_key()
201 spin_unlock(&ses->ses_lock); in smb2_get_sign_key()
209 smb2_find_smb_sess_tcon_unlocked(struct cifs_ses *ses, __u32 tid) in smb2_find_smb_sess_tcon_unlocked() argument
213 list_for_each_entry(tcon, &ses->tcon_list, tcon_list) { in smb2_find_smb_sess_tcon_unlocked()
233 struct cifs_ses *ses; in smb2_find_smb_tcon() local
237 ses = smb2_find_smb_ses_unlocked(server, ses_id); in smb2_find_smb_tcon()
238 if (!ses) { in smb2_find_smb_tcon()
242 tcon = smb2_find_smb_sess_tcon_unlocked(ses, tid); in smb2_find_smb_tcon()
245 cifs_put_smb_ses(ses); in smb2_find_smb_tcon()
250 cifs_put_smb_ses(ses); in smb2_find_smb_tcon()
335 static int generate_key(struct cifs_ses *ses, struct kvec label, in generate_key() argument
345 struct TCP_Server_Info *server = ses->server; in generate_key()
357 ses->auth_key.response, SMB2_NTLMV2_SESSKEY_SIZE); in generate_key()
428 generate_smb3signingkey(struct cifs_ses *ses, in generate_smb3signingkey() argument
436 spin_lock(&ses->ses_lock); in generate_smb3signingkey()
437 spin_lock(&ses->chan_lock); in generate_smb3signingkey()
438 is_binding = (cifs_chan_needs_reconnect(ses, server) && in generate_smb3signingkey()
439 ses->ses_status == SES_GOOD); in generate_smb3signingkey()
441 chan_index = cifs_ses_get_chan_index(ses, server); in generate_smb3signingkey()
443 spin_unlock(&ses->chan_lock); in generate_smb3signingkey()
444 spin_unlock(&ses->ses_lock); in generate_smb3signingkey()
449 spin_unlock(&ses->chan_lock); in generate_smb3signingkey()
450 spin_unlock(&ses->ses_lock); in generate_smb3signingkey()
463 rc = generate_key(ses, ptriplet->signing.label, in generate_smb3signingkey()
465 ses->chans[chan_index].signkey, in generate_smb3signingkey()
470 rc = generate_key(ses, ptriplet->signing.label, in generate_smb3signingkey()
472 ses->smb3signingkey, in generate_smb3signingkey()
478 spin_lock(&ses->chan_lock); in generate_smb3signingkey()
479 memcpy(ses->chans[chan_index].signkey, ses->smb3signingkey, in generate_smb3signingkey()
481 spin_unlock(&ses->chan_lock); in generate_smb3signingkey()
483 rc = generate_key(ses, ptriplet->encryption.label, in generate_smb3signingkey()
485 ses->smb3encryptionkey, in generate_smb3signingkey()
489 rc = generate_key(ses, ptriplet->decryption.label, in generate_smb3signingkey()
491 ses->smb3decryptionkey, in generate_smb3signingkey()
503 cifs_dbg(VFS, "Session Id %*ph\n", (int)sizeof(ses->Suid), in generate_smb3signingkey()
504 &ses->Suid); in generate_smb3signingkey()
507 SMB2_NTLMV2_SESSKEY_SIZE, ses->auth_key.response); in generate_smb3signingkey()
509 SMB3_SIGN_KEY_SIZE, ses->smb3signingkey); in generate_smb3signingkey()
513 SMB3_GCM256_CRYPTKEY_SIZE, ses->smb3encryptionkey); in generate_smb3signingkey()
515 SMB3_GCM256_CRYPTKEY_SIZE, ses->smb3decryptionkey); in generate_smb3signingkey()
518 SMB3_GCM128_CRYPTKEY_SIZE, ses->smb3encryptionkey); in generate_smb3signingkey()
520 SMB3_GCM128_CRYPTKEY_SIZE, ses->smb3decryptionkey); in generate_smb3signingkey()
527 generate_smb30signingkey(struct cifs_ses *ses, in generate_smb30signingkey() argument
552 return generate_smb3signingkey(ses, server, &triplet); in generate_smb30signingkey()
556 generate_smb311signingkey(struct cifs_ses *ses, in generate_smb311signingkey() argument
566 d->context.iov_base = ses->preauth_sha_hash; in generate_smb311signingkey()
572 d->context.iov_base = ses->preauth_sha_hash; in generate_smb311signingkey()
578 d->context.iov_base = ses->preauth_sha_hash; in generate_smb311signingkey()
581 return generate_smb3signingkey(ses, server, &triplet); in generate_smb311signingkey()
800 smb2_get_mid_entry(struct cifs_ses *ses, struct TCP_Server_Info *server, in smb2_get_mid_entry() argument
822 spin_lock(&ses->ses_lock); in smb2_get_mid_entry()
823 if (ses->ses_status == SES_NEW) { in smb2_get_mid_entry()
826 spin_unlock(&ses->ses_lock); in smb2_get_mid_entry()
832 if (ses->ses_status == SES_EXITING) { in smb2_get_mid_entry()
834 spin_unlock(&ses->ses_lock); in smb2_get_mid_entry()
839 spin_unlock(&ses->ses_lock); in smb2_get_mid_entry()
878 smb2_setup_request(struct cifs_ses *ses, struct TCP_Server_Info *server, in smb2_setup_request() argument
888 rc = smb2_get_mid_entry(ses, server, shdr, &mid); in smb2_setup_request()