1 #ifndef _SIGNING_H
2 #define _SIGNING_H
3 /*
4    Unix SMB/CIFS implementation.
5    SMB Signing
6 
7    Andrew Bartlett <abartlet@samba.org> 2003-2004
8 
9    This program is free software; you can redistribute it and/or modify
10    it under the terms of the GNU General Public License as published by
11    the Free Software Foundation; either version 2 of the License, or
12    (at your option) any later version.
13 
14    This program is distributed in the hope that it will be useful,
15    but WITHOUT ANY WARRANTY; without even the implied warranty of
16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17    GNU General Public License for more details.
18 
19    You should have received a copy of the GNU General Public License
20    along with this program; if not, write to the Free Software
21    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 */
23 
24 enum smb_signing_engine_state {
25 	SMB_SIGNING_ENGINE_OFF,
26 	SMB_SIGNING_ENGINE_BSRSPYL,
27 	SMB_SIGNING_ENGINE_ON
28 };
29 
30 enum smb_signing_state {
31 	SMB_SIGNING_OFF, SMB_SIGNING_SUPPORTED,
32 	SMB_SIGNING_REQUIRED, SMB_SIGNING_AUTO};
33 
34 struct smb_signing_context {
35 	enum smb_signing_engine_state signing_state;
36 	DATA_BLOB mac_key;
37 	uint32_t next_seq_num;
38 	BOOL allow_smb_signing;
39 	BOOL doing_signing;
40 	BOOL mandatory_signing;
41 	BOOL seen_valid; /* Have I ever seen a validly signed packet? */
42 };
43 
44 #endif
45