Lines Matching full:server
31 smb3_crypto_shash_allocate(struct TCP_Server_Info *server) in smb3_crypto_shash_allocate() argument
33 struct cifs_secmech *p = &server->secmech; in smb3_crypto_shash_allocate()
39 int smb3_get_sign_key(__u64 ses_id, struct TCP_Server_Info *server, u8 *key) in smb3_get_sign_key() argument
50 /* If server is a channel, select the primary channel */ in smb3_get_sign_key()
51 pserver = SERVER_IS_CHAN(server) ? server->primary_server : server; in smb3_get_sign_key()
67 is_binding = (cifs_chan_needs_reconnect(ses, server) && in smb3_get_sign_key()
87 if (chan->server == server) { in smb3_get_sign_key()
108 smb2_find_smb_ses_unlocked(struct TCP_Server_Info *server, __u64 ses_id) in smb2_find_smb_ses_unlocked() argument
113 /* If server is a channel, select the primary channel */ in smb2_find_smb_ses_unlocked()
114 pserver = SERVER_IS_CHAN(server) ? server->primary_server : server; in smb2_find_smb_ses_unlocked()
133 static int smb2_get_sign_key(struct TCP_Server_Info *server, in smb2_get_sign_key() argument
139 if (SERVER_IS_CHAN(server)) in smb2_get_sign_key()
140 server = server->primary_server; in smb2_get_sign_key()
143 list_for_each_entry(ses, &server->smb_ses_list, smb_ses_list) { in smb2_get_sign_key()
193 smb2_find_smb_tcon(struct TCP_Server_Info *server, __u64 ses_id, __u32 tid) in smb2_find_smb_tcon() argument
199 ses = smb2_find_smb_ses_unlocked(server, ses_id); in smb2_find_smb_tcon()
213 smb2_calc_signature(struct smb_rqst *rqst, struct TCP_Server_Info *server, in smb2_calc_signature() argument
225 rc = smb2_get_sign_key(server, sid, key); in smb2_calc_signature()
252 &drqst, server, smb2_signature, in smb2_calc_signature()
269 struct TCP_Server_Info *server = ses->server; in generate_key() local
275 rc = smb3_crypto_shash_allocate(server); in generate_key()
288 if ((server->cipher_type == SMB2_ENCRYPTION_AES256_CCM) || in generate_key()
289 (server->cipher_type == SMB2_ENCRYPTION_AES256_GCM)) { in generate_key()
313 struct TCP_Server_Info *server, in generate_smb3signingkey() argument
322 is_binding = (cifs_chan_needs_reconnect(ses, server) && in generate_smb3signingkey()
325 chan_index = cifs_ses_get_chan_index(ses, server); in generate_smb3signingkey()
389 cifs_dbg(VFS, "Cipher type %d\n", server->cipher_type); in generate_smb3signingkey()
394 if ((server->cipher_type == SMB2_ENCRYPTION_AES256_CCM) || in generate_smb3signingkey()
395 (server->cipher_type == SMB2_ENCRYPTION_AES256_GCM)) { in generate_smb3signingkey()
412 struct TCP_Server_Info *server) in generate_smb30signingkey() argument
436 return generate_smb3signingkey(ses, server, &triplet); in generate_smb30signingkey()
441 struct TCP_Server_Info *server) in generate_smb311signingkey() argument
465 return generate_smb3signingkey(ses, server, &triplet); in generate_smb311signingkey()
469 smb3_calc_signature(struct smb_rqst *rqst, struct TCP_Server_Info *server, in smb3_calc_signature() argument
480 rc = smb3_get_sign_key(le64_to_cpu(shdr->SessionId), server, key); in smb3_calc_signature()
491 shash = server->secmech.aes_cmac; in smb3_calc_signature()
535 &drqst, server, smb3_signature, in smb3_calc_signature()
546 /* must be called with server->srv_mutex held */
548 smb2_sign_rqst(struct smb_rqst *rqst, struct TCP_Server_Info *server) in smb2_sign_rqst() argument
565 spin_lock(&server->srv_lock); in smb2_sign_rqst()
566 if (server->ops->need_neg && in smb2_sign_rqst()
567 server->ops->need_neg(server)) { in smb2_sign_rqst()
568 spin_unlock(&server->srv_lock); in smb2_sign_rqst()
571 spin_unlock(&server->srv_lock); in smb2_sign_rqst()
572 if (!is_binding && !server->session_estab) { in smb2_sign_rqst()
577 rc = server->ops->calc_signature(rqst, server, false); in smb2_sign_rqst()
583 smb2_verify_signature(struct smb_rqst *rqst, struct TCP_Server_Info *server) in smb2_verify_signature() argument
593 server->ignore_signature || in smb2_verify_signature()
594 (!server->session_estab)) in smb2_verify_signature()
599 * server does not send one? BB in smb2_verify_signature()
609 * our calculated signature against what the server sent. in smb2_verify_signature()
615 rc = server->ops->calc_signature(rqst, server, true); in smb2_verify_signature()
633 smb2_seq_num_into_buf(struct TCP_Server_Info *server, in smb2_seq_num_into_buf() argument
638 shdr->MessageId = get_next_mid64(server); in smb2_seq_num_into_buf()
641 get_next_mid(server); in smb2_seq_num_into_buf()
646 struct TCP_Server_Info *server) in smb2_mid_entry_alloc() argument
651 if (server == NULL) { in smb2_mid_entry_alloc()
665 temp->server = server; in smb2_mid_entry_alloc()
685 smb2_get_mid_entry(struct cifs_ses *ses, struct TCP_Server_Info *server, in smb2_get_mid_entry() argument
688 spin_lock(&server->srv_lock); in smb2_get_mid_entry()
689 if (server->tcpStatus == CifsExiting) { in smb2_get_mid_entry()
690 spin_unlock(&server->srv_lock); in smb2_get_mid_entry()
694 if (server->tcpStatus == CifsNeedReconnect) { in smb2_get_mid_entry()
695 spin_unlock(&server->srv_lock); in smb2_get_mid_entry()
700 if (server->tcpStatus == CifsNeedNegotiate && in smb2_get_mid_entry()
702 spin_unlock(&server->srv_lock); in smb2_get_mid_entry()
705 spin_unlock(&server->srv_lock); in smb2_get_mid_entry()
726 *mid = smb2_mid_entry_alloc(shdr, server); in smb2_get_mid_entry()
729 spin_lock(&server->mid_queue_lock); in smb2_get_mid_entry()
730 list_add_tail(&(*mid)->qhead, &server->pending_mid_q); in smb2_get_mid_entry()
731 spin_unlock(&server->mid_queue_lock); in smb2_get_mid_entry()
737 smb2_check_receive(struct mid_q_entry *mid, struct TCP_Server_Info *server, in smb2_check_receive() argument
750 if (len > 24 && server->sign && !mid->decrypted) { in smb2_check_receive()
753 rc = smb2_verify_signature(&rqst, server); in smb2_check_receive()
763 smb2_setup_request(struct cifs_ses *ses, struct TCP_Server_Info *server, in smb2_setup_request() argument
771 smb2_seq_num_into_buf(server, shdr); in smb2_setup_request()
773 rc = smb2_get_mid_entry(ses, server, shdr, &mid); in smb2_setup_request()
775 revert_current_mid_from_hdr(server, shdr); in smb2_setup_request()
779 rc = smb2_sign_rqst(rqst, server); in smb2_setup_request()
781 revert_current_mid_from_hdr(server, shdr); in smb2_setup_request()
790 smb2_setup_async_request(struct TCP_Server_Info *server, struct smb_rqst *rqst) in smb2_setup_async_request() argument
797 spin_lock(&server->srv_lock); in smb2_setup_async_request()
798 if (server->tcpStatus == CifsNeedNegotiate && in smb2_setup_async_request()
800 spin_unlock(&server->srv_lock); in smb2_setup_async_request()
803 spin_unlock(&server->srv_lock); in smb2_setup_async_request()
805 smb2_seq_num_into_buf(server, shdr); in smb2_setup_async_request()
807 mid = smb2_mid_entry_alloc(shdr, server); in smb2_setup_async_request()
809 revert_current_mid_from_hdr(server, shdr); in smb2_setup_async_request()
813 rc = smb2_sign_rqst(rqst, server); in smb2_setup_async_request()
815 revert_current_mid_from_hdr(server, shdr); in smb2_setup_async_request()
824 smb3_crypto_aead_allocate(struct TCP_Server_Info *server) in smb3_crypto_aead_allocate() argument
828 if (!server->secmech.enc) { in smb3_crypto_aead_allocate()
829 if ((server->cipher_type == SMB2_ENCRYPTION_AES128_GCM) || in smb3_crypto_aead_allocate()
830 (server->cipher_type == SMB2_ENCRYPTION_AES256_GCM)) in smb3_crypto_aead_allocate()
839 server->secmech.enc = tfm; in smb3_crypto_aead_allocate()
842 if (!server->secmech.dec) { in smb3_crypto_aead_allocate()
843 if ((server->cipher_type == SMB2_ENCRYPTION_AES128_GCM) || in smb3_crypto_aead_allocate()
844 (server->cipher_type == SMB2_ENCRYPTION_AES256_GCM)) in smb3_crypto_aead_allocate()
849 crypto_free_aead(server->secmech.enc); in smb3_crypto_aead_allocate()
850 server->secmech.enc = NULL; in smb3_crypto_aead_allocate()
855 server->secmech.dec = tfm; in smb3_crypto_aead_allocate()