1/* parser auto-generated by pidl */ 2 3#include "includes.h" 4#include "../librpc/gen_ndr/ndr_krb5pac.h" 5 6#include "librpc/gen_ndr/ndr_security.h" 7#include "librpc/gen_ndr/ndr_netlogon.h" 8#include "librpc/gen_ndr/ndr_samr.h" 9static enum ndr_err_code ndr_push_PAC_LOGON_NAME(struct ndr_push *ndr, int ndr_flags, const struct PAC_LOGON_NAME *r) 10{ 11 if (ndr_flags & NDR_SCALARS) { 12 NDR_CHECK(ndr_push_align(ndr, 4)); 13 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->logon_time)); 14 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->account_name))); 15 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, 2 * strlen_m(r->account_name), sizeof(uint8_t), CH_UTF16)); 16 NDR_CHECK(ndr_push_trailer_align(ndr, 4)); 17 } 18 if (ndr_flags & NDR_BUFFERS) { 19 } 20 return NDR_ERR_SUCCESS; 21} 22 23static enum ndr_err_code ndr_pull_PAC_LOGON_NAME(struct ndr_pull *ndr, int ndr_flags, struct PAC_LOGON_NAME *r) 24{ 25 if (ndr_flags & NDR_SCALARS) { 26 NDR_CHECK(ndr_pull_align(ndr, 4)); 27 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->logon_time)); 28 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size)); 29 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, r->size, sizeof(uint8_t), CH_UTF16)); 30 NDR_CHECK(ndr_pull_trailer_align(ndr, 4)); 31 } 32 if (ndr_flags & NDR_BUFFERS) { 33 } 34 return NDR_ERR_SUCCESS; 35} 36 37_PUBLIC_ void ndr_print_PAC_LOGON_NAME(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_NAME *r) 38{ 39 ndr_print_struct(ndr, name, "PAC_LOGON_NAME"); 40 ndr->depth++; 41 ndr_print_NTTIME(ndr, "logon_time", r->logon_time); 42 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m(r->account_name):r->size); 43 ndr_print_string(ndr, "account_name", r->account_name); 44 ndr->depth--; 45} 46 47_PUBLIC_ enum ndr_err_code ndr_push_PAC_SIGNATURE_DATA(struct ndr_push *ndr, int ndr_flags, const struct PAC_SIGNATURE_DATA *r) 48{ 49 { 50 uint32_t _flags_save_STRUCT = ndr->flags; 51 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); 52 if (ndr_flags & NDR_SCALARS) { 53 NDR_CHECK(ndr_push_align(ndr, 4)); 54 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->type)); 55 { 56 uint32_t _flags_save_DATA_BLOB = ndr->flags; 57 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); 58 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->signature)); 59 ndr->flags = _flags_save_DATA_BLOB; 60 } 61 NDR_CHECK(ndr_push_trailer_align(ndr, 4)); 62 } 63 if (ndr_flags & NDR_BUFFERS) { 64 } 65 ndr->flags = _flags_save_STRUCT; 66 } 67 return NDR_ERR_SUCCESS; 68} 69 70_PUBLIC_ enum ndr_err_code ndr_pull_PAC_SIGNATURE_DATA(struct ndr_pull *ndr, int ndr_flags, struct PAC_SIGNATURE_DATA *r) 71{ 72 { 73 uint32_t _flags_save_STRUCT = ndr->flags; 74 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); 75 if (ndr_flags & NDR_SCALARS) { 76 NDR_CHECK(ndr_pull_align(ndr, 4)); 77 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->type)); 78 { 79 uint32_t _flags_save_DATA_BLOB = ndr->flags; 80 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); 81 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->signature)); 82 ndr->flags = _flags_save_DATA_BLOB; 83 } 84 NDR_CHECK(ndr_pull_trailer_align(ndr, 4)); 85 } 86 if (ndr_flags & NDR_BUFFERS) { 87 } 88 ndr->flags = _flags_save_STRUCT; 89 } 90 return NDR_ERR_SUCCESS; 91} 92 93_PUBLIC_ void ndr_print_PAC_SIGNATURE_DATA(struct ndr_print *ndr, const char *name, const struct PAC_SIGNATURE_DATA *r) 94{ 95 ndr_print_struct(ndr, name, "PAC_SIGNATURE_DATA"); 96 { 97 uint32_t _flags_save_STRUCT = ndr->flags; 98 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX); 99 ndr->depth++; 100 ndr_print_uint32(ndr, "type", r->type); 101 ndr_print_DATA_BLOB(ndr, "signature", r->signature); 102 ndr->depth--; 103 ndr->flags = _flags_save_STRUCT; 104 } 105} 106 107static enum ndr_err_code ndr_push_PAC_LOGON_INFO(struct ndr_push *ndr, int ndr_flags, const struct PAC_LOGON_INFO *r) 108{ 109 if (ndr_flags & NDR_SCALARS) { 110 NDR_CHECK(ndr_push_align(ndr, 5)); 111 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3)); 112 NDR_CHECK(ndr_push_unique_ptr(ndr, r->res_group_dom_sid)); 113 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->res_groups)); 114 NDR_CHECK(ndr_push_trailer_align(ndr, 5)); 115 } 116 if (ndr_flags & NDR_BUFFERS) { 117 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3)); 118 if (r->res_group_dom_sid) { 119 NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->res_group_dom_sid)); 120 } 121 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->res_groups)); 122 } 123 return NDR_ERR_SUCCESS; 124} 125 126static enum ndr_err_code ndr_pull_PAC_LOGON_INFO(struct ndr_pull *ndr, int ndr_flags, struct PAC_LOGON_INFO *r) 127{ 128 uint32_t _ptr_res_group_dom_sid; 129 TALLOC_CTX *_mem_save_res_group_dom_sid_0; 130 if (ndr_flags & NDR_SCALARS) { 131 NDR_CHECK(ndr_pull_align(ndr, 5)); 132 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3)); 133 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_res_group_dom_sid)); 134 if (_ptr_res_group_dom_sid) { 135 NDR_PULL_ALLOC(ndr, r->res_group_dom_sid); 136 } else { 137 r->res_group_dom_sid = NULL; 138 } 139 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->res_groups)); 140 NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); 141 } 142 if (ndr_flags & NDR_BUFFERS) { 143 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3)); 144 if (r->res_group_dom_sid) { 145 _mem_save_res_group_dom_sid_0 = NDR_PULL_GET_MEM_CTX(ndr); 146 NDR_PULL_SET_MEM_CTX(ndr, r->res_group_dom_sid, 0); 147 NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->res_group_dom_sid)); 148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_res_group_dom_sid_0, 0); 149 } 150 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->res_groups)); 151 } 152 return NDR_ERR_SUCCESS; 153} 154 155_PUBLIC_ void ndr_print_PAC_LOGON_INFO(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_INFO *r) 156{ 157 ndr_print_struct(ndr, name, "PAC_LOGON_INFO"); 158 ndr->depth++; 159 ndr_print_netr_SamInfo3(ndr, "info3", &r->info3); 160 ndr_print_ptr(ndr, "res_group_dom_sid", r->res_group_dom_sid); 161 ndr->depth++; 162 if (r->res_group_dom_sid) { 163 ndr_print_dom_sid2(ndr, "res_group_dom_sid", r->res_group_dom_sid); 164 } 165 ndr->depth--; 166 ndr_print_samr_RidWithAttributeArray(ndr, "res_groups", &r->res_groups); 167 ndr->depth--; 168} 169 170_PUBLIC_ enum ndr_err_code ndr_push_PAC_LOGON_INFO_CTR(struct ndr_push *ndr, int ndr_flags, const struct PAC_LOGON_INFO_CTR *r) 171{ 172 if (ndr_flags & NDR_SCALARS) { 173 NDR_CHECK(ndr_push_align(ndr, 5)); 174 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info)); 175 NDR_CHECK(ndr_push_trailer_align(ndr, 5)); 176 } 177 if (ndr_flags & NDR_BUFFERS) { 178 if (r->info) { 179 NDR_CHECK(ndr_push_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info)); 180 } 181 } 182 return NDR_ERR_SUCCESS; 183} 184 185_PUBLIC_ enum ndr_err_code ndr_pull_PAC_LOGON_INFO_CTR(struct ndr_pull *ndr, int ndr_flags, struct PAC_LOGON_INFO_CTR *r) 186{ 187 uint32_t _ptr_info; 188 TALLOC_CTX *_mem_save_info_0; 189 if (ndr_flags & NDR_SCALARS) { 190 NDR_CHECK(ndr_pull_align(ndr, 5)); 191 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info)); 192 if (_ptr_info) { 193 NDR_PULL_ALLOC(ndr, r->info); 194 } else { 195 r->info = NULL; 196 } 197 NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); 198 } 199 if (ndr_flags & NDR_BUFFERS) { 200 if (r->info) { 201 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); 202 NDR_PULL_SET_MEM_CTX(ndr, r->info, 0); 203 NDR_CHECK(ndr_pull_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info)); 204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0); 205 } 206 } 207 return NDR_ERR_SUCCESS; 208} 209 210_PUBLIC_ void ndr_print_PAC_LOGON_INFO_CTR(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_INFO_CTR *r) 211{ 212 ndr_print_struct(ndr, name, "PAC_LOGON_INFO_CTR"); 213 ndr->depth++; 214 ndr_print_ptr(ndr, "info", r->info); 215 ndr->depth++; 216 if (r->info) { 217 ndr_print_PAC_LOGON_INFO(ndr, "info", r->info); 218 } 219 ndr->depth--; 220 ndr->depth--; 221} 222 223_PUBLIC_ enum ndr_err_code ndr_push_PAC_TYPE(struct ndr_push *ndr, int ndr_flags, enum PAC_TYPE r) 224{ 225 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r)); 226 return NDR_ERR_SUCCESS; 227} 228 229_PUBLIC_ enum ndr_err_code ndr_pull_PAC_TYPE(struct ndr_pull *ndr, int ndr_flags, enum PAC_TYPE *r) 230{ 231 uint32_t v; 232 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v)); 233 *r = v; 234 return NDR_ERR_SUCCESS; 235} 236 237_PUBLIC_ void ndr_print_PAC_TYPE(struct ndr_print *ndr, const char *name, enum PAC_TYPE r) 238{ 239 const char *val = NULL; 240 241 switch (r) { 242 case PAC_TYPE_LOGON_INFO: val = "PAC_TYPE_LOGON_INFO"; break; 243 case PAC_TYPE_SRV_CHECKSUM: val = "PAC_TYPE_SRV_CHECKSUM"; break; 244 case PAC_TYPE_KDC_CHECKSUM: val = "PAC_TYPE_KDC_CHECKSUM"; break; 245 case PAC_TYPE_LOGON_NAME: val = "PAC_TYPE_LOGON_NAME"; break; 246 case PAC_TYPE_CONSTRAINED_DELEGATION: val = "PAC_TYPE_CONSTRAINED_DELEGATION"; break; 247 case PAC_TYPE_UNKNOWN_12: val = "PAC_TYPE_UNKNOWN_12"; break; 248 } 249 ndr_print_enum(ndr, name, "ENUM", val, r); 250} 251 252static enum ndr_err_code ndr_push_DATA_BLOB_REM(struct ndr_push *ndr, int ndr_flags, const struct DATA_BLOB_REM *r) 253{ 254 if (ndr_flags & NDR_SCALARS) { 255 NDR_CHECK(ndr_push_align(ndr, 4)); 256 { 257 uint32_t _flags_save_DATA_BLOB = ndr->flags; 258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); 259 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->remaining)); 260 ndr->flags = _flags_save_DATA_BLOB; 261 } 262 NDR_CHECK(ndr_push_trailer_align(ndr, 4)); 263 } 264 if (ndr_flags & NDR_BUFFERS) { 265 } 266 return NDR_ERR_SUCCESS; 267} 268 269static enum ndr_err_code ndr_pull_DATA_BLOB_REM(struct ndr_pull *ndr, int ndr_flags, struct DATA_BLOB_REM *r) 270{ 271 if (ndr_flags & NDR_SCALARS) { 272 NDR_CHECK(ndr_pull_align(ndr, 4)); 273 { 274 uint32_t _flags_save_DATA_BLOB = ndr->flags; 275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); 276 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->remaining)); 277 ndr->flags = _flags_save_DATA_BLOB; 278 } 279 NDR_CHECK(ndr_pull_trailer_align(ndr, 4)); 280 } 281 if (ndr_flags & NDR_BUFFERS) { 282 } 283 return NDR_ERR_SUCCESS; 284} 285 286_PUBLIC_ void ndr_print_DATA_BLOB_REM(struct ndr_print *ndr, const char *name, const struct DATA_BLOB_REM *r) 287{ 288 ndr_print_struct(ndr, name, "DATA_BLOB_REM"); 289 ndr->depth++; 290 ndr_print_DATA_BLOB(ndr, "remaining", r->remaining); 291 ndr->depth--; 292} 293 294_PUBLIC_ enum ndr_err_code ndr_push_PAC_INFO(struct ndr_push *ndr, int ndr_flags, const union PAC_INFO *r) 295{ 296 if (ndr_flags & NDR_SCALARS) { 297 int level = ndr_push_get_switch_value(ndr, r); 298 NDR_CHECK(ndr_push_union_align(ndr, 4)); 299 switch (level) { 300 case PAC_TYPE_LOGON_INFO: { 301 { 302 struct ndr_push *_ndr_logon_info; 303 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_logon_info, 0xFFFFFC01, -1)); 304 NDR_CHECK(ndr_push_PAC_LOGON_INFO_CTR(_ndr_logon_info, NDR_SCALARS|NDR_BUFFERS, &r->logon_info)); 305 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_logon_info, 0xFFFFFC01, -1)); 306 } 307 break; } 308 309 case PAC_TYPE_SRV_CHECKSUM: { 310 NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->srv_cksum)); 311 break; } 312 313 case PAC_TYPE_KDC_CHECKSUM: { 314 NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->kdc_cksum)); 315 break; } 316 317 case PAC_TYPE_LOGON_NAME: { 318 NDR_CHECK(ndr_push_PAC_LOGON_NAME(ndr, NDR_SCALARS, &r->logon_name)); 319 break; } 320 321 default: { 322 { 323 struct ndr_push *_ndr_unknown; 324 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_unknown, 0, -1)); 325 NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_unknown, NDR_SCALARS, &r->unknown)); 326 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_unknown, 0, -1)); 327 } 328 break; } 329 330 } 331 } 332 if (ndr_flags & NDR_BUFFERS) { 333 int level = ndr_push_get_switch_value(ndr, r); 334 switch (level) { 335 case PAC_TYPE_LOGON_INFO: 336 break; 337 338 case PAC_TYPE_SRV_CHECKSUM: 339 break; 340 341 case PAC_TYPE_KDC_CHECKSUM: 342 break; 343 344 case PAC_TYPE_LOGON_NAME: 345 break; 346 347 default: 348 break; 349 350 } 351 } 352 return NDR_ERR_SUCCESS; 353} 354 355_PUBLIC_ enum ndr_err_code ndr_pull_PAC_INFO(struct ndr_pull *ndr, int ndr_flags, union PAC_INFO *r) 356{ 357 int level; 358 level = ndr_pull_get_switch_value(ndr, r); 359 if (ndr_flags & NDR_SCALARS) { 360 NDR_CHECK(ndr_pull_union_align(ndr, 4)); 361 switch (level) { 362 case PAC_TYPE_LOGON_INFO: { 363 { 364 struct ndr_pull *_ndr_logon_info; 365 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_logon_info, 0xFFFFFC01, -1)); 366 NDR_CHECK(ndr_pull_PAC_LOGON_INFO_CTR(_ndr_logon_info, NDR_SCALARS|NDR_BUFFERS, &r->logon_info)); 367 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_logon_info, 0xFFFFFC01, -1)); 368 } 369 break; } 370 371 case PAC_TYPE_SRV_CHECKSUM: { 372 NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->srv_cksum)); 373 break; } 374 375 case PAC_TYPE_KDC_CHECKSUM: { 376 NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->kdc_cksum)); 377 break; } 378 379 case PAC_TYPE_LOGON_NAME: { 380 NDR_CHECK(ndr_pull_PAC_LOGON_NAME(ndr, NDR_SCALARS, &r->logon_name)); 381 break; } 382 383 default: { 384 { 385 struct ndr_pull *_ndr_unknown; 386 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_unknown, 0, -1)); 387 NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_unknown, NDR_SCALARS, &r->unknown)); 388 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_unknown, 0, -1)); 389 } 390 break; } 391 392 } 393 } 394 if (ndr_flags & NDR_BUFFERS) { 395 switch (level) { 396 case PAC_TYPE_LOGON_INFO: 397 break; 398 399 case PAC_TYPE_SRV_CHECKSUM: 400 break; 401 402 case PAC_TYPE_KDC_CHECKSUM: 403 break; 404 405 case PAC_TYPE_LOGON_NAME: 406 break; 407 408 default: 409 break; 410 411 } 412 } 413 return NDR_ERR_SUCCESS; 414} 415 416_PUBLIC_ void ndr_print_PAC_INFO(struct ndr_print *ndr, const char *name, const union PAC_INFO *r) 417{ 418 int level; 419 level = ndr_print_get_switch_value(ndr, r); 420 ndr_print_union(ndr, name, level, "PAC_INFO"); 421 switch (level) { 422 case PAC_TYPE_LOGON_INFO: 423 ndr_print_PAC_LOGON_INFO_CTR(ndr, "logon_info", &r->logon_info); 424 break; 425 426 case PAC_TYPE_SRV_CHECKSUM: 427 ndr_print_PAC_SIGNATURE_DATA(ndr, "srv_cksum", &r->srv_cksum); 428 break; 429 430 case PAC_TYPE_KDC_CHECKSUM: 431 ndr_print_PAC_SIGNATURE_DATA(ndr, "kdc_cksum", &r->kdc_cksum); 432 break; 433 434 case PAC_TYPE_LOGON_NAME: 435 ndr_print_PAC_LOGON_NAME(ndr, "logon_name", &r->logon_name); 436 break; 437 438 default: 439 ndr_print_DATA_BLOB_REM(ndr, "unknown", &r->unknown); 440 break; 441 442 } 443} 444 445_PUBLIC_ size_t ndr_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, struct smb_iconv_convenience *ic, int flags) 446{ 447 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_PAC_INFO, ic); 448} 449 450_PUBLIC_ enum ndr_err_code ndr_push_PAC_DATA(struct ndr_push *ndr, int ndr_flags, const struct PAC_DATA *r) 451{ 452 uint32_t cntr_buffers_0; 453 if (ndr_flags & NDR_SCALARS) { 454 NDR_CHECK(ndr_push_align(ndr, 5)); 455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_buffers)); 456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version)); 457 for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) { 458 NDR_CHECK(ndr_push_PAC_BUFFER(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0])); 459 } 460 NDR_CHECK(ndr_push_trailer_align(ndr, 5)); 461 } 462 if (ndr_flags & NDR_BUFFERS) { 463 for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) { 464 NDR_CHECK(ndr_push_PAC_BUFFER(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0])); 465 } 466 } 467 return NDR_ERR_SUCCESS; 468} 469 470_PUBLIC_ enum ndr_err_code ndr_pull_PAC_DATA(struct ndr_pull *ndr, int ndr_flags, struct PAC_DATA *r) 471{ 472 uint32_t cntr_buffers_0; 473 TALLOC_CTX *_mem_save_buffers_0; 474 if (ndr_flags & NDR_SCALARS) { 475 NDR_CHECK(ndr_pull_align(ndr, 5)); 476 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers)); 477 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version)); 478 NDR_PULL_ALLOC_N(ndr, r->buffers, r->num_buffers); 479 _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr); 480 NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0); 481 for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) { 482 NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0])); 483 } 484 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0); 485 NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); 486 } 487 if (ndr_flags & NDR_BUFFERS) { 488 _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr); 489 NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0); 490 for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) { 491 NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0])); 492 } 493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0); 494 } 495 return NDR_ERR_SUCCESS; 496} 497 498_PUBLIC_ void ndr_print_PAC_DATA(struct ndr_print *ndr, const char *name, const struct PAC_DATA *r) 499{ 500 uint32_t cntr_buffers_0; 501 ndr_print_struct(ndr, name, "PAC_DATA"); 502 ndr->depth++; 503 ndr_print_uint32(ndr, "num_buffers", r->num_buffers); 504 ndr_print_uint32(ndr, "version", r->version); 505 ndr->print(ndr, "%s: ARRAY(%d)", "buffers", (int)r->num_buffers); 506 ndr->depth++; 507 for (cntr_buffers_0=0;cntr_buffers_0<r->num_buffers;cntr_buffers_0++) { 508 char *idx_0=NULL; 509 if (asprintf(&idx_0, "[%d]", cntr_buffers_0) != -1) { 510 ndr_print_PAC_BUFFER(ndr, "buffers", &r->buffers[cntr_buffers_0]); 511 free(idx_0); 512 } 513 } 514 ndr->depth--; 515 ndr->depth--; 516} 517 518_PUBLIC_ enum ndr_err_code ndr_push_PAC_BUFFER_RAW(struct ndr_push *ndr, int ndr_flags, const struct PAC_BUFFER_RAW *r) 519{ 520 if (ndr_flags & NDR_SCALARS) { 521 NDR_CHECK(ndr_push_align(ndr, 5)); 522 NDR_CHECK(ndr_push_PAC_TYPE(ndr, NDR_SCALARS, r->type)); 523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ndr_size)); 524 { 525 uint32_t _flags_save_DATA_BLOB_REM = ndr->flags; 526 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8); 527 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->info)); 528 ndr->flags = _flags_save_DATA_BLOB_REM; 529 } 530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); 531 NDR_CHECK(ndr_push_trailer_align(ndr, 5)); 532 } 533 if (ndr_flags & NDR_BUFFERS) { 534 { 535 uint32_t _flags_save_DATA_BLOB_REM = ndr->flags; 536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8); 537 if (r->info) { 538 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->info)); 539 { 540 struct ndr_push *_ndr_info; 541 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 0, NDR_ROUND(r->ndr_size, 8))); 542 NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_info, NDR_SCALARS, r->info)); 543 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 0, NDR_ROUND(r->ndr_size, 8))); 544 } 545 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->info)); 546 } 547 ndr->flags = _flags_save_DATA_BLOB_REM; 548 } 549 } 550 return NDR_ERR_SUCCESS; 551} 552 553_PUBLIC_ enum ndr_err_code ndr_pull_PAC_BUFFER_RAW(struct ndr_pull *ndr, int ndr_flags, struct PAC_BUFFER_RAW *r) 554{ 555 uint32_t _ptr_info; 556 TALLOC_CTX *_mem_save_info_0; 557 if (ndr_flags & NDR_SCALARS) { 558 NDR_CHECK(ndr_pull_align(ndr, 5)); 559 NDR_CHECK(ndr_pull_PAC_TYPE(ndr, NDR_SCALARS, &r->type)); 560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ndr_size)); 561 { 562 uint32_t _flags_save_DATA_BLOB_REM = ndr->flags; 563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8); 564 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info)); 565 if (_ptr_info) { 566 NDR_PULL_ALLOC(ndr, r->info); 567 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->info, _ptr_info)); 568 } else { 569 r->info = NULL; 570 } 571 ndr->flags = _flags_save_DATA_BLOB_REM; 572 } 573 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_pad)); 574 NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); 575 } 576 if (ndr_flags & NDR_BUFFERS) { 577 { 578 uint32_t _flags_save_DATA_BLOB_REM = ndr->flags; 579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8); 580 if (r->info) { 581 uint32_t _relative_save_offset; 582 _relative_save_offset = ndr->offset; 583 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->info)); 584 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr); 585 NDR_PULL_SET_MEM_CTX(ndr, r->info, 0); 586 { 587 struct ndr_pull *_ndr_info; 588 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 0, NDR_ROUND(r->ndr_size, 8))); 589 NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_info, NDR_SCALARS, r->info)); 590 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 0, NDR_ROUND(r->ndr_size, 8))); 591 } 592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0); 593 ndr->offset = _relative_save_offset; 594 } 595 ndr->flags = _flags_save_DATA_BLOB_REM; 596 } 597 } 598 return NDR_ERR_SUCCESS; 599} 600 601_PUBLIC_ void ndr_print_PAC_BUFFER_RAW(struct ndr_print *ndr, const char *name, const struct PAC_BUFFER_RAW *r) 602{ 603 ndr_print_struct(ndr, name, "PAC_BUFFER_RAW"); 604 ndr->depth++; 605 ndr_print_PAC_TYPE(ndr, "type", r->type); 606 ndr_print_uint32(ndr, "ndr_size", r->ndr_size); 607 ndr_print_ptr(ndr, "info", r->info); 608 ndr->depth++; 609 if (r->info) { 610 ndr_print_DATA_BLOB_REM(ndr, "info", r->info); 611 } 612 ndr->depth--; 613 ndr_print_uint32(ndr, "_pad", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->_pad); 614 ndr->depth--; 615} 616 617_PUBLIC_ enum ndr_err_code ndr_push_PAC_DATA_RAW(struct ndr_push *ndr, int ndr_flags, const struct PAC_DATA_RAW *r) 618{ 619 uint32_t cntr_buffers_0; 620 if (ndr_flags & NDR_SCALARS) { 621 NDR_CHECK(ndr_push_align(ndr, 5)); 622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_buffers)); 623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version)); 624 for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) { 625 NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0])); 626 } 627 NDR_CHECK(ndr_push_trailer_align(ndr, 5)); 628 } 629 if (ndr_flags & NDR_BUFFERS) { 630 for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) { 631 NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0])); 632 } 633 } 634 return NDR_ERR_SUCCESS; 635} 636 637_PUBLIC_ enum ndr_err_code ndr_pull_PAC_DATA_RAW(struct ndr_pull *ndr, int ndr_flags, struct PAC_DATA_RAW *r) 638{ 639 uint32_t cntr_buffers_0; 640 TALLOC_CTX *_mem_save_buffers_0; 641 if (ndr_flags & NDR_SCALARS) { 642 NDR_CHECK(ndr_pull_align(ndr, 5)); 643 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers)); 644 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version)); 645 NDR_PULL_ALLOC_N(ndr, r->buffers, r->num_buffers); 646 _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr); 647 NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0); 648 for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) { 649 NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0])); 650 } 651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0); 652 NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); 653 } 654 if (ndr_flags & NDR_BUFFERS) { 655 _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr); 656 NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0); 657 for (cntr_buffers_0 = 0; cntr_buffers_0 < r->num_buffers; cntr_buffers_0++) { 658 NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0])); 659 } 660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0); 661 } 662 return NDR_ERR_SUCCESS; 663} 664 665_PUBLIC_ void ndr_print_PAC_DATA_RAW(struct ndr_print *ndr, const char *name, const struct PAC_DATA_RAW *r) 666{ 667 uint32_t cntr_buffers_0; 668 ndr_print_struct(ndr, name, "PAC_DATA_RAW"); 669 ndr->depth++; 670 ndr_print_uint32(ndr, "num_buffers", r->num_buffers); 671 ndr_print_uint32(ndr, "version", r->version); 672 ndr->print(ndr, "%s: ARRAY(%d)", "buffers", (int)r->num_buffers); 673 ndr->depth++; 674 for (cntr_buffers_0=0;cntr_buffers_0<r->num_buffers;cntr_buffers_0++) { 675 char *idx_0=NULL; 676 if (asprintf(&idx_0, "[%d]", cntr_buffers_0) != -1) { 677 ndr_print_PAC_BUFFER_RAW(ndr, "buffers", &r->buffers[cntr_buffers_0]); 678 free(idx_0); 679 } 680 } 681 ndr->depth--; 682 ndr->depth--; 683} 684 685_PUBLIC_ enum ndr_err_code ndr_push_PAC_Validate(struct ndr_push *ndr, int ndr_flags, const struct PAC_Validate *r) 686{ 687 if (ndr_flags & NDR_SCALARS) { 688 NDR_CHECK(ndr_push_align(ndr, 4)); 689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, NETLOGON_GENERIC_KRB5_PAC_VALIDATE)); 690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ChecksumLength)); 691 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->SignatureType)); 692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SignatureLength)); 693 { 694 uint32_t _flags_save_DATA_BLOB = ndr->flags; 695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); 696 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->ChecksumAndSignature)); 697 ndr->flags = _flags_save_DATA_BLOB; 698 } 699 NDR_CHECK(ndr_push_trailer_align(ndr, 4)); 700 } 701 if (ndr_flags & NDR_BUFFERS) { 702 } 703 return NDR_ERR_SUCCESS; 704} 705 706_PUBLIC_ enum ndr_err_code ndr_pull_PAC_Validate(struct ndr_pull *ndr, int ndr_flags, struct PAC_Validate *r) 707{ 708 if (ndr_flags & NDR_SCALARS) { 709 NDR_CHECK(ndr_pull_align(ndr, 4)); 710 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MessageType)); 711 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ChecksumLength)); 712 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->SignatureType)); 713 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SignatureLength)); 714 { 715 uint32_t _flags_save_DATA_BLOB = ndr->flags; 716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING); 717 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->ChecksumAndSignature)); 718 ndr->flags = _flags_save_DATA_BLOB; 719 } 720 NDR_CHECK(ndr_pull_trailer_align(ndr, 4)); 721 } 722 if (ndr_flags & NDR_BUFFERS) { 723 } 724 return NDR_ERR_SUCCESS; 725} 726 727_PUBLIC_ void ndr_print_PAC_Validate(struct ndr_print *ndr, const char *name, const struct PAC_Validate *r) 728{ 729 ndr_print_struct(ndr, name, "PAC_Validate"); 730 ndr->depth++; 731 ndr_print_uint32(ndr, "MessageType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NETLOGON_GENERIC_KRB5_PAC_VALIDATE:r->MessageType); 732 ndr_print_uint32(ndr, "ChecksumLength", r->ChecksumLength); 733 ndr_print_int32(ndr, "SignatureType", r->SignatureType); 734 ndr_print_uint32(ndr, "SignatureLength", r->SignatureLength); 735 ndr_print_DATA_BLOB(ndr, "ChecksumAndSignature", r->ChecksumAndSignature); 736 ndr->depth--; 737} 738 739_PUBLIC_ enum ndr_err_code ndr_push_netsamlogoncache_entry(struct ndr_push *ndr, int ndr_flags, const struct netsamlogoncache_entry *r) 740{ 741 if (ndr_flags & NDR_SCALARS) { 742 NDR_CHECK(ndr_push_align(ndr, 5)); 743 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp)); 744 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3)); 745 NDR_CHECK(ndr_push_trailer_align(ndr, 5)); 746 } 747 if (ndr_flags & NDR_BUFFERS) { 748 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3)); 749 } 750 return NDR_ERR_SUCCESS; 751} 752 753_PUBLIC_ enum ndr_err_code ndr_pull_netsamlogoncache_entry(struct ndr_pull *ndr, int ndr_flags, struct netsamlogoncache_entry *r) 754{ 755 if (ndr_flags & NDR_SCALARS) { 756 NDR_CHECK(ndr_pull_align(ndr, 5)); 757 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp)); 758 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3)); 759 NDR_CHECK(ndr_pull_trailer_align(ndr, 5)); 760 } 761 if (ndr_flags & NDR_BUFFERS) { 762 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3)); 763 } 764 return NDR_ERR_SUCCESS; 765} 766 767_PUBLIC_ void ndr_print_netsamlogoncache_entry(struct ndr_print *ndr, const char *name, const struct netsamlogoncache_entry *r) 768{ 769 ndr_print_struct(ndr, name, "netsamlogoncache_entry"); 770 ndr->depth++; 771 ndr_print_time_t(ndr, "timestamp", r->timestamp); 772 ndr_print_netr_SamInfo3(ndr, "info3", &r->info3); 773 ndr->depth--; 774} 775 776static enum ndr_err_code ndr_push_decode_pac(struct ndr_push *ndr, int flags, const struct decode_pac *r) 777{ 778 if (flags & NDR_IN) { 779 NDR_CHECK(ndr_push_PAC_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.pac)); 780 } 781 if (flags & NDR_OUT) { 782 } 783 return NDR_ERR_SUCCESS; 784} 785 786static enum ndr_err_code ndr_pull_decode_pac(struct ndr_pull *ndr, int flags, struct decode_pac *r) 787{ 788 if (flags & NDR_IN) { 789 NDR_CHECK(ndr_pull_PAC_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.pac)); 790 } 791 if (flags & NDR_OUT) { 792 } 793 return NDR_ERR_SUCCESS; 794} 795 796_PUBLIC_ void ndr_print_decode_pac(struct ndr_print *ndr, const char *name, int flags, const struct decode_pac *r) 797{ 798 ndr_print_struct(ndr, name, "decode_pac"); 799 ndr->depth++; 800 if (flags & NDR_SET_VALUES) { 801 ndr->flags |= LIBNDR_PRINT_SET_VALUES; 802 } 803 if (flags & NDR_IN) { 804 ndr_print_struct(ndr, "in", "decode_pac"); 805 ndr->depth++; 806 ndr_print_PAC_DATA(ndr, "pac", &r->in.pac); 807 ndr->depth--; 808 } 809 if (flags & NDR_OUT) { 810 ndr_print_struct(ndr, "out", "decode_pac"); 811 ndr->depth++; 812 ndr->depth--; 813 } 814 ndr->depth--; 815} 816 817static enum ndr_err_code ndr_push_decode_pac_raw(struct ndr_push *ndr, int flags, const struct decode_pac_raw *r) 818{ 819 if (flags & NDR_IN) { 820 NDR_CHECK(ndr_push_PAC_DATA_RAW(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.pac)); 821 } 822 if (flags & NDR_OUT) { 823 } 824 return NDR_ERR_SUCCESS; 825} 826 827static enum ndr_err_code ndr_pull_decode_pac_raw(struct ndr_pull *ndr, int flags, struct decode_pac_raw *r) 828{ 829 if (flags & NDR_IN) { 830 NDR_CHECK(ndr_pull_PAC_DATA_RAW(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.pac)); 831 } 832 if (flags & NDR_OUT) { 833 } 834 return NDR_ERR_SUCCESS; 835} 836 837_PUBLIC_ void ndr_print_decode_pac_raw(struct ndr_print *ndr, const char *name, int flags, const struct decode_pac_raw *r) 838{ 839 ndr_print_struct(ndr, name, "decode_pac_raw"); 840 ndr->depth++; 841 if (flags & NDR_SET_VALUES) { 842 ndr->flags |= LIBNDR_PRINT_SET_VALUES; 843 } 844 if (flags & NDR_IN) { 845 ndr_print_struct(ndr, "in", "decode_pac_raw"); 846 ndr->depth++; 847 ndr_print_PAC_DATA_RAW(ndr, "pac", &r->in.pac); 848 ndr->depth--; 849 } 850 if (flags & NDR_OUT) { 851 ndr_print_struct(ndr, "out", "decode_pac_raw"); 852 ndr->depth++; 853 ndr->depth--; 854 } 855 ndr->depth--; 856} 857 858static enum ndr_err_code ndr_push_decode_login_info(struct ndr_push *ndr, int flags, const struct decode_login_info *r) 859{ 860 if (flags & NDR_IN) { 861 NDR_CHECK(ndr_push_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon_info)); 862 } 863 if (flags & NDR_OUT) { 864 } 865 return NDR_ERR_SUCCESS; 866} 867 868static enum ndr_err_code ndr_pull_decode_login_info(struct ndr_pull *ndr, int flags, struct decode_login_info *r) 869{ 870 if (flags & NDR_IN) { 871 NDR_CHECK(ndr_pull_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon_info)); 872 } 873 if (flags & NDR_OUT) { 874 } 875 return NDR_ERR_SUCCESS; 876} 877 878_PUBLIC_ void ndr_print_decode_login_info(struct ndr_print *ndr, const char *name, int flags, const struct decode_login_info *r) 879{ 880 ndr_print_struct(ndr, name, "decode_login_info"); 881 ndr->depth++; 882 if (flags & NDR_SET_VALUES) { 883 ndr->flags |= LIBNDR_PRINT_SET_VALUES; 884 } 885 if (flags & NDR_IN) { 886 ndr_print_struct(ndr, "in", "decode_login_info"); 887 ndr->depth++; 888 ndr_print_PAC_LOGON_INFO(ndr, "logon_info", &r->in.logon_info); 889 ndr->depth--; 890 } 891 if (flags & NDR_OUT) { 892 ndr_print_struct(ndr, "out", "decode_login_info"); 893 ndr->depth++; 894 ndr->depth--; 895 } 896 ndr->depth--; 897} 898 899static enum ndr_err_code ndr_push_decode_pac_validate(struct ndr_push *ndr, int flags, const struct decode_pac_validate *r) 900{ 901 if (flags & NDR_IN) { 902 NDR_CHECK(ndr_push_PAC_Validate(ndr, NDR_SCALARS, &r->in.pac_validate)); 903 } 904 if (flags & NDR_OUT) { 905 } 906 return NDR_ERR_SUCCESS; 907} 908 909static enum ndr_err_code ndr_pull_decode_pac_validate(struct ndr_pull *ndr, int flags, struct decode_pac_validate *r) 910{ 911 if (flags & NDR_IN) { 912 NDR_CHECK(ndr_pull_PAC_Validate(ndr, NDR_SCALARS, &r->in.pac_validate)); 913 } 914 if (flags & NDR_OUT) { 915 } 916 return NDR_ERR_SUCCESS; 917} 918 919_PUBLIC_ void ndr_print_decode_pac_validate(struct ndr_print *ndr, const char *name, int flags, const struct decode_pac_validate *r) 920{ 921 ndr_print_struct(ndr, name, "decode_pac_validate"); 922 ndr->depth++; 923 if (flags & NDR_SET_VALUES) { 924 ndr->flags |= LIBNDR_PRINT_SET_VALUES; 925 } 926 if (flags & NDR_IN) { 927 ndr_print_struct(ndr, "in", "decode_pac_validate"); 928 ndr->depth++; 929 ndr_print_PAC_Validate(ndr, "pac_validate", &r->in.pac_validate); 930 ndr->depth--; 931 } 932 if (flags & NDR_OUT) { 933 ndr_print_struct(ndr, "out", "decode_pac_validate"); 934 ndr->depth++; 935 ndr->depth--; 936 } 937 ndr->depth--; 938} 939 940static const struct ndr_interface_call krb5pac_calls[] = { 941 { 942 "decode_pac", 943 sizeof(struct decode_pac), 944 (ndr_push_flags_fn_t) ndr_push_decode_pac, 945 (ndr_pull_flags_fn_t) ndr_pull_decode_pac, 946 (ndr_print_function_t) ndr_print_decode_pac, 947 false, 948 }, 949 { 950 "decode_pac_raw", 951 sizeof(struct decode_pac_raw), 952 (ndr_push_flags_fn_t) ndr_push_decode_pac_raw, 953 (ndr_pull_flags_fn_t) ndr_pull_decode_pac_raw, 954 (ndr_print_function_t) ndr_print_decode_pac_raw, 955 false, 956 }, 957 { 958 "decode_login_info", 959 sizeof(struct decode_login_info), 960 (ndr_push_flags_fn_t) ndr_push_decode_login_info, 961 (ndr_pull_flags_fn_t) ndr_pull_decode_login_info, 962 (ndr_print_function_t) ndr_print_decode_login_info, 963 false, 964 }, 965 { 966 "decode_pac_validate", 967 sizeof(struct decode_pac_validate), 968 (ndr_push_flags_fn_t) ndr_push_decode_pac_validate, 969 (ndr_pull_flags_fn_t) ndr_pull_decode_pac_validate, 970 (ndr_print_function_t) ndr_print_decode_pac_validate, 971 false, 972 }, 973 { NULL, 0, NULL, NULL, NULL, false } 974}; 975 976static const char * const krb5pac_endpoint_strings[] = { 977 "ncacn_np:[\\pipe\\krb5pac]", 978}; 979 980static const struct ndr_interface_string_array krb5pac_endpoints = { 981 .count = 1, 982 .names = krb5pac_endpoint_strings 983}; 984 985static const char * const krb5pac_authservice_strings[] = { 986 "host", 987}; 988 989static const struct ndr_interface_string_array krb5pac_authservices = { 990 .count = 1, 991 .names = krb5pac_authservice_strings 992}; 993 994 995const struct ndr_interface_table ndr_table_krb5pac = { 996 .name = "krb5pac", 997 .syntax_id = { 998 {0x12345778,0x1234,0xabcd,{0x00,0x00},{0x00,0x00,0x00,0x00}}, 999 NDR_KRB5PAC_VERSION 1000 }, 1001 .helpstring = NDR_KRB5PAC_HELPSTRING, 1002 .num_calls = 4, 1003 .calls = krb5pac_calls, 1004 .endpoints = &krb5pac_endpoints, 1005 .authservices = &krb5pac_authservices 1006}; 1007 1008