xref: /titanic_44/usr/src/lib/libsmbfs/smb/ntlmssp.h (revision 5fd03bc0f2e00e7ba02316c2e08f45d52aab15db)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
26  */
27 
28 #ifndef _NTLMSSP_H
29 #define	_NTLMSSP_H
30 
31 /*
32  * NT LanMan Security Support Package (NTLMSSP)
33  * Negotiation flags, etc.
34  *
35  * Reference: [MS-NLMP] NT LAN Manager (NTLM)
36  *   Authentication Protocol Specification
37  * http://msdn.microsoft.com/en-us/library/cc236621(PROT.10).aspx
38  */
39 
40 /*
41  * NTLMSSP Message Types
42  * [MS-NLMP] sec. 2.2.1
43  */
44 #define	NTLMSSP_MSGTYPE_NEGOTIATE	1
45 #define	NTLMSSP_MSGTYPE_CHALLENGE	2
46 #define	NTLMSSP_MSGTYPE_AUTHENTICATE	3
47 
48 /*
49  * NTLMSSP Negotiate Flags
50  * [MS-NLMP] sec. 2.2.2.5
51  */
52 #define	NTLMSSP_NEGOTIATE_UNICODE			0x00000001
53 #define	NTLMSSP_NEGOTIATE_OEM				0x00000002
54 #define	NTLMSSP_REQUEST_TARGET				0x00000004
55 /*	reserved 					0x00000008 */
56 #define	NTLMSSP_NEGOTIATE_SIGN				0x00000010
57 #define	NTLMSSP_NEGOTIATE_SEAL				0x00000020
58 #define	NTLMSSP_NEGOTIATE_DATAGRAM			0x00000040
59 #define	NTLMSSP_NEGOTIATE_LM_KEY			0x00000080
60 /*	reserved (netware)				0x00000100 */
61 #define	NTLMSSP_NEGOTIATE_NTLM				0x00000200
62 #define	NTLMSSP_NEGOTIATE_NT_ONLY			0x00000400
63 #define	NTLMSSP_NEGOTIATE_NULL_SESSION			0x00000800
64 #define	NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED		0x00001000
65 #define	NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED	0x00002000
66 /*	reserved (local caller)				0x00004000 */
67 #define	NTLMSSP_NEGOTIATE_ALWAYS_SIGN			0x00008000
68 #define	NTLMSSP_TARGET_TYPE_DOMAIN			0x00010000
69 #define	NTLMSSP_TARGET_TYPE_SERVER			0x00020000
70 #define	NTLMSSP_TARGET_TYPE_SHARE			0x00040000
71 #define	NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY	0x00080000
72 #define	NTLMSSP_NEGOTIATE_IDENTIFY			0x00100000
73 /*	reserved					0x00200000 */
74 #define	NTLMSSP_REQUEST_NON_NT_SESSION_KEY		0x00400000
75 #define	NTLMSSP_NEGOTIATE_TARGET_INFO			0x00800000
76 /*	reserved					0x01000000 */
77 #define	NTLMSSP_NEGOTIATE_VERSION			0x02000000
78 /*	reserved					0x04000000 */
79 /*	reserved					0x08000000 */
80 /*	reserved					0x10000000 */
81 #define	NTLMSSP_NEGOTIATE_128				0x20000000
82 #define	NTLMSSP_NEGOTIATE_KEY_EXCH			0x40000000
83 #define	NTLMSSP_NEGOTIATE_56				0x80000000
84 
85 #endif /* _NTLMSSP_H */
86