Lines Matching full:server
30 smb3_crypto_shash_allocate(struct TCP_Server_Info *server) in smb3_crypto_shash_allocate() argument
32 struct cifs_secmech *p = &server->secmech; in smb3_crypto_shash_allocate()
50 smb311_crypto_shash_allocate(struct TCP_Server_Info *server) in smb311_crypto_shash_allocate() argument
52 struct cifs_secmech *p = &server->secmech; in smb311_crypto_shash_allocate()
77 int smb2_get_sign_key(__u64 ses_id, struct TCP_Server_Info *server, u8 *key) in smb2_get_sign_key() argument
88 /* If server is a channel, select the primary channel */ in smb2_get_sign_key()
89 pserver = SERVER_IS_CHAN(server) ? server->primary_server : server; in smb2_get_sign_key()
105 is_binding = (cifs_chan_needs_reconnect(ses, server) && in smb2_get_sign_key()
125 if (chan->server == server) { in smb2_get_sign_key()
146 smb2_find_smb_ses_unlocked(struct TCP_Server_Info *server, __u64 ses_id) in smb2_find_smb_ses_unlocked() argument
151 /* If server is a channel, select the primary channel */ in smb2_find_smb_ses_unlocked()
152 pserver = SERVER_IS_CHAN(server) ? server->primary_server : server; in smb2_find_smb_ses_unlocked()
172 smb2_find_smb_ses(struct TCP_Server_Info *server, __u64 ses_id) in smb2_find_smb_ses() argument
177 ses = smb2_find_smb_ses_unlocked(server, ses_id); in smb2_find_smb_ses()
204 smb2_find_smb_tcon(struct TCP_Server_Info *server, __u64 ses_id, __u32 tid) in smb2_find_smb_tcon() argument
210 ses = smb2_find_smb_ses_unlocked(server, ses_id); in smb2_find_smb_tcon()
229 smb2_calc_signature(struct smb_rqst *rqst, struct TCP_Server_Info *server, in smb2_calc_signature() argument
241 ses = smb2_find_smb_ses(server, le64_to_cpu(shdr->SessionId)); in smb2_calc_signature()
258 shash = server->secmech.hmacsha256; in smb2_calc_signature()
297 rc = __cifs_calc_signature(&drqst, server, sigptr, shash); in smb2_calc_signature()
319 struct TCP_Server_Info *server = ses->server; in generate_key() local
324 rc = smb3_crypto_shash_allocate(server); in generate_key()
330 rc = crypto_shash_setkey(server->secmech.hmacsha256->tfm, in generate_key()
337 rc = crypto_shash_init(server->secmech.hmacsha256); in generate_key()
343 rc = crypto_shash_update(server->secmech.hmacsha256, i, 4); in generate_key()
349 rc = crypto_shash_update(server->secmech.hmacsha256, label.iov_base, label.iov_len); in generate_key()
355 rc = crypto_shash_update(server->secmech.hmacsha256, &zero, 1); in generate_key()
361 rc = crypto_shash_update(server->secmech.hmacsha256, context.iov_base, context.iov_len); in generate_key()
367 if ((server->cipher_type == SMB2_ENCRYPTION_AES256_CCM) || in generate_key()
368 (server->cipher_type == SMB2_ENCRYPTION_AES256_GCM)) { in generate_key()
369 rc = crypto_shash_update(server->secmech.hmacsha256, L256, 4); in generate_key()
371 rc = crypto_shash_update(server->secmech.hmacsha256, L128, 4); in generate_key()
378 rc = crypto_shash_final(server->secmech.hmacsha256, hashptr); in generate_key()
403 struct TCP_Server_Info *server, in generate_smb3signingkey() argument
412 is_binding = (cifs_chan_needs_reconnect(ses, server) && in generate_smb3signingkey()
415 chan_index = cifs_ses_get_chan_index(ses, server); in generate_smb3signingkey()
479 cifs_dbg(VFS, "Cipher type %d\n", server->cipher_type); in generate_smb3signingkey()
484 if ((server->cipher_type == SMB2_ENCRYPTION_AES256_CCM) || in generate_smb3signingkey()
485 (server->cipher_type == SMB2_ENCRYPTION_AES256_GCM)) { in generate_smb3signingkey()
502 struct TCP_Server_Info *server) in generate_smb30signingkey() argument
526 return generate_smb3signingkey(ses, server, &triplet); in generate_smb30signingkey()
531 struct TCP_Server_Info *server) in generate_smb311signingkey() argument
555 return generate_smb3signingkey(ses, server, &triplet); in generate_smb311signingkey()
559 smb3_calc_signature(struct smb_rqst *rqst, struct TCP_Server_Info *server, in smb3_calc_signature() argument
571 rc = smb2_get_sign_key(le64_to_cpu(shdr->SessionId), server, key); in smb3_calc_signature()
582 shash = server->secmech.aes_cmac; in smb3_calc_signature()
625 rc = __cifs_calc_signature(&drqst, server, sigptr, shash); in smb3_calc_signature()
635 /* must be called with server->srv_mutex held */
637 smb2_sign_rqst(struct smb_rqst *rqst, struct TCP_Server_Info *server) in smb2_sign_rqst() argument
654 spin_lock(&server->srv_lock); in smb2_sign_rqst()
655 if (server->ops->need_neg && in smb2_sign_rqst()
656 server->ops->need_neg(server)) { in smb2_sign_rqst()
657 spin_unlock(&server->srv_lock); in smb2_sign_rqst()
660 spin_unlock(&server->srv_lock); in smb2_sign_rqst()
661 if (!is_binding && !server->session_estab) { in smb2_sign_rqst()
666 rc = server->ops->calc_signature(rqst, server, false); in smb2_sign_rqst()
672 smb2_verify_signature(struct smb_rqst *rqst, struct TCP_Server_Info *server) in smb2_verify_signature() argument
682 server->ignore_signature || in smb2_verify_signature()
683 (!server->session_estab)) in smb2_verify_signature()
688 * server does not send one? BB in smb2_verify_signature()
698 * our calculated signature against what the server sent. in smb2_verify_signature()
704 rc = server->ops->calc_signature(rqst, server, true); in smb2_verify_signature()
722 smb2_seq_num_into_buf(struct TCP_Server_Info *server, in smb2_seq_num_into_buf() argument
727 shdr->MessageId = get_next_mid64(server); in smb2_seq_num_into_buf()
730 get_next_mid(server); in smb2_seq_num_into_buf()
735 struct TCP_Server_Info *server) in smb2_mid_entry_alloc() argument
740 if (server == NULL) { in smb2_mid_entry_alloc()
753 temp->server = server; in smb2_mid_entry_alloc()
773 smb2_get_mid_entry(struct cifs_ses *ses, struct TCP_Server_Info *server, in smb2_get_mid_entry() argument
776 spin_lock(&server->srv_lock); in smb2_get_mid_entry()
777 if (server->tcpStatus == CifsExiting) { in smb2_get_mid_entry()
778 spin_unlock(&server->srv_lock); in smb2_get_mid_entry()
782 if (server->tcpStatus == CifsNeedReconnect) { in smb2_get_mid_entry()
783 spin_unlock(&server->srv_lock); in smb2_get_mid_entry()
788 if (server->tcpStatus == CifsNeedNegotiate && in smb2_get_mid_entry()
790 spin_unlock(&server->srv_lock); in smb2_get_mid_entry()
793 spin_unlock(&server->srv_lock); in smb2_get_mid_entry()
814 *mid = smb2_mid_entry_alloc(shdr, server); in smb2_get_mid_entry()
817 spin_lock(&server->mid_lock); in smb2_get_mid_entry()
818 list_add_tail(&(*mid)->qhead, &server->pending_mid_q); in smb2_get_mid_entry()
819 spin_unlock(&server->mid_lock); in smb2_get_mid_entry()
825 smb2_check_receive(struct mid_q_entry *mid, struct TCP_Server_Info *server, in smb2_check_receive() argument
838 if (len > 24 && server->sign && !mid->decrypted) { in smb2_check_receive()
841 rc = smb2_verify_signature(&rqst, server); in smb2_check_receive()
851 smb2_setup_request(struct cifs_ses *ses, struct TCP_Server_Info *server, in smb2_setup_request() argument
859 smb2_seq_num_into_buf(server, shdr); in smb2_setup_request()
861 rc = smb2_get_mid_entry(ses, server, shdr, &mid); in smb2_setup_request()
863 revert_current_mid_from_hdr(server, shdr); in smb2_setup_request()
867 rc = smb2_sign_rqst(rqst, server); in smb2_setup_request()
869 revert_current_mid_from_hdr(server, shdr); in smb2_setup_request()
878 smb2_setup_async_request(struct TCP_Server_Info *server, struct smb_rqst *rqst) in smb2_setup_async_request() argument
885 spin_lock(&server->srv_lock); in smb2_setup_async_request()
886 if (server->tcpStatus == CifsNeedNegotiate && in smb2_setup_async_request()
888 spin_unlock(&server->srv_lock); in smb2_setup_async_request()
891 spin_unlock(&server->srv_lock); in smb2_setup_async_request()
893 smb2_seq_num_into_buf(server, shdr); in smb2_setup_async_request()
895 mid = smb2_mid_entry_alloc(shdr, server); in smb2_setup_async_request()
897 revert_current_mid_from_hdr(server, shdr); in smb2_setup_async_request()
901 rc = smb2_sign_rqst(rqst, server); in smb2_setup_async_request()
903 revert_current_mid_from_hdr(server, shdr); in smb2_setup_async_request()
912 smb3_crypto_aead_allocate(struct TCP_Server_Info *server) in smb3_crypto_aead_allocate() argument
916 if (!server->secmech.enc) { in smb3_crypto_aead_allocate()
917 if ((server->cipher_type == SMB2_ENCRYPTION_AES128_GCM) || in smb3_crypto_aead_allocate()
918 (server->cipher_type == SMB2_ENCRYPTION_AES256_GCM)) in smb3_crypto_aead_allocate()
927 server->secmech.enc = tfm; in smb3_crypto_aead_allocate()
930 if (!server->secmech.dec) { in smb3_crypto_aead_allocate()
931 if ((server->cipher_type == SMB2_ENCRYPTION_AES128_GCM) || in smb3_crypto_aead_allocate()
932 (server->cipher_type == SMB2_ENCRYPTION_AES256_GCM)) in smb3_crypto_aead_allocate()
937 crypto_free_aead(server->secmech.enc); in smb3_crypto_aead_allocate()
938 server->secmech.enc = NULL; in smb3_crypto_aead_allocate()
943 server->secmech.dec = tfm; in smb3_crypto_aead_allocate()