56e977ed7c3465dd0e21e5a3f66723c0c6ded996
[sfrench/samba-autobuild/.git] / source4 / libcli / raw / signing.h
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 3 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, see <http://www.gnu.org/licenses/>.
21 */
22
23 enum smb_signing_engine_state {
24         SMB_SIGNING_ENGINE_OFF,
25         SMB_SIGNING_ENGINE_BSRSPYL,
26         SMB_SIGNING_ENGINE_ON
27 };
28
29 enum smb_signing_state {
30         SMB_SIGNING_OFF, SMB_SIGNING_SUPPORTED, 
31         SMB_SIGNING_REQUIRED, SMB_SIGNING_AUTO};
32
33 struct smb_signing_context {
34         enum smb_signing_engine_state signing_state;
35         DATA_BLOB mac_key;
36         uint32_t next_seq_num;
37         bool allow_smb_signing;
38         bool doing_signing;
39         bool mandatory_signing;
40         bool seen_valid; /* Have I ever seen a validly signed packet? */
41 };
42
43 #endif