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