diff options
author | Andrew Tridgell <tridge@samba.org> | 2009-09-17 15:24:20 -0700 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2009-09-17 15:24:20 -0700 |
commit | 39971fff27f71b514308d10d7a2d8c3fb58c2420 (patch) | |
tree | 101f2adac9ef41af17579d22f6ddd56ada62ce5d /libcli/auth/spnego.h | |
parent | 23676b6e9e8aad0ac2aa78d04e65f637b4551527 (diff) | |
parent | e71d9728f52e969e07927c5b38fa062c6ef6d1eb (diff) | |
download | samba-39971fff27f71b514308d10d7a2d8c3fb58c2420.tar.gz samba-39971fff27f71b514308d10d7a2d8c3fb58c2420.tar.bz2 samba-39971fff27f71b514308d10d7a2d8c3fb58c2420.zip |
Merge branch 'master' of /home/tridge/samba/git/combined
Diffstat (limited to 'libcli/auth/spnego.h')
-rw-r--r-- | libcli/auth/spnego.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/libcli/auth/spnego.h b/libcli/auth/spnego.h new file mode 100644 index 0000000000..4b60f22d32 --- /dev/null +++ b/libcli/auth/spnego.h @@ -0,0 +1,70 @@ +/* + Unix SMB/CIFS implementation. + + RFC2478 Compliant SPNEGO implementation + + Copyright (C) Jim McDonough <jmcd@us.ibm.com> 2003 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#define OID_SPNEGO "1.3.6.1.5.5.2" +#define OID_NTLMSSP "1.3.6.1.4.1.311.2.2.10" +#define OID_KERBEROS5_OLD "1.2.840.48018.1.2.2" +#define OID_KERBEROS5 "1.2.840.113554.1.2.2" + +#define SPNEGO_DELEG_FLAG 0x01 +#define SPNEGO_MUTUAL_FLAG 0x02 +#define SPNEGO_REPLAY_FLAG 0x04 +#define SPNEGO_SEQUENCE_FLAG 0x08 +#define SPNEGO_ANON_FLAG 0x10 +#define SPNEGO_CONF_FLAG 0x20 +#define SPNEGO_INTEG_FLAG 0x40 + +enum spnego_negResult { + SPNEGO_ACCEPT_COMPLETED = 0, + SPNEGO_ACCEPT_INCOMPLETE = 1, + SPNEGO_REJECT = 2, + SPNEGO_NONE_RESULT = 3 +}; + +struct spnego_negTokenInit { + const char **mechTypes; + DATA_BLOB reqFlags; + uint8_t reqFlagsPadding; + DATA_BLOB mechToken; + DATA_BLOB mechListMIC; + char *targetPrincipal; +}; + +struct spnego_negTokenTarg { + uint8_t negResult; + const char *supportedMech; + DATA_BLOB responseToken; + DATA_BLOB mechListMIC; +}; + +struct spnego_data { + int type; + struct spnego_negTokenInit negTokenInit; + struct spnego_negTokenTarg negTokenTarg; +}; + +enum spnego_message_type { + SPNEGO_NEG_TOKEN_INIT = 0, + SPNEGO_NEG_TOKEN_TARG = 1, +}; + +#include "../libcli/auth/spnego_proto.h" |