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 smb3_get_sign_key(__u64 ses_id, struct TCP_Server_Info *server, u8 *key) in smb3_get_sign_key() argument
88 /* If server is a channel, select the primary channel */ in smb3_get_sign_key()
89 pserver = SERVER_IS_CHAN(server) ? server->primary_server : server; in smb3_get_sign_key()
105 is_binding = (cifs_chan_needs_reconnect(ses, server) && in smb3_get_sign_key()
125 if (chan->server == server) { in smb3_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()
171 static int smb2_get_sign_key(struct TCP_Server_Info *server, in smb2_get_sign_key() argument
177 if (SERVER_IS_CHAN(server)) in smb2_get_sign_key()
178 server = server->primary_server; in smb2_get_sign_key()
181 list_for_each_entry(ses, &server->smb_ses_list, smb_ses_list) { in smb2_get_sign_key()
231 smb2_find_smb_tcon(struct TCP_Server_Info *server, __u64 ses_id, __u32 tid) in smb2_find_smb_tcon() argument
237 ses = smb2_find_smb_ses_unlocked(server, ses_id); in smb2_find_smb_tcon()
256 smb2_calc_signature(struct smb_rqst *rqst, struct TCP_Server_Info *server, in smb2_calc_signature() argument
269 rc = smb2_get_sign_key(server, sid, key); in smb2_calc_signature()
287 shash = server->secmech.hmacsha256; in smb2_calc_signature()
325 rc = __cifs_calc_signature(&drqst, server, sigptr, shash); in smb2_calc_signature()
345 struct TCP_Server_Info *server = ses->server; in generate_key() local
350 rc = smb3_crypto_shash_allocate(server); in generate_key()
356 rc = crypto_shash_setkey(server->secmech.hmacsha256->tfm, in generate_key()
363 rc = crypto_shash_init(server->secmech.hmacsha256); in generate_key()
369 rc = crypto_shash_update(server->secmech.hmacsha256, i, 4); in generate_key()
375 rc = crypto_shash_update(server->secmech.hmacsha256, label.iov_base, label.iov_len); in generate_key()
381 rc = crypto_shash_update(server->secmech.hmacsha256, &zero, 1); in generate_key()
387 rc = crypto_shash_update(server->secmech.hmacsha256, context.iov_base, context.iov_len); in generate_key()
393 if ((server->cipher_type == SMB2_ENCRYPTION_AES256_CCM) || in generate_key()
394 (server->cipher_type == SMB2_ENCRYPTION_AES256_GCM)) { in generate_key()
395 rc = crypto_shash_update(server->secmech.hmacsha256, L256, 4); in generate_key()
397 rc = crypto_shash_update(server->secmech.hmacsha256, L128, 4); in generate_key()
404 rc = crypto_shash_final(server->secmech.hmacsha256, hashptr); in generate_key()
429 struct TCP_Server_Info *server, in generate_smb3signingkey() argument
438 is_binding = (cifs_chan_needs_reconnect(ses, server) && in generate_smb3signingkey()
441 chan_index = cifs_ses_get_chan_index(ses, server); in generate_smb3signingkey()
505 cifs_dbg(VFS, "Cipher type %d\n", server->cipher_type); in generate_smb3signingkey()
510 if ((server->cipher_type == SMB2_ENCRYPTION_AES256_CCM) || in generate_smb3signingkey()
511 (server->cipher_type == SMB2_ENCRYPTION_AES256_GCM)) { in generate_smb3signingkey()
528 struct TCP_Server_Info *server) in generate_smb30signingkey() argument
552 return generate_smb3signingkey(ses, server, &triplet); in generate_smb30signingkey()
557 struct TCP_Server_Info *server) in generate_smb311signingkey() argument
581 return generate_smb3signingkey(ses, server, &triplet); in generate_smb311signingkey()
585 smb3_calc_signature(struct smb_rqst *rqst, struct TCP_Server_Info *server, in smb3_calc_signature() argument
597 rc = smb3_get_sign_key(le64_to_cpu(shdr->SessionId), server, key); in smb3_calc_signature()
608 shash = server->secmech.aes_cmac; in smb3_calc_signature()
651 rc = __cifs_calc_signature(&drqst, server, sigptr, shash); in smb3_calc_signature()
661 /* must be called with server->srv_mutex held */
663 smb2_sign_rqst(struct smb_rqst *rqst, struct TCP_Server_Info *server) in smb2_sign_rqst() argument
680 spin_lock(&server->srv_lock); in smb2_sign_rqst()
681 if (server->ops->need_neg && in smb2_sign_rqst()
682 server->ops->need_neg(server)) { in smb2_sign_rqst()
683 spin_unlock(&server->srv_lock); in smb2_sign_rqst()
686 spin_unlock(&server->srv_lock); in smb2_sign_rqst()
687 if (!is_binding && !server->session_estab) { in smb2_sign_rqst()
692 rc = server->ops->calc_signature(rqst, server, false); in smb2_sign_rqst()
698 smb2_verify_signature(struct smb_rqst *rqst, struct TCP_Server_Info *server) in smb2_verify_signature() argument
708 server->ignore_signature || in smb2_verify_signature()
709 (!server->session_estab)) in smb2_verify_signature()
714 * server does not send one? BB in smb2_verify_signature()
724 * our calculated signature against what the server sent. in smb2_verify_signature()
730 rc = server->ops->calc_signature(rqst, server, true); in smb2_verify_signature()
748 smb2_seq_num_into_buf(struct TCP_Server_Info *server, in smb2_seq_num_into_buf() argument
753 shdr->MessageId = get_next_mid64(server); in smb2_seq_num_into_buf()
756 get_next_mid(server); in smb2_seq_num_into_buf()
761 struct TCP_Server_Info *server) in smb2_mid_entry_alloc() argument
766 if (server == NULL) { in smb2_mid_entry_alloc()
779 temp->server = server; in smb2_mid_entry_alloc()
799 smb2_get_mid_entry(struct cifs_ses *ses, struct TCP_Server_Info *server, in smb2_get_mid_entry() argument
802 spin_lock(&server->srv_lock); in smb2_get_mid_entry()
803 if (server->tcpStatus == CifsExiting) { in smb2_get_mid_entry()
804 spin_unlock(&server->srv_lock); in smb2_get_mid_entry()
808 if (server->tcpStatus == CifsNeedReconnect) { in smb2_get_mid_entry()
809 spin_unlock(&server->srv_lock); in smb2_get_mid_entry()
814 if (server->tcpStatus == CifsNeedNegotiate && in smb2_get_mid_entry()
816 spin_unlock(&server->srv_lock); in smb2_get_mid_entry()
819 spin_unlock(&server->srv_lock); in smb2_get_mid_entry()
840 *mid = smb2_mid_entry_alloc(shdr, server); in smb2_get_mid_entry()
843 spin_lock(&server->mid_lock); in smb2_get_mid_entry()
844 list_add_tail(&(*mid)->qhead, &server->pending_mid_q); in smb2_get_mid_entry()
845 spin_unlock(&server->mid_lock); in smb2_get_mid_entry()
851 smb2_check_receive(struct mid_q_entry *mid, struct TCP_Server_Info *server, in smb2_check_receive() argument
864 if (len > 24 && server->sign && !mid->decrypted) { in smb2_check_receive()
867 rc = smb2_verify_signature(&rqst, server); in smb2_check_receive()
877 smb2_setup_request(struct cifs_ses *ses, struct TCP_Server_Info *server, in smb2_setup_request() argument
885 smb2_seq_num_into_buf(server, shdr); in smb2_setup_request()
887 rc = smb2_get_mid_entry(ses, server, shdr, &mid); in smb2_setup_request()
889 revert_current_mid_from_hdr(server, shdr); in smb2_setup_request()
893 rc = smb2_sign_rqst(rqst, server); in smb2_setup_request()
895 revert_current_mid_from_hdr(server, shdr); in smb2_setup_request()
904 smb2_setup_async_request(struct TCP_Server_Info *server, struct smb_rqst *rqst) in smb2_setup_async_request() argument
911 spin_lock(&server->srv_lock); in smb2_setup_async_request()
912 if (server->tcpStatus == CifsNeedNegotiate && in smb2_setup_async_request()
914 spin_unlock(&server->srv_lock); in smb2_setup_async_request()
917 spin_unlock(&server->srv_lock); in smb2_setup_async_request()
919 smb2_seq_num_into_buf(server, shdr); in smb2_setup_async_request()
921 mid = smb2_mid_entry_alloc(shdr, server); in smb2_setup_async_request()
923 revert_current_mid_from_hdr(server, shdr); in smb2_setup_async_request()
927 rc = smb2_sign_rqst(rqst, server); in smb2_setup_async_request()
929 revert_current_mid_from_hdr(server, shdr); in smb2_setup_async_request()
938 smb3_crypto_aead_allocate(struct TCP_Server_Info *server) in smb3_crypto_aead_allocate() argument
942 if (!server->secmech.enc) { in smb3_crypto_aead_allocate()
943 if ((server->cipher_type == SMB2_ENCRYPTION_AES128_GCM) || in smb3_crypto_aead_allocate()
944 (server->cipher_type == SMB2_ENCRYPTION_AES256_GCM)) in smb3_crypto_aead_allocate()
953 server->secmech.enc = tfm; in smb3_crypto_aead_allocate()
956 if (!server->secmech.dec) { in smb3_crypto_aead_allocate()
957 if ((server->cipher_type == SMB2_ENCRYPTION_AES128_GCM) || in smb3_crypto_aead_allocate()
958 (server->cipher_type == SMB2_ENCRYPTION_AES256_GCM)) in smb3_crypto_aead_allocate()
963 crypto_free_aead(server->secmech.enc); in smb3_crypto_aead_allocate()
964 server->secmech.enc = NULL; in smb3_crypto_aead_allocate()
969 server->secmech.dec = tfm; in smb3_crypto_aead_allocate()