Print this page
12513 SMB 3.1.1 support for server
@@ -19,10 +19,11 @@
* CDDL HEADER END
*/
/*
* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2019 Nexenta by DDN, Inc. All rights reserved.
+ * Copyright 2020 RackTop Systems, Inc.
*/
/*
* Structures and type definitions for the SMB module.
*/
@@ -886,10 +887,11 @@
#define SMB_SESSION_MAGIC 0x53455353 /* 'SESS' */
#define SMB_SESSION_VALID(p) \
ASSERT(((p) != NULL) && ((p)->s_magic == SMB_SESSION_MAGIC))
#define SMB_CHALLENGE_SZ 8
+#define SMB3_PREAUTH_HASHVAL_SZ 64
typedef enum {
SMB_SESSION_STATE_INITIALIZED = 0,
SMB_SESSION_STATE_DISCONNECTED,
SMB_SESSION_STATE_CONNECTED,
@@ -936,10 +938,11 @@
uint32_t srv_cap;
struct smb_sign signing; /* SMB1 */
void *sign_mech; /* mechanism info */
void *enc_mech;
+ void *preauth_mech;
/* SMB2/SMB3 signing support */
int (*sign_calc)(struct smb_request *,
struct mbuf_chain *, uint8_t *);
void (*sign_fini)(struct smb_session *);
@@ -974,10 +977,16 @@
int reply_max_bytes;
uint16_t smb_msg_size;
uint16_t smb_max_mpx;
smb_srqueue_t *s_srqueue;
uint64_t start_time;
+
+ uint16_t smb31_enc_cipherid;
+ uint16_t smb31_preauth_hashid;
+ uint8_t smb31_preauth_hashval[SMB3_PREAUTH_HASHVAL_SZ];
+ uint8_t smb31_preauth_salt[32];
+
unsigned char MAC_key[44];
char ip_addr_str[INET6_ADDRSTRLEN];
uint8_t clnt_uuid[16];
char workstation[SMB_PI_MAX_HOST];
} smb_session_t;