1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_schannel.h"
6 #include "librpc/gen_ndr/ndr_netlogon.h"
7 #include "librpc/gen_ndr/ndr_nbt.h"
8 _PUBLIC_
enum ndr_err_code
ndr_push_netlogon_creds_CredentialState(struct ndr_push
*ndr
, int ndr_flags
, const struct netlogon_creds_CredentialState
*r
)
11 uint32_t _flags_save_STRUCT
= ndr
->flags
;
12 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
13 if (ndr_flags
& NDR_SCALARS
) {
14 NDR_CHECK(ndr_push_align(ndr
, 5));
15 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr
, NDR_SCALARS
, r
->negotiate_flags
));
16 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->session_key
, 16));
17 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sequence
));
18 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, &r
->seed
));
19 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, &r
->client
));
20 NDR_CHECK(ndr_push_netr_Credential(ndr
, NDR_SCALARS
, &r
->server
));
21 NDR_CHECK(ndr_push_netr_SchannelType(ndr
, NDR_SCALARS
, r
->secure_channel_type
));
22 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer_name
, CH_UTF8
)));
23 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer_name
, CH_UTF8
)));
25 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->computer_name
, ndr_charset_length(r
->computer_name
, CH_UTF8
), sizeof(uint8_t), CH_UTF8
));
26 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF8
)));
27 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->account_name
, CH_UTF8
)));
29 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->account_name
, ndr_charset_length(r
->account_name
, CH_UTF8
), sizeof(uint8_t), CH_UTF8
));
30 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sid
));
31 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
33 if (ndr_flags
& NDR_BUFFERS
) {
35 NDR_CHECK(ndr_push_dom_sid(ndr
, NDR_SCALARS
, r
->sid
));
38 ndr
->flags
= _flags_save_STRUCT
;
40 return NDR_ERR_SUCCESS
;
43 _PUBLIC_
enum ndr_err_code
ndr_pull_netlogon_creds_CredentialState(struct ndr_pull
*ndr
, int ndr_flags
, struct netlogon_creds_CredentialState
*r
)
45 uint32_t size_session_key_0
= 0;
46 uint32_t size_computer_name_0
= 0;
47 uint32_t length_computer_name_0
= 0;
48 uint32_t size_account_name_0
= 0;
49 uint32_t length_account_name_0
= 0;
51 TALLOC_CTX
*_mem_save_sid_0
;
53 uint32_t _flags_save_STRUCT
= ndr
->flags
;
54 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
55 if (ndr_flags
& NDR_SCALARS
) {
56 NDR_CHECK(ndr_pull_align(ndr
, 5));
57 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr
, NDR_SCALARS
, &r
->negotiate_flags
));
58 size_session_key_0
= 16;
59 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->session_key
, size_session_key_0
));
60 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sequence
));
61 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, &r
->seed
));
62 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, &r
->client
));
63 NDR_CHECK(ndr_pull_netr_Credential(ndr
, NDR_SCALARS
, &r
->server
));
64 NDR_CHECK(ndr_pull_netr_SchannelType(ndr
, NDR_SCALARS
, &r
->secure_channel_type
));
65 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->computer_name
));
66 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->computer_name
));
67 size_computer_name_0
= ndr_get_array_size(ndr
, &r
->computer_name
);
68 length_computer_name_0
= ndr_get_array_length(ndr
, &r
->computer_name
);
69 if (length_computer_name_0
> size_computer_name_0
) {
70 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_computer_name_0
, length_computer_name_0
);
72 NDR_CHECK(ndr_check_string_terminator(ndr
, length_computer_name_0
, sizeof(uint8_t)));
73 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->computer_name
, length_computer_name_0
, sizeof(uint8_t), CH_UTF8
));
74 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->account_name
));
75 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->account_name
));
76 size_account_name_0
= ndr_get_array_size(ndr
, &r
->account_name
);
77 length_account_name_0
= ndr_get_array_length(ndr
, &r
->account_name
);
78 if (length_account_name_0
> size_account_name_0
) {
79 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_account_name_0
, length_account_name_0
);
81 NDR_CHECK(ndr_check_string_terminator(ndr
, length_account_name_0
, sizeof(uint8_t)));
82 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->account_name
, length_account_name_0
, sizeof(uint8_t), CH_UTF8
));
83 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sid
));
85 NDR_PULL_ALLOC(ndr
, r
->sid
);
89 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
91 if (ndr_flags
& NDR_BUFFERS
) {
93 _mem_save_sid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
94 NDR_PULL_SET_MEM_CTX(ndr
, r
->sid
, 0);
95 NDR_CHECK(ndr_pull_dom_sid(ndr
, NDR_SCALARS
, r
->sid
));
96 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sid_0
, 0);
99 ndr
->flags
= _flags_save_STRUCT
;
101 return NDR_ERR_SUCCESS
;
104 _PUBLIC_
void ndr_print_netlogon_creds_CredentialState(struct ndr_print
*ndr
, const char *name
, const struct netlogon_creds_CredentialState
*r
)
106 ndr_print_struct(ndr
, name
, "netlogon_creds_CredentialState");
108 uint32_t _flags_save_STRUCT
= ndr
->flags
;
109 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
111 ndr_print_netr_NegotiateFlags(ndr
, "negotiate_flags", r
->negotiate_flags
);
112 ndr_print_array_uint8(ndr
, "session_key", r
->session_key
, 16);
113 ndr_print_uint32(ndr
, "sequence", r
->sequence
);
114 ndr_print_netr_Credential(ndr
, "seed", &r
->seed
);
115 ndr_print_netr_Credential(ndr
, "client", &r
->client
);
116 ndr_print_netr_Credential(ndr
, "server", &r
->server
);
117 ndr_print_netr_SchannelType(ndr
, "secure_channel_type", r
->secure_channel_type
);
118 ndr_print_string(ndr
, "computer_name", r
->computer_name
);
119 ndr_print_string(ndr
, "account_name", r
->account_name
);
120 ndr_print_ptr(ndr
, "sid", r
->sid
);
123 ndr_print_dom_sid(ndr
, "sid", r
->sid
);
127 ndr
->flags
= _flags_save_STRUCT
;
131 static enum ndr_err_code
ndr_push_NL_AUTH_MESSAGE_TYPE(struct ndr_push
*ndr
, int ndr_flags
, enum NL_AUTH_MESSAGE_TYPE r
)
133 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
134 return NDR_ERR_SUCCESS
;
137 static enum ndr_err_code
ndr_pull_NL_AUTH_MESSAGE_TYPE(struct ndr_pull
*ndr
, int ndr_flags
, enum NL_AUTH_MESSAGE_TYPE
*r
)
140 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
142 return NDR_ERR_SUCCESS
;
145 _PUBLIC_
void ndr_print_NL_AUTH_MESSAGE_TYPE(struct ndr_print
*ndr
, const char *name
, enum NL_AUTH_MESSAGE_TYPE r
)
147 const char *val
= NULL
;
150 case NL_NEGOTIATE_REQUEST
: val
= "NL_NEGOTIATE_REQUEST"; break;
151 case NL_NEGOTIATE_RESPONSE
: val
= "NL_NEGOTIATE_RESPONSE"; break;
153 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
156 static enum ndr_err_code
ndr_push_NL_AUTH_MESSAGE_FLAGS(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
158 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
159 return NDR_ERR_SUCCESS
;
162 static enum ndr_err_code
ndr_pull_NL_AUTH_MESSAGE_FLAGS(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
165 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
167 return NDR_ERR_SUCCESS
;
170 _PUBLIC_
void ndr_print_NL_AUTH_MESSAGE_FLAGS(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
172 ndr_print_uint32(ndr
, name
, r
);
174 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NL_FLAG_OEM_NETBIOS_DOMAIN_NAME", NL_FLAG_OEM_NETBIOS_DOMAIN_NAME
, r
);
175 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NL_FLAG_OEM_NETBIOS_COMPUTER_NAME", NL_FLAG_OEM_NETBIOS_COMPUTER_NAME
, r
);
176 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NL_FLAG_UTF8_DNS_DOMAIN_NAME", NL_FLAG_UTF8_DNS_DOMAIN_NAME
, r
);
177 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NL_FLAG_UTF8_DNS_HOST_NAME", NL_FLAG_UTF8_DNS_HOST_NAME
, r
);
178 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME", NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME
, r
);
182 _PUBLIC_
enum ndr_err_code
ndr_push_NL_AUTH_MESSAGE_BUFFER(struct ndr_push
*ndr
, int ndr_flags
, const union NL_AUTH_MESSAGE_BUFFER
*r
)
184 if (ndr_flags
& NDR_SCALARS
) {
185 int level
= ndr_push_get_switch_value(ndr
, r
);
186 NDR_CHECK(ndr_push_union_align(ndr
, 4));
188 case NL_FLAG_OEM_NETBIOS_DOMAIN_NAME
: {
190 uint32_t _flags_save_string
= ndr
->flags
;
191 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
192 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->a
));
193 ndr
->flags
= _flags_save_string
;
197 case NL_FLAG_OEM_NETBIOS_COMPUTER_NAME
: {
199 uint32_t _flags_save_string
= ndr
->flags
;
200 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
201 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->a
));
202 ndr
->flags
= _flags_save_string
;
206 case NL_FLAG_UTF8_DNS_DOMAIN_NAME
: {
207 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->u
));
210 case NL_FLAG_UTF8_DNS_HOST_NAME
: {
211 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->u
));
214 case NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME
: {
215 NDR_CHECK(ndr_push_nbt_string(ndr
, NDR_SCALARS
, r
->u
));
223 if (ndr_flags
& NDR_BUFFERS
) {
224 int level
= ndr_push_get_switch_value(ndr
, r
);
226 case NL_FLAG_OEM_NETBIOS_DOMAIN_NAME
:
229 case NL_FLAG_OEM_NETBIOS_COMPUTER_NAME
:
232 case NL_FLAG_UTF8_DNS_DOMAIN_NAME
:
235 case NL_FLAG_UTF8_DNS_HOST_NAME
:
238 case NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME
:
246 return NDR_ERR_SUCCESS
;
249 _PUBLIC_
enum ndr_err_code
ndr_pull_NL_AUTH_MESSAGE_BUFFER(struct ndr_pull
*ndr
, int ndr_flags
, union NL_AUTH_MESSAGE_BUFFER
*r
)
252 level
= ndr_pull_get_switch_value(ndr
, r
);
253 if (ndr_flags
& NDR_SCALARS
) {
254 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
256 case NL_FLAG_OEM_NETBIOS_DOMAIN_NAME
: {
258 uint32_t _flags_save_string
= ndr
->flags
;
259 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
260 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->a
));
261 ndr
->flags
= _flags_save_string
;
265 case NL_FLAG_OEM_NETBIOS_COMPUTER_NAME
: {
267 uint32_t _flags_save_string
= ndr
->flags
;
268 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
269 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->a
));
270 ndr
->flags
= _flags_save_string
;
274 case NL_FLAG_UTF8_DNS_DOMAIN_NAME
: {
275 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->u
));
278 case NL_FLAG_UTF8_DNS_HOST_NAME
: {
279 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->u
));
282 case NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME
: {
283 NDR_CHECK(ndr_pull_nbt_string(ndr
, NDR_SCALARS
, &r
->u
));
291 if (ndr_flags
& NDR_BUFFERS
) {
293 case NL_FLAG_OEM_NETBIOS_DOMAIN_NAME
:
296 case NL_FLAG_OEM_NETBIOS_COMPUTER_NAME
:
299 case NL_FLAG_UTF8_DNS_DOMAIN_NAME
:
302 case NL_FLAG_UTF8_DNS_HOST_NAME
:
305 case NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME
:
313 return NDR_ERR_SUCCESS
;
316 _PUBLIC_
enum ndr_err_code
ndr_push_NL_AUTH_MESSAGE_BUFFER_REPLY(struct ndr_push
*ndr
, int ndr_flags
, const union NL_AUTH_MESSAGE_BUFFER_REPLY
*r
)
318 if (ndr_flags
& NDR_SCALARS
) {
319 int level
= ndr_push_get_switch_value(ndr
, r
);
320 NDR_CHECK(ndr_push_union_align(ndr
, 4));
322 case NL_NEGOTIATE_RESPONSE
: {
323 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dummy
));
331 if (ndr_flags
& NDR_BUFFERS
) {
332 int level
= ndr_push_get_switch_value(ndr
, r
);
334 case NL_NEGOTIATE_RESPONSE
:
342 return NDR_ERR_SUCCESS
;
345 _PUBLIC_
enum ndr_err_code
ndr_pull_NL_AUTH_MESSAGE_BUFFER_REPLY(struct ndr_pull
*ndr
, int ndr_flags
, union NL_AUTH_MESSAGE_BUFFER_REPLY
*r
)
348 level
= ndr_pull_get_switch_value(ndr
, r
);
349 if (ndr_flags
& NDR_SCALARS
) {
350 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
352 case NL_NEGOTIATE_RESPONSE
: {
353 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dummy
));
361 if (ndr_flags
& NDR_BUFFERS
) {
363 case NL_NEGOTIATE_RESPONSE
:
371 return NDR_ERR_SUCCESS
;
374 _PUBLIC_
enum ndr_err_code
ndr_push_NL_AUTH_MESSAGE(struct ndr_push
*ndr
, int ndr_flags
, const struct NL_AUTH_MESSAGE
*r
)
377 uint32_t _flags_save_STRUCT
= ndr
->flags
;
378 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
379 if (ndr_flags
& NDR_SCALARS
) {
380 NDR_CHECK(ndr_push_align(ndr
, 4));
381 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_TYPE(ndr
, NDR_SCALARS
, r
->MessageType
));
382 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_FLAGS(ndr
, NDR_SCALARS
, r
->Flags
));
383 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->oem_netbios_domain
, r
->Flags
& NL_FLAG_OEM_NETBIOS_DOMAIN_NAME
));
384 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_SCALARS
, &r
->oem_netbios_domain
));
385 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->oem_netbios_computer
, r
->Flags
& NL_FLAG_OEM_NETBIOS_COMPUTER_NAME
));
386 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_SCALARS
, &r
->oem_netbios_computer
));
387 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->utf8_dns_domain
, r
->Flags
& NL_FLAG_UTF8_DNS_DOMAIN_NAME
));
388 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_SCALARS
, &r
->utf8_dns_domain
));
389 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->utf8_dns_host
, r
->Flags
& NL_FLAG_UTF8_DNS_HOST_NAME
));
390 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_SCALARS
, &r
->utf8_dns_host
));
391 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->utf8_netbios_computer
, r
->Flags
& NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME
));
392 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_SCALARS
, &r
->utf8_netbios_computer
));
393 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->Buffer
, r
->MessageType
& NL_NEGOTIATE_RESPONSE
));
394 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER_REPLY(ndr
, NDR_SCALARS
, &r
->Buffer
));
395 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
397 if (ndr_flags
& NDR_BUFFERS
) {
398 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_BUFFERS
, &r
->oem_netbios_domain
));
399 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_BUFFERS
, &r
->oem_netbios_computer
));
400 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_BUFFERS
, &r
->utf8_dns_domain
));
401 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_BUFFERS
, &r
->utf8_dns_host
));
402 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_BUFFERS
, &r
->utf8_netbios_computer
));
403 NDR_CHECK(ndr_push_NL_AUTH_MESSAGE_BUFFER_REPLY(ndr
, NDR_BUFFERS
, &r
->Buffer
));
405 ndr
->flags
= _flags_save_STRUCT
;
407 return NDR_ERR_SUCCESS
;
410 _PUBLIC_
enum ndr_err_code
ndr_pull_NL_AUTH_MESSAGE(struct ndr_pull
*ndr
, int ndr_flags
, struct NL_AUTH_MESSAGE
*r
)
413 uint32_t _flags_save_STRUCT
= ndr
->flags
;
414 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
415 if (ndr_flags
& NDR_SCALARS
) {
416 NDR_CHECK(ndr_pull_align(ndr
, 4));
417 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_TYPE(ndr
, NDR_SCALARS
, &r
->MessageType
));
418 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_FLAGS(ndr
, NDR_SCALARS
, &r
->Flags
));
419 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->oem_netbios_domain
, r
->Flags
& NL_FLAG_OEM_NETBIOS_DOMAIN_NAME
));
420 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_SCALARS
, &r
->oem_netbios_domain
));
421 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->oem_netbios_computer
, r
->Flags
& NL_FLAG_OEM_NETBIOS_COMPUTER_NAME
));
422 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_SCALARS
, &r
->oem_netbios_computer
));
423 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->utf8_dns_domain
, r
->Flags
& NL_FLAG_UTF8_DNS_DOMAIN_NAME
));
424 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_SCALARS
, &r
->utf8_dns_domain
));
425 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->utf8_dns_host
, r
->Flags
& NL_FLAG_UTF8_DNS_HOST_NAME
));
426 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_SCALARS
, &r
->utf8_dns_host
));
427 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->utf8_netbios_computer
, r
->Flags
& NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME
));
428 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_SCALARS
, &r
->utf8_netbios_computer
));
429 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->Buffer
, r
->MessageType
& NL_NEGOTIATE_RESPONSE
));
430 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER_REPLY(ndr
, NDR_SCALARS
, &r
->Buffer
));
431 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
433 if (ndr_flags
& NDR_BUFFERS
) {
434 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_BUFFERS
, &r
->oem_netbios_domain
));
435 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_BUFFERS
, &r
->oem_netbios_computer
));
436 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_BUFFERS
, &r
->utf8_dns_domain
));
437 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_BUFFERS
, &r
->utf8_dns_host
));
438 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER(ndr
, NDR_BUFFERS
, &r
->utf8_netbios_computer
));
439 NDR_CHECK(ndr_pull_NL_AUTH_MESSAGE_BUFFER_REPLY(ndr
, NDR_BUFFERS
, &r
->Buffer
));
441 ndr
->flags
= _flags_save_STRUCT
;
443 return NDR_ERR_SUCCESS
;
446 _PUBLIC_
void ndr_print_NL_AUTH_MESSAGE(struct ndr_print
*ndr
, const char *name
, const struct NL_AUTH_MESSAGE
*r
)
448 ndr_print_struct(ndr
, name
, "NL_AUTH_MESSAGE");
450 uint32_t _flags_save_STRUCT
= ndr
->flags
;
451 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
453 ndr_print_NL_AUTH_MESSAGE_TYPE(ndr
, "MessageType", r
->MessageType
);
454 ndr_print_NL_AUTH_MESSAGE_FLAGS(ndr
, "Flags", r
->Flags
);
455 ndr_print_set_switch_value(ndr
, &r
->oem_netbios_domain
, r
->Flags
& NL_FLAG_OEM_NETBIOS_DOMAIN_NAME
);
456 ndr_print_NL_AUTH_MESSAGE_BUFFER(ndr
, "oem_netbios_domain", &r
->oem_netbios_domain
);
457 ndr_print_set_switch_value(ndr
, &r
->oem_netbios_computer
, r
->Flags
& NL_FLAG_OEM_NETBIOS_COMPUTER_NAME
);
458 ndr_print_NL_AUTH_MESSAGE_BUFFER(ndr
, "oem_netbios_computer", &r
->oem_netbios_computer
);
459 ndr_print_set_switch_value(ndr
, &r
->utf8_dns_domain
, r
->Flags
& NL_FLAG_UTF8_DNS_DOMAIN_NAME
);
460 ndr_print_NL_AUTH_MESSAGE_BUFFER(ndr
, "utf8_dns_domain", &r
->utf8_dns_domain
);
461 ndr_print_set_switch_value(ndr
, &r
->utf8_dns_host
, r
->Flags
& NL_FLAG_UTF8_DNS_HOST_NAME
);
462 ndr_print_NL_AUTH_MESSAGE_BUFFER(ndr
, "utf8_dns_host", &r
->utf8_dns_host
);
463 ndr_print_set_switch_value(ndr
, &r
->utf8_netbios_computer
, r
->Flags
& NL_FLAG_UTF8_NETBIOS_COMPUTER_NAME
);
464 ndr_print_NL_AUTH_MESSAGE_BUFFER(ndr
, "utf8_netbios_computer", &r
->utf8_netbios_computer
);
465 ndr_print_set_switch_value(ndr
, &r
->Buffer
, r
->MessageType
& NL_NEGOTIATE_RESPONSE
);
466 ndr_print_NL_AUTH_MESSAGE_BUFFER_REPLY(ndr
, "Buffer", &r
->Buffer
);
468 ndr
->flags
= _flags_save_STRUCT
;
472 static enum ndr_err_code
ndr_push_NL_SIGNATURE_ALGORITHM(struct ndr_push
*ndr
, int ndr_flags
, enum NL_SIGNATURE_ALGORITHM r
)
474 NDR_CHECK(ndr_push_enum_uint1632(ndr
, NDR_SCALARS
, r
));
475 return NDR_ERR_SUCCESS
;
478 static enum ndr_err_code
ndr_pull_NL_SIGNATURE_ALGORITHM(struct ndr_pull
*ndr
, int ndr_flags
, enum NL_SIGNATURE_ALGORITHM
*r
)
481 NDR_CHECK(ndr_pull_enum_uint1632(ndr
, NDR_SCALARS
, &v
));
483 return NDR_ERR_SUCCESS
;
486 _PUBLIC_
void ndr_print_NL_SIGNATURE_ALGORITHM(struct ndr_print
*ndr
, const char *name
, enum NL_SIGNATURE_ALGORITHM r
)
488 const char *val
= NULL
;
491 case NL_SIGN_HMAC_SHA256
: val
= "NL_SIGN_HMAC_SHA256"; break;
492 case NL_SIGN_HMAC_MD5
: val
= "NL_SIGN_HMAC_MD5"; break;
494 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
497 static enum ndr_err_code
ndr_push_NL_SEAL_ALGORITHM(struct ndr_push
*ndr
, int ndr_flags
, enum NL_SEAL_ALGORITHM r
)
499 NDR_CHECK(ndr_push_enum_uint1632(ndr
, NDR_SCALARS
, r
));
500 return NDR_ERR_SUCCESS
;
503 static enum ndr_err_code
ndr_pull_NL_SEAL_ALGORITHM(struct ndr_pull
*ndr
, int ndr_flags
, enum NL_SEAL_ALGORITHM
*r
)
506 NDR_CHECK(ndr_pull_enum_uint1632(ndr
, NDR_SCALARS
, &v
));
508 return NDR_ERR_SUCCESS
;
511 _PUBLIC_
void ndr_print_NL_SEAL_ALGORITHM(struct ndr_print
*ndr
, const char *name
, enum NL_SEAL_ALGORITHM r
)
513 const char *val
= NULL
;
516 case NL_SEAL_AES128
: val
= "NL_SEAL_AES128"; break;
517 case NL_SEAL_RC4
: val
= "NL_SEAL_RC4"; break;
518 case NL_SEAL_NONE
: val
= "NL_SEAL_NONE"; break;
520 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
523 _PUBLIC_
enum ndr_err_code
ndr_push_NL_AUTH_SIGNATURE(struct ndr_push
*ndr
, int ndr_flags
, const struct NL_AUTH_SIGNATURE
*r
)
526 uint32_t _flags_save_STRUCT
= ndr
->flags
;
527 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
528 if (ndr_flags
& NDR_SCALARS
) {
529 NDR_CHECK(ndr_push_align(ndr
, 3));
530 NDR_CHECK(ndr_push_NL_SIGNATURE_ALGORITHM(ndr
, NDR_SCALARS
, NL_SIGN_HMAC_MD5
));
531 NDR_CHECK(ndr_push_NL_SEAL_ALGORITHM(ndr
, NDR_SCALARS
, r
->SealAlgorithm
));
532 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->Pad
));
533 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->Flags
));
534 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->SequenceNumber
, 8));
535 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->Checksum
, 8));
536 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->Confounder
, 8));
537 NDR_CHECK(ndr_push_trailer_align(ndr
, 3));
539 if (ndr_flags
& NDR_BUFFERS
) {
541 ndr
->flags
= _flags_save_STRUCT
;
543 return NDR_ERR_SUCCESS
;
546 _PUBLIC_
enum ndr_err_code
ndr_pull_NL_AUTH_SIGNATURE(struct ndr_pull
*ndr
, int ndr_flags
, struct NL_AUTH_SIGNATURE
*r
)
548 uint32_t size_SequenceNumber_0
= 0;
549 uint32_t size_Checksum_0
= 0;
550 uint32_t size_Confounder_0
= 0;
552 uint32_t _flags_save_STRUCT
= ndr
->flags
;
553 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
554 if (ndr_flags
& NDR_SCALARS
) {
555 NDR_CHECK(ndr_pull_align(ndr
, 3));
556 NDR_CHECK(ndr_pull_NL_SIGNATURE_ALGORITHM(ndr
, NDR_SCALARS
, &r
->SignatureAlgorithm
));
557 NDR_CHECK(ndr_pull_NL_SEAL_ALGORITHM(ndr
, NDR_SCALARS
, &r
->SealAlgorithm
));
558 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->Pad
));
559 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->Flags
));
560 size_SequenceNumber_0
= 8;
561 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->SequenceNumber
, size_SequenceNumber_0
));
563 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->Checksum
, size_Checksum_0
));
564 size_Confounder_0
= 8;
565 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->Confounder
, size_Confounder_0
));
566 NDR_CHECK(ndr_pull_trailer_align(ndr
, 3));
568 if (ndr_flags
& NDR_BUFFERS
) {
570 ndr
->flags
= _flags_save_STRUCT
;
572 return NDR_ERR_SUCCESS
;
575 _PUBLIC_
void ndr_print_NL_AUTH_SIGNATURE(struct ndr_print
*ndr
, const char *name
, const struct NL_AUTH_SIGNATURE
*r
)
577 ndr_print_struct(ndr
, name
, "NL_AUTH_SIGNATURE");
579 uint32_t _flags_save_STRUCT
= ndr
->flags
;
580 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
582 ndr_print_NL_SIGNATURE_ALGORITHM(ndr
, "SignatureAlgorithm", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?NL_SIGN_HMAC_MD5
:r
->SignatureAlgorithm
);
583 ndr_print_NL_SEAL_ALGORITHM(ndr
, "SealAlgorithm", r
->SealAlgorithm
);
584 ndr_print_uint16(ndr
, "Pad", r
->Pad
);
585 ndr_print_uint16(ndr
, "Flags", r
->Flags
);
586 ndr_print_array_uint8(ndr
, "SequenceNumber", r
->SequenceNumber
, 8);
587 ndr_print_array_uint8(ndr
, "Checksum", r
->Checksum
, 8);
588 ndr_print_array_uint8(ndr
, "Confounder", r
->Confounder
, 8);
590 ndr
->flags
= _flags_save_STRUCT
;
594 _PUBLIC_
enum ndr_err_code
ndr_push_NL_AUTH_SHA2_SIGNATURE(struct ndr_push
*ndr
, int ndr_flags
, const struct NL_AUTH_SHA2_SIGNATURE
*r
)
597 uint32_t _flags_save_STRUCT
= ndr
->flags
;
598 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
599 if (ndr_flags
& NDR_SCALARS
) {
600 NDR_CHECK(ndr_push_align(ndr
, 3));
601 NDR_CHECK(ndr_push_NL_SIGNATURE_ALGORITHM(ndr
, NDR_SCALARS
, NL_SIGN_HMAC_SHA256
));
602 NDR_CHECK(ndr_push_NL_SEAL_ALGORITHM(ndr
, NDR_SCALARS
, r
->SealAlgorithm
));
603 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->Pad
));
604 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->Flags
));
605 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->SequenceNumber
, 8));
606 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->Checksum
, 32));
607 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->Confounder
, 8));
608 NDR_CHECK(ndr_push_trailer_align(ndr
, 3));
610 if (ndr_flags
& NDR_BUFFERS
) {
612 ndr
->flags
= _flags_save_STRUCT
;
614 return NDR_ERR_SUCCESS
;
617 _PUBLIC_
enum ndr_err_code
ndr_pull_NL_AUTH_SHA2_SIGNATURE(struct ndr_pull
*ndr
, int ndr_flags
, struct NL_AUTH_SHA2_SIGNATURE
*r
)
619 uint32_t size_SequenceNumber_0
= 0;
620 uint32_t size_Checksum_0
= 0;
621 uint32_t size_Confounder_0
= 0;
623 uint32_t _flags_save_STRUCT
= ndr
->flags
;
624 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
625 if (ndr_flags
& NDR_SCALARS
) {
626 NDR_CHECK(ndr_pull_align(ndr
, 3));
627 NDR_CHECK(ndr_pull_NL_SIGNATURE_ALGORITHM(ndr
, NDR_SCALARS
, &r
->SignatureAlgorithm
));
628 NDR_CHECK(ndr_pull_NL_SEAL_ALGORITHM(ndr
, NDR_SCALARS
, &r
->SealAlgorithm
));
629 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->Pad
));
630 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->Flags
));
631 size_SequenceNumber_0
= 8;
632 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->SequenceNumber
, size_SequenceNumber_0
));
633 size_Checksum_0
= 32;
634 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->Checksum
, size_Checksum_0
));
635 size_Confounder_0
= 8;
636 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->Confounder
, size_Confounder_0
));
637 NDR_CHECK(ndr_pull_trailer_align(ndr
, 3));
639 if (ndr_flags
& NDR_BUFFERS
) {
641 ndr
->flags
= _flags_save_STRUCT
;
643 return NDR_ERR_SUCCESS
;
646 _PUBLIC_
void ndr_print_NL_AUTH_SHA2_SIGNATURE(struct ndr_print
*ndr
, const char *name
, const struct NL_AUTH_SHA2_SIGNATURE
*r
)
648 ndr_print_struct(ndr
, name
, "NL_AUTH_SHA2_SIGNATURE");
650 uint32_t _flags_save_STRUCT
= ndr
->flags
;
651 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
653 ndr_print_NL_SIGNATURE_ALGORITHM(ndr
, "SignatureAlgorithm", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?NL_SIGN_HMAC_SHA256
:r
->SignatureAlgorithm
);
654 ndr_print_NL_SEAL_ALGORITHM(ndr
, "SealAlgorithm", r
->SealAlgorithm
);
655 ndr_print_uint16(ndr
, "Pad", r
->Pad
);
656 ndr_print_uint16(ndr
, "Flags", r
->Flags
);
657 ndr_print_array_uint8(ndr
, "SequenceNumber", r
->SequenceNumber
, 8);
658 ndr_print_array_uint8(ndr
, "Checksum", r
->Checksum
, 32);
659 ndr_print_array_uint8(ndr
, "Confounder", r
->Confounder
, 8);
661 ndr
->flags
= _flags_save_STRUCT
;