cifs: Start using per session key for smb2/3 for signature generation
Switch smb2 code to use per session session key and smb3 code to use per session signing key instead of per connection key to generate signatures. For that, we need to find a session to fetch the session key to generate signature to match for every request and response packet. We also forgo checking signature for a session setup response from the server. Acked-by: Jeff Layton <jlayton@samba.org> Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com> Signed-off-by: Steve French <smfrench@gmail.com>
This commit is contained in:

committed by
Steve French

parent
5c234aa5e3
commit
32811d242f
@@ -639,11 +639,20 @@ ssetup_exit:
|
||||
|
||||
if (!rc) {
|
||||
mutex_lock(&server->srv_mutex);
|
||||
if (server->sign && server->ops->generate_signingkey) {
|
||||
rc = server->ops->generate_signingkey(ses);
|
||||
kfree(ses->auth_key.response);
|
||||
ses->auth_key.response = NULL;
|
||||
if (rc) {
|
||||
cifs_dbg(FYI,
|
||||
"SMB3 session key generation failed\n");
|
||||
mutex_unlock(&server->srv_mutex);
|
||||
goto keygen_exit;
|
||||
}
|
||||
}
|
||||
if (!server->session_estab) {
|
||||
server->sequence_number = 0x2;
|
||||
server->session_estab = true;
|
||||
if (server->ops->generate_signingkey)
|
||||
server->ops->generate_signingkey(server);
|
||||
}
|
||||
mutex_unlock(&server->srv_mutex);
|
||||
|
||||
@@ -654,6 +663,7 @@ ssetup_exit:
|
||||
spin_unlock(&GlobalMid_Lock);
|
||||
}
|
||||
|
||||
keygen_exit:
|
||||
if (!server->sign) {
|
||||
kfree(ses->auth_key.response);
|
||||
ses->auth_key.response = NULL;
|
||||
|
Reference in New Issue
Block a user