• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/router/samba-3.5.8/libcli/auth/
1/*
2   Unix SMB/CIFS implementation.
3
4   RFC2478 Compliant SPNEGO implementation
5
6   Copyright (C) Jim McDonough <jmcd@us.ibm.com>   2003
7
8   This program is free software; you can redistribute it and/or modify
9   it under the terms of the GNU General Public License as published by
10   the Free Software Foundation; either version 3 of the License, or
11   (at your option) any later version.
12
13   This program is distributed in the hope that it will be useful,
14   but WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   GNU General Public License for more details.
17
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#define OID_SPNEGO "1.3.6.1.5.5.2"
24#define OID_NTLMSSP "1.3.6.1.4.1.311.2.2.10"
25#define OID_KERBEROS5_OLD "1.2.840.48018.1.2.2"
26#define OID_KERBEROS5 "1.2.840.113554.1.2.2"
27
28#define SPNEGO_DELEG_FLAG    0x01
29#define SPNEGO_MUTUAL_FLAG   0x02
30#define SPNEGO_REPLAY_FLAG   0x04
31#define SPNEGO_SEQUENCE_FLAG 0x08
32#define SPNEGO_ANON_FLAG     0x10
33#define SPNEGO_CONF_FLAG     0x20
34#define SPNEGO_INTEG_FLAG    0x40
35
36enum spnego_negResult {
37	SPNEGO_ACCEPT_COMPLETED = 0,
38	SPNEGO_ACCEPT_INCOMPLETE = 1,
39	SPNEGO_REJECT = 2,
40	SPNEGO_NONE_RESULT = 3
41};
42
43struct spnego_negTokenInit {
44	const char **mechTypes;
45	DATA_BLOB reqFlags;
46	uint8_t reqFlagsPadding;
47	DATA_BLOB mechToken;
48	DATA_BLOB mechListMIC;
49	char *targetPrincipal;
50};
51
52struct spnego_negTokenTarg {
53	uint8_t negResult;
54	const char *supportedMech;
55	DATA_BLOB responseToken;
56	DATA_BLOB mechListMIC;
57};
58
59struct spnego_data {
60	int type;
61	struct spnego_negTokenInit negTokenInit;
62	struct spnego_negTokenTarg negTokenTarg;
63};
64
65enum spnego_message_type {
66	SPNEGO_NEG_TOKEN_INIT = 0,
67	SPNEGO_NEG_TOKEN_TARG = 1,
68};
69
70#include "../libcli/auth/spnego_proto.h"
71