7 import
"netlogon.idl", "nbt.idl";
10 pointer_default(unique),
11 helper
("../librpc/ndr/ndr_schannel.h")
16 a schannel bind blob - used in dcerpc auth_info
28 nbt_string dnsworkstation
;
31 typedef [nodiscriminant
] union {
32 [case (3)] schannel_bind_3 info3
;
33 [case (23)] schannel_bind_23 info23
;
36 typedef [public] struct {
37 uint32 unknown1
; /* seems to need to be 0 */
39 [switch_is(bind_type
)] schannel_bind_info u
;
43 typedef [public] struct {
44 uint32 unknown1
; /* 1 */
45 uint32 unknown2
; /* 0 */
46 uint32 unknown3
; /* 0x006c0000 */
49 /* this structure is used internally in the NETLOGON server */
51 typedef [public,flag
(NDR_PAHEX
)] struct {
52 netr_NegotiateFlags negotiate_flags
;
53 uint8 session_key
[16];
56 netr_Credential client
;
57 netr_Credential server
;
58 netr_SchannelType secure_channel_type
;
59 [string,charset
(UTF8
)] uint8 computer_name
[];
60 [string,charset
(UTF8
)] uint8 account_name
[];
62 } netlogon_creds_CredentialState
;
64 /* MS-NRPC 2.2.1.3.1 NL_AUTH_MESSAGE */
66 typedef [v1_enum] enum {
67 NL_NEGOTIATE_REQUEST
= 0x00000000,
68 NL_NEGOTIATE_RESPONSE
= 0x00000001
69 } NL_AUTH_MESSAGE_TYPE
;
71 typedef [bitmap32bit
] bitmap
{
72 NL_FLAG_OEM_NETBIOS_DOMAIN_NAME
= 0x00000001,
73 NL_FLAG_OEM_NETBIOS_COMPUTER_NAME
= 0x00000002,
74 NL_FLAG_UTF8_DNS_DOMAIN_NAME
= 0x00000004,
75 NL_FLAG_UTF8_DNS_HOST_NAME
= 0x00000008,
76 NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME
= 0x00000010
77 } NL_AUTH_MESSAGE_FLAGS
;
79 typedef [public,nodiscriminant
,noprint
] union {
80 [case (NL_FLAG_OEM_NETBIOS_DOMAIN_NAME
)] astring a
;
81 [case (NL_FLAG_OEM_NETBIOS_COMPUTER_NAME
)] astring a
;
82 [case (NL_FLAG_UTF8_DNS_DOMAIN_NAME
)] nbt_string u
;
83 [case (NL_FLAG_UTF8_DNS_HOST_NAME
)] nbt_string u
;
84 [case (NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME
)] nbt_string u
;
86 } NL_AUTH_MESSAGE_BUFFER
;
88 typedef [public,flag
(NDR_PAHEX
)] struct {
89 NL_AUTH_MESSAGE_TYPE MessageType
;
90 NL_AUTH_MESSAGE_FLAGS Flags
;
91 [switch_is(Flags
& NL_FLAG_OEM_NETBIOS_DOMAIN_NAME
)] NL_AUTH_MESSAGE_BUFFER oem_netbios_domain
;
92 [switch_is(Flags
& NL_FLAG_OEM_NETBIOS_COMPUTER_NAME
)] NL_AUTH_MESSAGE_BUFFER oem_netbios_computer
;
93 [switch_is(Flags
& NL_FLAG_UTF8_DNS_DOMAIN_NAME
)] NL_AUTH_MESSAGE_BUFFER utf8_dns_domain
;
94 [switch_is(Flags
& NL_FLAG_UTF8_DNS_HOST_NAME
)] NL_AUTH_MESSAGE_BUFFER utf8_dns_host
;
95 [switch_is(Flags
& NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME
)] NL_AUTH_MESSAGE_BUFFER utf8_netbios_computer
;
98 /* MS-NRPC 2.2.1.3.2 NL_AUTH_SIGNATURE */
101 NL_SIGN_HMAC_SHA256
= 0x0013,
102 NL_SIGN_HMAC_MD5
= 0x0077
103 } NL_SIGNATURE_ALGORITHM
;
106 NL_SEAL_AES128
= 0x001A,
107 NL_SEAL_RC4
= 0x007A,
108 NL_SEAL_NONE
= 0xFFFF
111 typedef [public,flag
(NDR_PAHEX
)] struct {
112 [value
(NL_SIGN_HMAC_MD5
)] NL_SIGNATURE_ALGORITHM SignatureAlgorithm
;
113 NL_SEAL_ALGORITHM SealAlgorithm
;
116 uint8 SequenceNumber
[8];
121 /* MS-NRPC 2.2.1.3.3 NL_AUTH_SHA2_SIGNATURE */
123 typedef [public,flag
(NDR_PAHEX
)] struct {
124 [value
(NL_SIGN_HMAC_SHA256
)] NL_SIGNATURE_ALGORITHM SignatureAlgorithm
;
125 NL_SEAL_ALGORITHM SealAlgorithm
;
128 uint8 SequenceNumber
[8];
131 } NL_AUTH_SHA2_SIGNATURE
;