SMB3.1.1: add defines for new signing negotiate context
authorSteve French <stfrench@microsoft.com>
Sun, 11 Oct 2020 01:11:47 +0000 (20:11 -0500)
committerSteve French <stfrench@microsoft.com>
Fri, 16 Oct 2020 04:58:14 +0000 (23:58 -0500)
Currently there are three supported signing algorithms

Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/smb2pdu.h

index 4dfb51dd706564045c233976df91c5b1562559c6..5932fc0dc62cc5674ee9c5dc42b556c2a3be1911 100644 (file)
@@ -323,6 +323,7 @@ struct smb2_negotiate_req {
 #define SMB2_NETNAME_NEGOTIATE_CONTEXT_ID      cpu_to_le16(5)
 #define SMB2_TRANSPORT_CAPABILITIES            cpu_to_le16(6)
 #define SMB2_RDMA_TRANSFORM_CAPABILITIES       cpu_to_le16(7)
+#define SMB2_SIGNING_CAPABILITIES              cpu_to_le16(8)
 #define SMB2_POSIX_EXTENSIONS_AVAILABLE                cpu_to_le16(0x100)
 
 struct smb2_neg_context {
@@ -416,6 +417,19 @@ struct smb2_rdma_transform_capabilities_context {
        __le16  RDMATransformIds[1];
 } __packed;
 
+/* Signing algorithms */
+#define SIGNING_ALG_HMAC_SHA256        0
+#define SIGNING_ALG_AES_CMAC   1
+#define SIGNING_ALG_AES_GMAC   2
+
+struct smb2_signing_capabilities {
+       __le16  ContextType; /* 8 */
+       __le16  DataLength;
+       __u32   Reserved;
+       __le16  SigningAlgorithmCount;
+       __le16  SigningAlgorithms[];
+} __packed;
+
 #define POSIX_CTXT_DATA_LEN    16
 struct smb2_posix_neg_context {
        __le16  ContextType; /* 0x100 */