8982 Support building with OpenSSL 1.1
[unleashed.git] / usr / src / lib / libsmbfs / netsmb / ntlmssp.h
blobf4cfc34783eaac45a73972269be61a7a3eec85a5
1 /*
2 * CDDL HEADER START
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.
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.
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]
19 * CDDL HEADER END
23 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
26 * Copyright 2013 Nexenta Systems, Inc. All rights reserved.
29 #ifndef _NTLMSSP_H
30 #define _NTLMSSP_H
33 * NT LanMan Security Support Package (NTLMSSP)
34 * Negotiation flags, etc.
36 * Reference: [MS-NLMP] NT LAN Manager (NTLM)
37 * Authentication Protocol Specification
38 * http://msdn.microsoft.com/en-us/library/cc236621(PROT.10).aspx
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
46 * NTLMSSP Message Types
47 * [MS-NLMP] sec. 2.2.1
49 #define NTLMSSP_MSGTYPE_NEGOTIATE 1
50 #define NTLMSSP_MSGTYPE_CHALLENGE 2
51 #define NTLMSSP_MSGTYPE_AUTHENTICATE 3
54 * NTLMSSP Negotiate Flags
55 * [MS-NLMP] sec. 2.2.2.5
57 #define NTLMSSP_NEGOTIATE_UNICODE 0x00000001
58 #define NTLMSSP_NEGOTIATE_OEM 0x00000002
59 #define NTLMSSP_REQUEST_TARGET 0x00000004
60 /* reserved 0x00000008 */
61 #define NTLMSSP_NEGOTIATE_SIGN 0x00000010
62 #define NTLMSSP_NEGOTIATE_SEAL 0x00000020
63 #define NTLMSSP_NEGOTIATE_DATAGRAM 0x00000040
64 #define NTLMSSP_NEGOTIATE_LM_KEY 0x00000080
65 /* reserved (netware) 0x00000100 */
66 #define NTLMSSP_NEGOTIATE_NTLM 0x00000200
67 #define NTLMSSP_NEGOTIATE_NT_ONLY 0x00000400
68 #define NTLMSSP_NEGOTIATE_NULL_SESSION 0x00000800
69 #define NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED 0x00001000
70 #define NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED 0x00002000
71 /* reserved (local caller) 0x00004000 */
72 #define NTLMSSP_NEGOTIATE_ALWAYS_SIGN 0x00008000
73 #define NTLMSSP_TARGET_TYPE_DOMAIN 0x00010000
74 #define NTLMSSP_TARGET_TYPE_SERVER 0x00020000
75 #define NTLMSSP_TARGET_TYPE_SHARE 0x00040000
76 #define NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY 0x00080000
77 #define NTLMSSP_NEGOTIATE_IDENTIFY 0x00100000
78 /* reserved 0x00200000 */
79 #define NTLMSSP_REQUEST_NON_NT_SESSION_KEY 0x00400000
80 #define NTLMSSP_NEGOTIATE_TARGET_INFO 0x00800000
81 /* reserved 0x01000000 */
82 #define NTLMSSP_NEGOTIATE_VERSION 0x02000000
83 /* reserved 0x04000000 */
84 /* reserved 0x08000000 */
85 /* reserved 0x10000000 */
86 #define NTLMSSP_NEGOTIATE_128 0x20000000
87 #define NTLMSSP_NEGOTIATE_KEY_EXCH 0x40000000
88 #define NTLMSSP_NEGOTIATE_56 0x80000000
91 * NTLMSSP AV_PAIR types
92 * [MS-NLMP] sec. 2.2.2.1
94 * The names are all LE-Unicode.
96 typedef enum ntlmssp_AvId {
97 MsvAvEOL = 0, /* End Of List */
98 MsvAvNbComputerName, /* server's NetBIOS name */
99 MsvAvNbDomainName, /* server's NetBIOS domain */
100 MsvAvDnsComputerName, /* server's DNS name */
101 MsvAvDnsDomainName, /* server's DNS domain */
102 MsvAvDnsTreeName, /* server's Forest name */
103 MsvAvFlags, /* 32-bit (LE) flags */
104 MsvAvTimestamp, /* 64-bit time, [MS-DTYP] sec. 2.3.1 */
105 MsvAvRestrictions, /* struct, [MS-NLMP] sec. 2.2.2.2 */
106 MsvAvTargetName, /* SPN of the server */
107 MsvChannelBindings, /* MD5 hash of GSS challen bindings */
108 } ntlmssp_AvId_t;
110 #ifdef __cplusplus
112 #endif
114 #endif /* _NTLMSSP_H */