Lines Matching refs:server
38 cifs_crypto_shash_md5_allocate(struct TCP_Server_Info *server) in cifs_crypto_shash_md5_allocate() argument
43 if (server->secmech.sdescmd5 != NULL) in cifs_crypto_shash_md5_allocate()
46 server->secmech.md5 = crypto_alloc_shash("md5", 0, 0); in cifs_crypto_shash_md5_allocate()
47 if (IS_ERR(server->secmech.md5)) { in cifs_crypto_shash_md5_allocate()
49 rc = PTR_ERR(server->secmech.md5); in cifs_crypto_shash_md5_allocate()
50 server->secmech.md5 = NULL; in cifs_crypto_shash_md5_allocate()
55 crypto_shash_descsize(server->secmech.md5); in cifs_crypto_shash_md5_allocate()
56 server->secmech.sdescmd5 = kmalloc(size, GFP_KERNEL); in cifs_crypto_shash_md5_allocate()
57 if (!server->secmech.sdescmd5) { in cifs_crypto_shash_md5_allocate()
58 crypto_free_shash(server->secmech.md5); in cifs_crypto_shash_md5_allocate()
59 server->secmech.md5 = NULL; in cifs_crypto_shash_md5_allocate()
62 server->secmech.sdescmd5->shash.tfm = server->secmech.md5; in cifs_crypto_shash_md5_allocate()
63 server->secmech.sdescmd5->shash.flags = 0x0; in cifs_crypto_shash_md5_allocate()
76 struct TCP_Server_Info *server, char *signature) in cifs_calc_signature() argument
83 if (iov == NULL || signature == NULL || server == NULL) in cifs_calc_signature()
86 if (!server->secmech.sdescmd5) { in cifs_calc_signature()
87 rc = cifs_crypto_shash_md5_allocate(server); in cifs_calc_signature()
94 rc = crypto_shash_init(&server->secmech.sdescmd5->shash); in cifs_calc_signature()
100 rc = crypto_shash_update(&server->secmech.sdescmd5->shash, in cifs_calc_signature()
101 server->session_key.response, server->session_key.len); in cifs_calc_signature()
120 crypto_shash_update(&server->secmech.sdescmd5->shash, in cifs_calc_signature()
124 crypto_shash_update(&server->secmech.sdescmd5->shash, in cifs_calc_signature()
139 crypto_shash_update(&server->secmech.sdescmd5->shash, in cifs_calc_signature()
144 rc = crypto_shash_final(&server->secmech.sdescmd5->shash, signature); in cifs_calc_signature()
152 int cifs_sign_rqst(struct smb_rqst *rqst, struct TCP_Server_Info *server, in cifs_sign_rqst() argument
159 if ((cifs_pdu == NULL) || (server == NULL)) in cifs_sign_rqst()
163 server->tcpStatus == CifsNeedNegotiate) in cifs_sign_rqst()
166 if (!server->session_estab) { in cifs_sign_rqst()
172 cpu_to_le32(server->sequence_number); in cifs_sign_rqst()
175 *pexpected_response_sequence_number = ++server->sequence_number; in cifs_sign_rqst()
176 ++server->sequence_number; in cifs_sign_rqst()
178 rc = cifs_calc_signature(rqst, server, smb_signature); in cifs_sign_rqst()
187 int cifs_sign_smbv(struct kvec *iov, int n_vec, struct TCP_Server_Info *server, in cifs_sign_smbv() argument
193 return cifs_sign_rqst(&rqst, server, pexpected_response_sequence); in cifs_sign_smbv()
197 int cifs_sign_smb(struct smb_hdr *cifs_pdu, struct TCP_Server_Info *server, in cifs_sign_smb() argument
205 return cifs_sign_smbv(&iov, 1, server, in cifs_sign_smb()
210 struct TCP_Server_Info *server, in cifs_verify_signature() argument
218 if (cifs_pdu == NULL || server == NULL) in cifs_verify_signature()
221 if (!server->session_estab) in cifs_verify_signature()
247 mutex_lock(&server->srv_mutex); in cifs_verify_signature()
248 rc = cifs_calc_signature(rqst, server, what_we_think_sig_should_be); in cifs_verify_signature()
249 mutex_unlock(&server->srv_mutex); in cifs_verify_signature()
280 rc = SMBNTencrypt(ses->password, ses->server->cryptkey, in setup_ntlm_response()
497 wchar_t *server; in calc_ntlmv2_hash() local
499 if (!ses->server->secmech.sdeschmacmd5) { in calc_ntlmv2_hash()
507 rc = crypto_shash_setkey(ses->server->secmech.hmacmd5, nt_hash, in calc_ntlmv2_hash()
514 rc = crypto_shash_init(&ses->server->secmech.sdeschmacmd5->shash); in calc_ntlmv2_hash()
535 rc = crypto_shash_update(&ses->server->secmech.sdeschmacmd5->shash, in calc_ntlmv2_hash()
555 crypto_shash_update(&ses->server->secmech.sdeschmacmd5->shash, in calc_ntlmv2_hash()
567 server = kmalloc(2 + (len * 2), GFP_KERNEL); in calc_ntlmv2_hash()
568 if (server == NULL) { in calc_ntlmv2_hash()
572 len = cifs_strtoUTF16((__le16 *)server, ses->serverName, len, in calc_ntlmv2_hash()
575 crypto_shash_update(&ses->server->secmech.sdeschmacmd5->shash, in calc_ntlmv2_hash()
576 (char *)server, 2 * len); in calc_ntlmv2_hash()
577 kfree(server); in calc_ntlmv2_hash()
585 rc = crypto_shash_final(&ses->server->secmech.sdeschmacmd5->shash, in calc_ntlmv2_hash()
605 if (!ses->server->secmech.sdeschmacmd5) { in CalcNTLMv2_response()
610 rc = crypto_shash_setkey(ses->server->secmech.hmacmd5, in CalcNTLMv2_response()
618 rc = crypto_shash_init(&ses->server->secmech.sdeschmacmd5->shash); in CalcNTLMv2_response()
624 if (ses->server->negflavor == CIFS_NEGFLAVOR_EXTENDED) in CalcNTLMv2_response()
629 ses->server->cryptkey, CIFS_SERVER_CHALLENGE_SIZE); in CalcNTLMv2_response()
630 rc = crypto_shash_update(&ses->server->secmech.sdeschmacmd5->shash, in CalcNTLMv2_response()
638 rc = crypto_shash_final(&ses->server->secmech.sdeschmacmd5->shash, in CalcNTLMv2_response()
646 static int crypto_hmacmd5_alloc(struct TCP_Server_Info *server) in crypto_hmacmd5_alloc() argument
652 if (server->secmech.sdeschmacmd5) in crypto_hmacmd5_alloc()
655 server->secmech.hmacmd5 = crypto_alloc_shash("hmac(md5)", 0, 0); in crypto_hmacmd5_alloc()
656 if (IS_ERR(server->secmech.hmacmd5)) { in crypto_hmacmd5_alloc()
658 rc = PTR_ERR(server->secmech.hmacmd5); in crypto_hmacmd5_alloc()
659 server->secmech.hmacmd5 = NULL; in crypto_hmacmd5_alloc()
664 crypto_shash_descsize(server->secmech.hmacmd5); in crypto_hmacmd5_alloc()
665 server->secmech.sdeschmacmd5 = kmalloc(size, GFP_KERNEL); in crypto_hmacmd5_alloc()
666 if (!server->secmech.sdeschmacmd5) { in crypto_hmacmd5_alloc()
667 crypto_free_shash(server->secmech.hmacmd5); in crypto_hmacmd5_alloc()
668 server->secmech.hmacmd5 = NULL; in crypto_hmacmd5_alloc()
671 server->secmech.sdeschmacmd5->shash.tfm = server->secmech.hmacmd5; in crypto_hmacmd5_alloc()
672 server->secmech.sdeschmacmd5->shash.flags = 0x0; in crypto_hmacmd5_alloc()
688 if (ses->server->negflavor == CIFS_NEGFLAVOR_EXTENDED) { in setup_ntlmv2_rsp()
734 rc = crypto_hmacmd5_alloc(ses->server); in setup_ntlmv2_rsp()
755 rc = crypto_shash_setkey(ses->server->secmech.hmacmd5, in setup_ntlmv2_rsp()
763 rc = crypto_shash_init(&ses->server->secmech.sdeschmacmd5->shash); in setup_ntlmv2_rsp()
769 rc = crypto_shash_update(&ses->server->secmech.sdeschmacmd5->shash, in setup_ntlmv2_rsp()
777 rc = crypto_shash_final(&ses->server->secmech.sdeschmacmd5->shash, in setup_ntlmv2_rsp()
837 cifs_crypto_shash_release(struct TCP_Server_Info *server) in cifs_crypto_shash_release() argument
839 if (server->secmech.cmacaes) { in cifs_crypto_shash_release()
840 crypto_free_shash(server->secmech.cmacaes); in cifs_crypto_shash_release()
841 server->secmech.cmacaes = NULL; in cifs_crypto_shash_release()
844 if (server->secmech.hmacsha256) { in cifs_crypto_shash_release()
845 crypto_free_shash(server->secmech.hmacsha256); in cifs_crypto_shash_release()
846 server->secmech.hmacsha256 = NULL; in cifs_crypto_shash_release()
849 if (server->secmech.md5) { in cifs_crypto_shash_release()
850 crypto_free_shash(server->secmech.md5); in cifs_crypto_shash_release()
851 server->secmech.md5 = NULL; in cifs_crypto_shash_release()
854 if (server->secmech.hmacmd5) { in cifs_crypto_shash_release()
855 crypto_free_shash(server->secmech.hmacmd5); in cifs_crypto_shash_release()
856 server->secmech.hmacmd5 = NULL; in cifs_crypto_shash_release()
859 kfree(server->secmech.sdesccmacaes); in cifs_crypto_shash_release()
860 server->secmech.sdesccmacaes = NULL; in cifs_crypto_shash_release()
861 kfree(server->secmech.sdeschmacsha256); in cifs_crypto_shash_release()
862 server->secmech.sdeschmacsha256 = NULL; in cifs_crypto_shash_release()
863 kfree(server->secmech.sdeschmacmd5); in cifs_crypto_shash_release()
864 server->secmech.sdeschmacmd5 = NULL; in cifs_crypto_shash_release()
865 kfree(server->secmech.sdescmd5); in cifs_crypto_shash_release()
866 server->secmech.sdescmd5 = NULL; in cifs_crypto_shash_release()