Loading fs/cifs/cifsglob.h +6 −2 Original line number Diff line number Diff line Loading @@ -661,7 +661,9 @@ struct TCP_Server_Info { #endif unsigned int max_read; unsigned int max_write; __u8 preauth_hash[512]; #ifdef CONFIG_CIFS_SMB311 __u8 preauth_sha_hash[64]; /* save initital negprot hash */ #endif /* 3.1.1 */ struct delayed_work reconnect; /* reconnect workqueue job */ struct mutex reconnect_mutex; /* prevent simultaneous reconnects */ unsigned long echo_interval; Loading Loading @@ -849,7 +851,9 @@ struct cifs_ses { __u8 smb3signingkey[SMB3_SIGN_KEY_SIZE]; __u8 smb3encryptionkey[SMB3_SIGN_KEY_SIZE]; __u8 smb3decryptionkey[SMB3_SIGN_KEY_SIZE]; __u8 preauth_hash[512]; #ifdef CONFIG_CIFS_SMB311 __u8 preauth_sha_hash[64]; #endif /* 3.1.1 */ }; static inline bool Loading fs/cifs/smb2transport.c +14 −12 Original line number Diff line number Diff line Loading @@ -390,6 +390,7 @@ generate_smb30signingkey(struct cifs_ses *ses) return generate_smb3signingkey(ses, &triplet); } #ifdef CONFIG_CIFS_SMB311 int generate_smb311signingkey(struct cifs_ses *ses) Loading @@ -398,25 +399,26 @@ generate_smb311signingkey(struct cifs_ses *ses) struct derivation *d; d = &triplet.signing; d->label.iov_base = "SMB2AESCMAC"; d->label.iov_len = 12; d->context.iov_base = "SmbSign"; d->context.iov_len = 8; d->label.iov_base = "SMBSigningKey"; d->label.iov_len = 14; d->context.iov_base = ses->preauth_sha_hash; d->context.iov_len = 64; d = &triplet.encryption; d->label.iov_base = "SMB2AESCCM"; d->label.iov_len = 11; d->context.iov_base = "ServerIn "; d->context.iov_len = 10; d->label.iov_base = "SMBC2SCipherKey"; d->label.iov_len = 16; d->context.iov_base = ses->preauth_sha_hash; d->context.iov_len = 64; d = &triplet.decryption; d->label.iov_base = "SMB2AESCCM"; d->label.iov_len = 11; d->context.iov_base = "ServerOut"; d->context.iov_len = 10; d->label.iov_base = "SMBS2CCipherKey"; d->label.iov_len = 16; d->context.iov_base = ses->preauth_sha_hash; d->context.iov_len = 64; return generate_smb3signingkey(ses, &triplet); } #endif /* 311 */ int smb3_calc_signature(struct smb_rqst *rqst, struct TCP_Server_Info *server) Loading Loading
fs/cifs/cifsglob.h +6 −2 Original line number Diff line number Diff line Loading @@ -661,7 +661,9 @@ struct TCP_Server_Info { #endif unsigned int max_read; unsigned int max_write; __u8 preauth_hash[512]; #ifdef CONFIG_CIFS_SMB311 __u8 preauth_sha_hash[64]; /* save initital negprot hash */ #endif /* 3.1.1 */ struct delayed_work reconnect; /* reconnect workqueue job */ struct mutex reconnect_mutex; /* prevent simultaneous reconnects */ unsigned long echo_interval; Loading Loading @@ -849,7 +851,9 @@ struct cifs_ses { __u8 smb3signingkey[SMB3_SIGN_KEY_SIZE]; __u8 smb3encryptionkey[SMB3_SIGN_KEY_SIZE]; __u8 smb3decryptionkey[SMB3_SIGN_KEY_SIZE]; __u8 preauth_hash[512]; #ifdef CONFIG_CIFS_SMB311 __u8 preauth_sha_hash[64]; #endif /* 3.1.1 */ }; static inline bool Loading
fs/cifs/smb2transport.c +14 −12 Original line number Diff line number Diff line Loading @@ -390,6 +390,7 @@ generate_smb30signingkey(struct cifs_ses *ses) return generate_smb3signingkey(ses, &triplet); } #ifdef CONFIG_CIFS_SMB311 int generate_smb311signingkey(struct cifs_ses *ses) Loading @@ -398,25 +399,26 @@ generate_smb311signingkey(struct cifs_ses *ses) struct derivation *d; d = &triplet.signing; d->label.iov_base = "SMB2AESCMAC"; d->label.iov_len = 12; d->context.iov_base = "SmbSign"; d->context.iov_len = 8; d->label.iov_base = "SMBSigningKey"; d->label.iov_len = 14; d->context.iov_base = ses->preauth_sha_hash; d->context.iov_len = 64; d = &triplet.encryption; d->label.iov_base = "SMB2AESCCM"; d->label.iov_len = 11; d->context.iov_base = "ServerIn "; d->context.iov_len = 10; d->label.iov_base = "SMBC2SCipherKey"; d->label.iov_len = 16; d->context.iov_base = ses->preauth_sha_hash; d->context.iov_len = 64; d = &triplet.decryption; d->label.iov_base = "SMB2AESCCM"; d->label.iov_len = 11; d->context.iov_base = "ServerOut"; d->context.iov_len = 10; d->label.iov_base = "SMBS2CCipherKey"; d->label.iov_len = 16; d->context.iov_base = ses->preauth_sha_hash; d->context.iov_len = 64; return generate_smb3signingkey(ses, &triplet); } #endif /* 311 */ int smb3_calc_signature(struct smb_rqst *rqst, struct TCP_Server_Info *server) Loading