LCOV - code coverage report
Current view: top level - bin/default/librpc/gen_ndr - ndr_krb5pac.c (source / functions) Hit Total Coverage
Test: coverage report for v4-17-test 1498b464 Lines: 808 1452 55.6 %
Date: 2024-06-13 04:01:37 Functions: 45 104 43.3 %

          Line data    Source code
       1             : /* parser auto-generated by pidl */
       2             : 
       3             : #include "includes.h"
       4             : #include "bin/default/librpc/gen_ndr/ndr_krb5pac.h"
       5             : 
       6             : #include "librpc/gen_ndr/ndr_security.h"
       7             : #include "librpc/gen_ndr/ndr_lsa.h"
       8             : #include "librpc/gen_ndr/ndr_netlogon.h"
       9             : #include "librpc/gen_ndr/ndr_samr.h"
      10         975 : static enum ndr_err_code ndr_push_PAC_LOGON_NAME(struct ndr_push *ndr, int ndr_flags, const struct PAC_LOGON_NAME *r)
      11             : {
      12         975 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
      13         975 :         if (ndr_flags & NDR_SCALARS) {
      14         975 :                 NDR_CHECK(ndr_push_align(ndr, 4));
      15         975 :                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->logon_time));
      16         975 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->account_name)));
      17         975 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, 2 * strlen_m(r->account_name), sizeof(uint8_t), CH_UTF16));
      18         975 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
      19             :         }
      20         975 :         if (ndr_flags & NDR_BUFFERS) {
      21             :         }
      22         975 :         return NDR_ERR_SUCCESS;
      23             : }
      24             : 
      25        8842 : static enum ndr_err_code ndr_pull_PAC_LOGON_NAME(struct ndr_pull *ndr, int ndr_flags, struct PAC_LOGON_NAME *r)
      26             : {
      27        8842 :         uint32_t size_account_name_0 = 0;
      28        8842 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
      29        8842 :         if (ndr_flags & NDR_SCALARS) {
      30        8842 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
      31        8842 :                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->logon_time));
      32        8842 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
      33        8842 :                 size_account_name_0 = r->size;
      34        8842 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, size_account_name_0, sizeof(uint8_t), CH_UTF16));
      35        8842 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
      36             :         }
      37        8842 :         if (ndr_flags & NDR_BUFFERS) {
      38             :         }
      39        8842 :         return NDR_ERR_SUCCESS;
      40             : }
      41             : 
      42           0 : _PUBLIC_ void ndr_print_PAC_LOGON_NAME(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_NAME *r)
      43             : {
      44           0 :         ndr_print_struct(ndr, name, "PAC_LOGON_NAME");
      45           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
      46           0 :         ndr->depth++;
      47           0 :         ndr_print_NTTIME(ndr, "logon_time", r->logon_time);
      48           0 :         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m(r->account_name):r->size);
      49           0 :         ndr_print_string(ndr, "account_name", r->account_name);
      50           0 :         ndr->depth--;
      51             : }
      52             : 
      53       16341 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_SIGNATURE_DATA(struct ndr_push *ndr, int ndr_flags, const struct PAC_SIGNATURE_DATA *r)
      54             : {
      55             :         {
      56       16341 :                 uint32_t _flags_save_STRUCT = ndr->flags;
      57       16341 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
      58       16341 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
      59       16341 :                 if (ndr_flags & NDR_SCALARS) {
      60       16341 :                         NDR_CHECK(ndr_push_align(ndr, 4));
      61       16341 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->type));
      62             :                         {
      63       16341 :                                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
      64       16341 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
      65       16341 :                                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->signature));
      66       16341 :                                 ndr->flags = _flags_save_DATA_BLOB;
      67             :                         }
      68       16341 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 4));
      69             :                 }
      70       16341 :                 if (ndr_flags & NDR_BUFFERS) {
      71             :                 }
      72       16341 :                 ndr->flags = _flags_save_STRUCT;
      73             :         }
      74       16341 :         return NDR_ERR_SUCCESS;
      75             : }
      76             : 
      77       39222 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_SIGNATURE_DATA(struct ndr_pull *ndr, int ndr_flags, struct PAC_SIGNATURE_DATA *r)
      78             : {
      79             :         {
      80       39222 :                 uint32_t _flags_save_STRUCT = ndr->flags;
      81       39222 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
      82       39222 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
      83       39222 :                 if (ndr_flags & NDR_SCALARS) {
      84       39222 :                         NDR_CHECK(ndr_pull_align(ndr, 4));
      85       39222 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->type));
      86             :                         {
      87       39222 :                                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
      88       39222 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
      89       39222 :                                 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->signature));
      90       39222 :                                 ndr->flags = _flags_save_DATA_BLOB;
      91             :                         }
      92       39222 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
      93             :                 }
      94       39222 :                 if (ndr_flags & NDR_BUFFERS) {
      95             :                 }
      96       39222 :                 ndr->flags = _flags_save_STRUCT;
      97             :         }
      98       39222 :         return NDR_ERR_SUCCESS;
      99             : }
     100             : 
     101           0 : static void ndr_print_flags_PAC_SIGNATURE_DATA(struct ndr_print *ndr, const char *name, int unused, const struct PAC_SIGNATURE_DATA *r)
     102             : {
     103           0 :         ndr_print_PAC_SIGNATURE_DATA(ndr, name, r);
     104           0 : }
     105             : 
     106           0 : _PUBLIC_ void ndr_print_PAC_SIGNATURE_DATA(struct ndr_print *ndr, const char *name, const struct PAC_SIGNATURE_DATA *r)
     107             : {
     108           0 :         ndr_print_struct(ndr, name, "PAC_SIGNATURE_DATA");
     109           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     110             :         {
     111           0 :                 uint32_t _flags_save_STRUCT = ndr->flags;
     112           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
     113           0 :                 ndr->depth++;
     114           0 :                 ndr_print_uint32(ndr, "type", r->type);
     115             :                 {
     116           0 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
     117           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     118           0 :                         ndr_print_DATA_BLOB(ndr, "signature", r->signature);
     119           0 :                         ndr->flags = _flags_save_DATA_BLOB;
     120             :                 }
     121           0 :                 ndr->depth--;
     122           0 :                 ndr->flags = _flags_save_STRUCT;
     123             :         }
     124             : }
     125             : 
     126      111906 : static enum ndr_err_code ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(struct ndr_push *ndr, int ndr_flags, const struct PAC_DOMAIN_GROUP_MEMBERSHIP *r)
     127             : {
     128      111906 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     129      111906 :         if (ndr_flags & NDR_SCALARS) {
     130       55953 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     131       55953 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
     132       55953 :                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
     133       55953 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     134             :         }
     135      111906 :         if (ndr_flags & NDR_BUFFERS) {
     136       55953 :                 if (r->domain_sid) {
     137           0 :                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
     138             :                 }
     139       55953 :                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
     140             :         }
     141      111906 :         return NDR_ERR_SUCCESS;
     142             : }
     143             : 
     144      135856 : static enum ndr_err_code ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(struct ndr_pull *ndr, int ndr_flags, struct PAC_DOMAIN_GROUP_MEMBERSHIP *r)
     145             : {
     146             :         uint32_t _ptr_domain_sid;
     147      135856 :         TALLOC_CTX *_mem_save_domain_sid_0 = NULL;
     148      135856 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     149      135856 :         if (ndr_flags & NDR_SCALARS) {
     150       67928 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     151       67928 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
     152       67928 :                 if (_ptr_domain_sid) {
     153           0 :                         NDR_PULL_ALLOC(ndr, r->domain_sid);
     154             :                 } else {
     155       67928 :                         r->domain_sid = NULL;
     156             :                 }
     157       67928 :                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
     158       67928 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     159             :         }
     160      135856 :         if (ndr_flags & NDR_BUFFERS) {
     161       67928 :                 if (r->domain_sid) {
     162           0 :                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
     163           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
     164           0 :                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
     165           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
     166             :                 }
     167       67928 :                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
     168             :         }
     169      135856 :         return NDR_ERR_SUCCESS;
     170             : }
     171             : 
     172           0 : _PUBLIC_ void ndr_print_PAC_DOMAIN_GROUP_MEMBERSHIP(struct ndr_print *ndr, const char *name, const struct PAC_DOMAIN_GROUP_MEMBERSHIP *r)
     173             : {
     174           0 :         ndr_print_struct(ndr, name, "PAC_DOMAIN_GROUP_MEMBERSHIP");
     175           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     176           0 :         ndr->depth++;
     177           0 :         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
     178           0 :         ndr->depth++;
     179           0 :         if (r->domain_sid) {
     180           0 :                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
     181             :         }
     182           0 :         ndr->depth--;
     183           0 :         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
     184           0 :         ndr->depth--;
     185             : }
     186             : 
     187       55953 : static enum ndr_err_code ndr_push_PAC_LOGON_INFO(struct ndr_push *ndr, int ndr_flags, const struct PAC_LOGON_INFO *r)
     188             : {
     189       55953 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     190       55953 :         if (ndr_flags & NDR_SCALARS) {
     191       55953 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     192       55953 :                 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
     193       55953 :                 NDR_CHECK(ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_SCALARS, &r->resource_groups));
     194       55953 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     195             :         }
     196       55953 :         if (ndr_flags & NDR_BUFFERS) {
     197       55953 :                 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
     198       55953 :                 NDR_CHECK(ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_BUFFERS, &r->resource_groups));
     199             :         }
     200       55953 :         return NDR_ERR_SUCCESS;
     201             : }
     202             : 
     203       67928 : static enum ndr_err_code ndr_pull_PAC_LOGON_INFO(struct ndr_pull *ndr, int ndr_flags, struct PAC_LOGON_INFO *r)
     204             : {
     205       67928 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     206       67928 :         if (ndr_flags & NDR_SCALARS) {
     207       67928 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     208       67928 :                 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
     209       67928 :                 NDR_CHECK(ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_SCALARS, &r->resource_groups));
     210       67928 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     211             :         }
     212       67928 :         if (ndr_flags & NDR_BUFFERS) {
     213       67928 :                 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
     214       67928 :                 NDR_CHECK(ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_BUFFERS, &r->resource_groups));
     215             :         }
     216       67928 :         return NDR_ERR_SUCCESS;
     217             : }
     218             : 
     219           0 : _PUBLIC_ void ndr_print_PAC_LOGON_INFO(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_INFO *r)
     220             : {
     221           0 :         ndr_print_struct(ndr, name, "PAC_LOGON_INFO");
     222           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     223           0 :         ndr->depth++;
     224           0 :         ndr_print_netr_SamInfo3(ndr, "info3", &r->info3);
     225           0 :         ndr_print_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, "resource_groups", &r->resource_groups);
     226           0 :         ndr->depth--;
     227             : }
     228             : 
     229           0 : static enum ndr_err_code ndr_push_PAC_CREDENTIAL_NTLM_FLAGS(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     230             : {
     231           0 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
     232           0 :         return NDR_ERR_SUCCESS;
     233             : }
     234             : 
     235           0 : static enum ndr_err_code ndr_pull_PAC_CREDENTIAL_NTLM_FLAGS(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
     236             : {
     237             :         uint32_t v;
     238           0 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
     239           0 :         *r = v;
     240           0 :         return NDR_ERR_SUCCESS;
     241             : }
     242             : 
     243           0 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_NTLM_FLAGS(struct ndr_print *ndr, const char *name, uint32_t r)
     244             : {
     245           0 :         ndr_print_uint32(ndr, name, r);
     246           0 :         ndr->depth++;
     247           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_CREDENTIAL_NTLM_HAS_LM_HASH", PAC_CREDENTIAL_NTLM_HAS_LM_HASH, r);
     248           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_CREDENTIAL_NTLM_HAS_NT_HASH", PAC_CREDENTIAL_NTLM_HAS_NT_HASH, r);
     249           0 :         ndr->depth--;
     250           0 : }
     251             : 
     252           0 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CREDENTIAL_NTLM_SECPKG(struct ndr_push *ndr, int ndr_flags, const struct PAC_CREDENTIAL_NTLM_SECPKG *r)
     253             : {
     254           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     255           0 :         if (ndr_flags & NDR_SCALARS) {
     256           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
     257           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
     258           0 :                 NDR_CHECK(ndr_push_PAC_CREDENTIAL_NTLM_FLAGS(ndr, NDR_SCALARS, r->flags));
     259           0 :                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lm_password));
     260           0 :                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->nt_password));
     261           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     262             :         }
     263           0 :         if (ndr_flags & NDR_BUFFERS) {
     264             :         }
     265           0 :         return NDR_ERR_SUCCESS;
     266             : }
     267             : 
     268           0 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_NTLM_SECPKG(struct ndr_pull *ndr, int ndr_flags, struct PAC_CREDENTIAL_NTLM_SECPKG *r)
     269             : {
     270           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     271           0 :         if (ndr_flags & NDR_SCALARS) {
     272           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
     273           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
     274           0 :                 NDR_CHECK(ndr_pull_PAC_CREDENTIAL_NTLM_FLAGS(ndr, NDR_SCALARS, &r->flags));
     275           0 :                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lm_password));
     276           0 :                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->nt_password));
     277           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
     278             :         }
     279           0 :         if (ndr_flags & NDR_BUFFERS) {
     280             :         }
     281           0 :         return NDR_ERR_SUCCESS;
     282             : }
     283             : 
     284           0 : static void ndr_print_flags_PAC_CREDENTIAL_NTLM_SECPKG(struct ndr_print *ndr, const char *name, int unused, const struct PAC_CREDENTIAL_NTLM_SECPKG *r)
     285             : {
     286           0 :         ndr_print_PAC_CREDENTIAL_NTLM_SECPKG(ndr, name, r);
     287           0 : }
     288             : 
     289           0 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_NTLM_SECPKG(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_NTLM_SECPKG *r)
     290             : {
     291           0 :         ndr_print_struct(ndr, name, "PAC_CREDENTIAL_NTLM_SECPKG");
     292           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     293           0 :         ndr->depth++;
     294           0 :         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->version);
     295           0 :         ndr_print_PAC_CREDENTIAL_NTLM_FLAGS(ndr, "flags", r->flags);
     296           0 :         ndr->depth--;
     297             : }
     298             : 
     299           0 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(struct ndr_push *ndr, int ndr_flags, const struct PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG *r)
     300             : {
     301           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     302           0 :         if (ndr_flags & NDR_SCALARS) {
     303           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     304           0 :                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->package_name));
     305           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->credential_size));
     306           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->credential));
     307           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     308             :         }
     309           0 :         if (ndr_flags & NDR_BUFFERS) {
     310           0 :                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
     311           0 :                 if (r->credential) {
     312           0 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->credential_size));
     313           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->credential, r->credential_size));
     314             :                 }
     315             :         }
     316           0 :         return NDR_ERR_SUCCESS;
     317             : }
     318             : 
     319           0 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(struct ndr_pull *ndr, int ndr_flags, struct PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG *r)
     320             : {
     321             :         uint32_t _ptr_credential;
     322           0 :         uint32_t size_credential_1 = 0;
     323           0 :         TALLOC_CTX *_mem_save_credential_0 = NULL;
     324           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     325           0 :         if (ndr_flags & NDR_SCALARS) {
     326           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     327           0 :                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->package_name));
     328           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->credential_size));
     329           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
     330           0 :                 if (_ptr_credential) {
     331           0 :                         NDR_PULL_ALLOC(ndr, r->credential);
     332             :                 } else {
     333           0 :                         r->credential = NULL;
     334             :                 }
     335           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     336             :         }
     337           0 :         if (ndr_flags & NDR_BUFFERS) {
     338           0 :                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
     339           0 :                 if (r->credential) {
     340           0 :                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
     341           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->credential, 0);
     342           0 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->credential));
     343           0 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->credential, &size_credential_1));
     344           0 :                         NDR_PULL_ALLOC_N(ndr, r->credential, size_credential_1);
     345           0 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->credential, size_credential_1));
     346           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
     347             :                 }
     348           0 :                 if (r->credential) {
     349           0 :                         NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->credential, r->credential_size));
     350             :                 }
     351             :         }
     352           0 :         return NDR_ERR_SUCCESS;
     353             : }
     354             : 
     355           0 : static void ndr_print_flags_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(struct ndr_print *ndr, const char *name, int unused, const struct PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG *r)
     356             : {
     357           0 :         ndr_print_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, name, r);
     358           0 : }
     359             : 
     360           0 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG *r)
     361             : {
     362           0 :         ndr_print_struct(ndr, name, "PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG");
     363           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     364           0 :         ndr->depth++;
     365           0 :         ndr_print_lsa_String(ndr, "package_name", &r->package_name);
     366           0 :         ndr_print_uint32(ndr, "credential_size", r->credential_size);
     367           0 :         ndr->depth--;
     368             : }
     369             : 
     370           0 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CREDENTIAL_DATA(struct ndr_push *ndr, int ndr_flags, const struct PAC_CREDENTIAL_DATA *r)
     371             : {
     372             :         uint32_t cntr_credentials_0;
     373           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     374           0 :         if (ndr_flags & NDR_SCALARS) {
     375           0 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->credential_count));
     376           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     377           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->credential_count));
     378           0 :                 for (cntr_credentials_0 = 0; cntr_credentials_0 < (r->credential_count); cntr_credentials_0++) {
     379           0 :                         NDR_CHECK(ndr_push_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_SCALARS, &r->credentials[cntr_credentials_0]));
     380             :                 }
     381           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     382             :         }
     383           0 :         if (ndr_flags & NDR_BUFFERS) {
     384           0 :                 for (cntr_credentials_0 = 0; cntr_credentials_0 < (r->credential_count); cntr_credentials_0++) {
     385           0 :                         NDR_CHECK(ndr_push_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_BUFFERS, &r->credentials[cntr_credentials_0]));
     386             :                 }
     387             :         }
     388           0 :         return NDR_ERR_SUCCESS;
     389             : }
     390             : 
     391           0 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_DATA(struct ndr_pull *ndr, int ndr_flags, struct PAC_CREDENTIAL_DATA *r)
     392             : {
     393           0 :         uint32_t size_credentials_0 = 0;
     394             :         uint32_t cntr_credentials_0;
     395           0 :         TALLOC_CTX *_mem_save_credentials_0 = NULL;
     396           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     397           0 :         if (ndr_flags & NDR_SCALARS) {
     398           0 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->credentials));
     399           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     400           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->credential_count));
     401           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->credentials, &size_credentials_0));
     402           0 :                 NDR_PULL_ALLOC_N(ndr, r->credentials, size_credentials_0);
     403           0 :                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
     404           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->credentials, 0);
     405           0 :                 for (cntr_credentials_0 = 0; cntr_credentials_0 < (size_credentials_0); cntr_credentials_0++) {
     406           0 :                         NDR_CHECK(ndr_pull_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_SCALARS, &r->credentials[cntr_credentials_0]));
     407             :                 }
     408           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, 0);
     409           0 :                 if (r->credentials) {
     410           0 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->credentials, r->credential_count));
     411             :                 }
     412           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     413             :         }
     414           0 :         if (ndr_flags & NDR_BUFFERS) {
     415           0 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->credentials, &size_credentials_0));
     416           0 :                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
     417           0 :                 NDR_PULL_SET_MEM_CTX(ndr, r->credentials, 0);
     418           0 :                 for (cntr_credentials_0 = 0; cntr_credentials_0 < (size_credentials_0); cntr_credentials_0++) {
     419           0 :                         NDR_CHECK(ndr_pull_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_BUFFERS, &r->credentials[cntr_credentials_0]));
     420             :                 }
     421           0 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, 0);
     422           0 :                 for (cntr_credentials_0 = 0; cntr_credentials_0 < (size_credentials_0); cntr_credentials_0++) {
     423             :                 }
     424             :         }
     425           0 :         return NDR_ERR_SUCCESS;
     426             : }
     427             : 
     428           0 : static void ndr_print_flags_PAC_CREDENTIAL_DATA(struct ndr_print *ndr, const char *name, int unused, const struct PAC_CREDENTIAL_DATA *r)
     429             : {
     430           0 :         ndr_print_PAC_CREDENTIAL_DATA(ndr, name, r);
     431           0 : }
     432             : 
     433           0 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_DATA(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_DATA *r)
     434             : {
     435             :         uint32_t cntr_credentials_0;
     436           0 :         ndr_print_struct(ndr, name, "PAC_CREDENTIAL_DATA");
     437           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     438           0 :         ndr->depth++;
     439           0 :         ndr_print_uint32(ndr, "credential_count", r->credential_count);
     440           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "credentials", (int)r->credential_count);
     441           0 :         ndr->depth++;
     442           0 :         for (cntr_credentials_0 = 0; cntr_credentials_0 < (r->credential_count); cntr_credentials_0++) {
     443           0 :                 ndr_print_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, "credentials", &r->credentials[cntr_credentials_0]);
     444             :         }
     445           0 :         ndr->depth--;
     446           0 :         ndr->depth--;
     447             : }
     448             : 
     449           0 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CREDENTIAL_DATA_CTR(struct ndr_push *ndr, int ndr_flags, const struct PAC_CREDENTIAL_DATA_CTR *r)
     450             : {
     451           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     452           0 :         if (ndr_flags & NDR_SCALARS) {
     453           0 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     454           0 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
     455           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     456             :         }
     457           0 :         if (ndr_flags & NDR_BUFFERS) {
     458           0 :                 if (r->data) {
     459           0 :                         NDR_CHECK(ndr_push_PAC_CREDENTIAL_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->data));
     460             :                 }
     461             :         }
     462           0 :         return NDR_ERR_SUCCESS;
     463             : }
     464             : 
     465           0 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_DATA_CTR(struct ndr_pull *ndr, int ndr_flags, struct PAC_CREDENTIAL_DATA_CTR *r)
     466             : {
     467             :         uint32_t _ptr_data;
     468           0 :         TALLOC_CTX *_mem_save_data_0 = NULL;
     469           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     470           0 :         if (ndr_flags & NDR_SCALARS) {
     471           0 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     472           0 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
     473           0 :                 if (_ptr_data) {
     474           0 :                         NDR_PULL_ALLOC(ndr, r->data);
     475             :                 } else {
     476           0 :                         r->data = NULL;
     477             :                 }
     478           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     479             :         }
     480           0 :         if (ndr_flags & NDR_BUFFERS) {
     481           0 :                 if (r->data) {
     482           0 :                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
     483           0 :                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
     484           0 :                         NDR_CHECK(ndr_pull_PAC_CREDENTIAL_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->data));
     485           0 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
     486             :                 }
     487             :         }
     488           0 :         return NDR_ERR_SUCCESS;
     489             : }
     490             : 
     491           0 : static void ndr_print_flags_PAC_CREDENTIAL_DATA_CTR(struct ndr_print *ndr, const char *name, int unused, const struct PAC_CREDENTIAL_DATA_CTR *r)
     492             : {
     493           0 :         ndr_print_PAC_CREDENTIAL_DATA_CTR(ndr, name, r);
     494           0 : }
     495             : 
     496           0 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_DATA_CTR(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_DATA_CTR *r)
     497             : {
     498           0 :         ndr_print_struct(ndr, name, "PAC_CREDENTIAL_DATA_CTR");
     499           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     500           0 :         ndr->depth++;
     501           0 :         ndr_print_ptr(ndr, "data", r->data);
     502           0 :         ndr->depth++;
     503           0 :         if (r->data) {
     504           0 :                 ndr_print_PAC_CREDENTIAL_DATA(ndr, "data", r->data);
     505             :         }
     506           0 :         ndr->depth--;
     507           0 :         ndr->depth--;
     508             : }
     509             : 
     510           0 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CREDENTIAL_DATA_NDR(struct ndr_push *ndr, int ndr_flags, const struct PAC_CREDENTIAL_DATA_NDR *r)
     511             : {
     512           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     513           0 :         if (ndr_flags & NDR_SCALARS) {
     514           0 :                 NDR_CHECK(ndr_push_align(ndr, 1));
     515             :                 {
     516             :                         struct ndr_push *_ndr_ctr;
     517           0 :                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr, 0xFFFFFC01, -1));
     518           0 :                         NDR_CHECK(ndr_push_PAC_CREDENTIAL_DATA_CTR(_ndr_ctr, NDR_SCALARS|NDR_BUFFERS, &r->ctr));
     519           0 :                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr, 0xFFFFFC01, -1));
     520             :                 }
     521           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
     522             :         }
     523           0 :         if (ndr_flags & NDR_BUFFERS) {
     524             :         }
     525           0 :         return NDR_ERR_SUCCESS;
     526             : }
     527             : 
     528           0 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_DATA_NDR(struct ndr_pull *ndr, int ndr_flags, struct PAC_CREDENTIAL_DATA_NDR *r)
     529             : {
     530           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     531           0 :         if (ndr_flags & NDR_SCALARS) {
     532           0 :                 NDR_CHECK(ndr_pull_align(ndr, 1));
     533             :                 {
     534             :                         struct ndr_pull *_ndr_ctr;
     535           0 :                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr, 0xFFFFFC01, -1));
     536           0 :                         NDR_CHECK(ndr_pull_PAC_CREDENTIAL_DATA_CTR(_ndr_ctr, NDR_SCALARS|NDR_BUFFERS, &r->ctr));
     537           0 :                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr, 0xFFFFFC01, -1));
     538             :                 }
     539           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
     540             :         }
     541           0 :         if (ndr_flags & NDR_BUFFERS) {
     542             :         }
     543           0 :         return NDR_ERR_SUCCESS;
     544             : }
     545             : 
     546           0 : static void ndr_print_flags_PAC_CREDENTIAL_DATA_NDR(struct ndr_print *ndr, const char *name, int unused, const struct PAC_CREDENTIAL_DATA_NDR *r)
     547             : {
     548           0 :         ndr_print_PAC_CREDENTIAL_DATA_NDR(ndr, name, r);
     549           0 : }
     550             : 
     551           0 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_DATA_NDR(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_DATA_NDR *r)
     552             : {
     553           0 :         ndr_print_struct(ndr, name, "PAC_CREDENTIAL_DATA_NDR");
     554           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     555           0 :         ndr->depth++;
     556           0 :         ndr_print_PAC_CREDENTIAL_DATA_CTR(ndr, "ctr", &r->ctr);
     557           0 :         ndr->depth--;
     558             : }
     559             : 
     560           0 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CREDENTIAL_INFO(struct ndr_push *ndr, int ndr_flags, const struct PAC_CREDENTIAL_INFO *r)
     561             : {
     562           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     563           0 :         if (ndr_flags & NDR_SCALARS) {
     564           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
     565           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
     566           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->encryption_type));
     567             :                 {
     568           0 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
     569           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     570           0 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->encrypted_data));
     571           0 :                         ndr->flags = _flags_save_DATA_BLOB;
     572             :                 }
     573           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     574             :         }
     575           0 :         if (ndr_flags & NDR_BUFFERS) {
     576             :         }
     577           0 :         return NDR_ERR_SUCCESS;
     578             : }
     579             : 
     580           0 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_INFO(struct ndr_pull *ndr, int ndr_flags, struct PAC_CREDENTIAL_INFO *r)
     581             : {
     582           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     583           0 :         if (ndr_flags & NDR_SCALARS) {
     584           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
     585           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
     586           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->encryption_type));
     587             :                 {
     588           0 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
     589           0 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     590           0 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->encrypted_data));
     591           0 :                         ndr->flags = _flags_save_DATA_BLOB;
     592             :                 }
     593           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
     594             :         }
     595           0 :         if (ndr_flags & NDR_BUFFERS) {
     596             :         }
     597           0 :         return NDR_ERR_SUCCESS;
     598             : }
     599             : 
     600           0 : static void ndr_print_flags_PAC_CREDENTIAL_INFO(struct ndr_print *ndr, const char *name, int unused, const struct PAC_CREDENTIAL_INFO *r)
     601             : {
     602           0 :         ndr_print_PAC_CREDENTIAL_INFO(ndr, name, r);
     603           0 : }
     604             : 
     605           0 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_INFO(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_INFO *r)
     606             : {
     607           0 :         ndr_print_struct(ndr, name, "PAC_CREDENTIAL_INFO");
     608           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     609           0 :         ndr->depth++;
     610           0 :         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->version);
     611           0 :         ndr_print_uint32(ndr, "encryption_type", r->encryption_type);
     612             :         {
     613           0 :                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
     614           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     615           0 :                 ndr_print_DATA_BLOB(ndr, "encrypted_data", r->encrypted_data);
     616           0 :                 ndr->flags = _flags_save_DATA_BLOB;
     617             :         }
     618           0 :         ndr->depth--;
     619             : }
     620             : 
     621          84 : static enum ndr_err_code ndr_push_PAC_CONSTRAINED_DELEGATION(struct ndr_push *ndr, int ndr_flags, const struct PAC_CONSTRAINED_DELEGATION *r)
     622             : {
     623             :         uint32_t cntr_transited_services_1;
     624          84 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     625          84 :         if (ndr_flags & NDR_SCALARS) {
     626          84 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     627          84 :                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->proxy_target));
     628          84 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_transited_services));
     629          84 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->transited_services));
     630          84 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     631             :         }
     632          84 :         if (ndr_flags & NDR_BUFFERS) {
     633          84 :                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->proxy_target));
     634          84 :                 if (r->transited_services) {
     635          84 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_transited_services));
     636         240 :                         for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (r->num_transited_services); cntr_transited_services_1++) {
     637         156 :                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->transited_services[cntr_transited_services_1]));
     638             :                         }
     639         240 :                         for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (r->num_transited_services); cntr_transited_services_1++) {
     640         156 :                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->transited_services[cntr_transited_services_1]));
     641             :                         }
     642             :                 }
     643             :         }
     644          84 :         return NDR_ERR_SUCCESS;
     645             : }
     646             : 
     647          80 : static enum ndr_err_code ndr_pull_PAC_CONSTRAINED_DELEGATION(struct ndr_pull *ndr, int ndr_flags, struct PAC_CONSTRAINED_DELEGATION *r)
     648             : {
     649             :         uint32_t _ptr_transited_services;
     650          80 :         uint32_t size_transited_services_1 = 0;
     651             :         uint32_t cntr_transited_services_1;
     652          80 :         TALLOC_CTX *_mem_save_transited_services_0 = NULL;
     653          80 :         TALLOC_CTX *_mem_save_transited_services_1 = NULL;
     654          80 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     655          80 :         if (ndr_flags & NDR_SCALARS) {
     656          80 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     657          80 :                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->proxy_target));
     658          80 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_transited_services));
     659          80 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transited_services));
     660          80 :                 if (_ptr_transited_services) {
     661          80 :                         NDR_PULL_ALLOC(ndr, r->transited_services);
     662             :                 } else {
     663           0 :                         r->transited_services = NULL;
     664             :                 }
     665          80 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     666             :         }
     667          80 :         if (ndr_flags & NDR_BUFFERS) {
     668          80 :                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->proxy_target));
     669          80 :                 if (r->transited_services) {
     670          80 :                         _mem_save_transited_services_0 = NDR_PULL_GET_MEM_CTX(ndr);
     671          80 :                         NDR_PULL_SET_MEM_CTX(ndr, r->transited_services, 0);
     672          80 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->transited_services));
     673          80 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->transited_services, &size_transited_services_1));
     674          80 :                         NDR_PULL_ALLOC_N(ndr, r->transited_services, size_transited_services_1);
     675          80 :                         _mem_save_transited_services_1 = NDR_PULL_GET_MEM_CTX(ndr);
     676          80 :                         NDR_PULL_SET_MEM_CTX(ndr, r->transited_services, 0);
     677         176 :                         for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (size_transited_services_1); cntr_transited_services_1++) {
     678          96 :                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->transited_services[cntr_transited_services_1]));
     679             :                         }
     680         176 :                         for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (size_transited_services_1); cntr_transited_services_1++) {
     681          96 :                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->transited_services[cntr_transited_services_1]));
     682             :                         }
     683          80 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transited_services_1, 0);
     684          80 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transited_services_0, 0);
     685             :                 }
     686          80 :                 if (r->transited_services) {
     687          80 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->transited_services, r->num_transited_services));
     688             :                 }
     689          80 :                 for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (size_transited_services_1); cntr_transited_services_1++) {
     690             :                 }
     691             :         }
     692          80 :         return NDR_ERR_SUCCESS;
     693             : }
     694             : 
     695           0 : _PUBLIC_ void ndr_print_PAC_CONSTRAINED_DELEGATION(struct ndr_print *ndr, const char *name, const struct PAC_CONSTRAINED_DELEGATION *r)
     696             : {
     697             :         uint32_t cntr_transited_services_1;
     698           0 :         ndr_print_struct(ndr, name, "PAC_CONSTRAINED_DELEGATION");
     699           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     700           0 :         ndr->depth++;
     701           0 :         ndr_print_lsa_String(ndr, "proxy_target", &r->proxy_target);
     702           0 :         ndr_print_uint32(ndr, "num_transited_services", r->num_transited_services);
     703           0 :         ndr_print_ptr(ndr, "transited_services", r->transited_services);
     704           0 :         ndr->depth++;
     705           0 :         if (r->transited_services) {
     706           0 :                 ndr->print(ndr, "%s: ARRAY(%d)", "transited_services", (int)r->num_transited_services);
     707           0 :                 ndr->depth++;
     708           0 :                 for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (r->num_transited_services); cntr_transited_services_1++) {
     709           0 :                         ndr_print_lsa_String(ndr, "transited_services", &r->transited_services[cntr_transited_services_1]);
     710             :                 }
     711           0 :                 ndr->depth--;
     712             :         }
     713           0 :         ndr->depth--;
     714           0 :         ndr->depth--;
     715             : }
     716             : 
     717       19985 : static enum ndr_err_code ndr_push_PAC_UPN_DNS_FLAGS(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     718             : {
     719       19985 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
     720       19985 :         return NDR_ERR_SUCCESS;
     721             : }
     722             : 
     723       67593 : static enum ndr_err_code ndr_pull_PAC_UPN_DNS_FLAGS(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
     724             : {
     725             :         uint32_t v;
     726       67593 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
     727       67593 :         *r = v;
     728       67593 :         return NDR_ERR_SUCCESS;
     729             : }
     730             : 
     731           0 : _PUBLIC_ void ndr_print_PAC_UPN_DNS_FLAGS(struct ndr_print *ndr, const char *name, uint32_t r)
     732             : {
     733           0 :         ndr_print_uint32(ndr, name, r);
     734           0 :         ndr->depth++;
     735           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_UPN_DNS_FLAG_CONSTRUCTED", PAC_UPN_DNS_FLAG_CONSTRUCTED, r);
     736           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID", PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID, r);
     737           0 :         ndr->depth--;
     738           0 : }
     739             : 
     740       39970 : static enum ndr_err_code ndr_push_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(struct ndr_push *ndr, int ndr_flags, const struct PAC_UPN_DNS_INFO_SAM_NAME_AND_SID *r)
     741             : {
     742       39970 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     743       39970 :         if (ndr_flags & NDR_SCALARS) {
     744       19985 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     745       19985 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->samaccountname)));
     746             :                 {
     747       19985 :                         uint32_t _flags_save_string = ndr->flags;
     748       19985 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     749       19985 :                         NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->samaccountname));
     750       19985 :                         ndr->flags = _flags_save_string;
     751             :                 }
     752       19985 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_dom_sid(r->objectsid, ndr->flags)));
     753       19985 :                 NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->objectsid));
     754       19985 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     755             :         }
     756       39970 :         if (ndr_flags & NDR_BUFFERS) {
     757             :                 {
     758       19985 :                         uint32_t _flags_save_string = ndr->flags;
     759       19985 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     760       19985 :                         if (r->samaccountname) {
     761       19985 :                                 NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->samaccountname));
     762             :                                 {
     763             :                                         struct ndr_push *_ndr_samaccountname;
     764       19985 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_samaccountname, 0, 2 * strlen_m(r->samaccountname)));
     765       19985 :                                         NDR_CHECK(ndr_push_string(_ndr_samaccountname, NDR_SCALARS, r->samaccountname));
     766       19985 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_samaccountname, 0, 2 * strlen_m(r->samaccountname)));
     767             :                                 }
     768             :                         }
     769       19985 :                         ndr->flags = _flags_save_string;
     770             :                 }
     771       19985 :                 if (r->objectsid) {
     772       19985 :                         NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->objectsid));
     773             :                         {
     774             :                                 struct ndr_push *_ndr_objectsid;
     775       19985 :                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_objectsid, 0, ndr_size_dom_sid(r->objectsid, ndr->flags)));
     776       19985 :                                 NDR_CHECK(ndr_push_dom_sid(_ndr_objectsid, NDR_SCALARS, r->objectsid));
     777       19985 :                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_objectsid, 0, ndr_size_dom_sid(r->objectsid, ndr->flags)));
     778             :                         }
     779             :                 }
     780             :         }
     781       39970 :         return NDR_ERR_SUCCESS;
     782             : }
     783             : 
     784      135186 : static enum ndr_err_code ndr_pull_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(struct ndr_pull *ndr, int ndr_flags, struct PAC_UPN_DNS_INFO_SAM_NAME_AND_SID *r)
     785             : {
     786             :         uint16_t _ptr_samaccountname;
     787      135186 :         TALLOC_CTX *_mem_save_samaccountname_0 = NULL;
     788             :         uint16_t _ptr_objectsid;
     789      135186 :         TALLOC_CTX *_mem_save_objectsid_0 = NULL;
     790      135186 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     791      135186 :         if (ndr_flags & NDR_SCALARS) {
     792       67593 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     793       67593 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->samaccountname_size));
     794             :                 {
     795       67593 :                         uint32_t _flags_save_string = ndr->flags;
     796       67593 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     797       67593 :                         NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_samaccountname));
     798       67593 :                         if (_ptr_samaccountname) {
     799       67593 :                                 NDR_PULL_ALLOC(ndr, r->samaccountname);
     800       67593 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->samaccountname, _ptr_samaccountname));
     801             :                         } else {
     802           0 :                                 r->samaccountname = NULL;
     803             :                         }
     804       67593 :                         ndr->flags = _flags_save_string;
     805             :                 }
     806       67593 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->objectsid_size));
     807       67593 :                 NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_objectsid));
     808       67593 :                 if (_ptr_objectsid) {
     809       67593 :                         NDR_PULL_ALLOC(ndr, r->objectsid);
     810       67593 :                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->objectsid, _ptr_objectsid));
     811             :                 } else {
     812           0 :                         r->objectsid = NULL;
     813             :                 }
     814       67593 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     815             :         }
     816      135186 :         if (ndr_flags & NDR_BUFFERS) {
     817             :                 {
     818       67593 :                         uint32_t _flags_save_string = ndr->flags;
     819       67593 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     820       67593 :                         if (r->samaccountname) {
     821             :                                 uint32_t _relative_save_offset;
     822       67593 :                                 _relative_save_offset = ndr->offset;
     823       67593 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->samaccountname));
     824       67593 :                                 _mem_save_samaccountname_0 = NDR_PULL_GET_MEM_CTX(ndr);
     825       67593 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->samaccountname, 0);
     826             :                                 {
     827             :                                         struct ndr_pull *_ndr_samaccountname;
     828       67593 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_samaccountname, 0, r->samaccountname_size));
     829       67593 :                                         NDR_CHECK(ndr_pull_string(_ndr_samaccountname, NDR_SCALARS, &r->samaccountname));
     830       67593 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_samaccountname, 0, r->samaccountname_size));
     831             :                                 }
     832       67593 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_samaccountname_0, 0);
     833       67593 :                                 if (ndr->offset > ndr->relative_highest_offset) {
     834       67593 :                                         ndr->relative_highest_offset = ndr->offset;
     835             :                                 }
     836       67593 :                                 ndr->offset = _relative_save_offset;
     837             :                         }
     838       67593 :                         ndr->flags = _flags_save_string;
     839             :                 }
     840       67593 :                 if (r->objectsid) {
     841             :                         uint32_t _relative_save_offset;
     842       67593 :                         _relative_save_offset = ndr->offset;
     843       67593 :                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->objectsid));
     844       67593 :                         _mem_save_objectsid_0 = NDR_PULL_GET_MEM_CTX(ndr);
     845       67593 :                         NDR_PULL_SET_MEM_CTX(ndr, r->objectsid, 0);
     846             :                         {
     847             :                                 struct ndr_pull *_ndr_objectsid;
     848       67593 :                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_objectsid, 0, r->objectsid_size));
     849       67593 :                                 NDR_CHECK(ndr_pull_dom_sid(_ndr_objectsid, NDR_SCALARS, r->objectsid));
     850       67593 :                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_objectsid, 0, r->objectsid_size));
     851             :                         }
     852       67593 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objectsid_0, 0);
     853       67593 :                         if (ndr->offset > ndr->relative_highest_offset) {
     854       67593 :                                 ndr->relative_highest_offset = ndr->offset;
     855             :                         }
     856       67593 :                         ndr->offset = _relative_save_offset;
     857             :                 }
     858             :         }
     859      135186 :         return NDR_ERR_SUCCESS;
     860             : }
     861             : 
     862           0 : _PUBLIC_ void ndr_print_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(struct ndr_print *ndr, const char *name, const struct PAC_UPN_DNS_INFO_SAM_NAME_AND_SID *r)
     863             : {
     864           0 :         ndr_print_struct(ndr, name, "PAC_UPN_DNS_INFO_SAM_NAME_AND_SID");
     865           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
     866           0 :         ndr->depth++;
     867           0 :         ndr_print_uint16(ndr, "samaccountname_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m(r->samaccountname):r->samaccountname_size);
     868             :         {
     869           0 :                 uint32_t _flags_save_string = ndr->flags;
     870           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     871           0 :                 ndr_print_ptr(ndr, "samaccountname", r->samaccountname);
     872           0 :                 ndr->depth++;
     873           0 :                 if (r->samaccountname) {
     874           0 :                         ndr_print_string(ndr, "samaccountname", r->samaccountname);
     875             :                 }
     876           0 :                 ndr->depth--;
     877           0 :                 ndr->flags = _flags_save_string;
     878             :         }
     879           0 :         ndr_print_uint16(ndr, "objectsid_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid(r->objectsid, ndr->flags):r->objectsid_size);
     880           0 :         ndr_print_ptr(ndr, "objectsid", r->objectsid);
     881           0 :         ndr->depth++;
     882           0 :         if (r->objectsid) {
     883           0 :                 ndr_print_dom_sid(ndr, "objectsid", r->objectsid);
     884             :         }
     885           0 :         ndr->depth--;
     886           0 :         ndr->depth--;
     887             : }
     888             : 
     889       39970 : static enum ndr_err_code ndr_push_PAC_UPN_DNS_INFO_EX(struct ndr_push *ndr, int ndr_flags, const union PAC_UPN_DNS_INFO_EX *r)
     890             : {
     891             :         uint32_t level;
     892       39970 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     893       39970 :         if (ndr_flags & NDR_SCALARS) {
     894             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
     895       19985 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
     896       19985 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
     897       19985 :                 switch (level) {
     898       19985 :                         case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID: {
     899       19985 :                                 NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, NDR_SCALARS, &r->sam_name_and_sid));
     900       19985 :                         break; }
     901             : 
     902           0 :                         default: {
     903           0 :                         break; }
     904             : 
     905             :                 }
     906       19862 :         }
     907       39970 :         if (ndr_flags & NDR_BUFFERS) {
     908       19985 :                 if (!(ndr_flags & NDR_SCALARS)) {
     909             :                         /* We didn't get it above, and the token is not needed after this. */
     910       19985 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
     911             :                 }
     912       19985 :                 switch (level) {
     913       19985 :                         case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID:
     914       19985 :                                 NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, NDR_BUFFERS, &r->sam_name_and_sid));
     915       19985 :                         break;
     916             : 
     917           0 :                         default:
     918           0 :                         break;
     919             : 
     920             :                 }
     921       19862 :         }
     922       39970 :         return NDR_ERR_SUCCESS;
     923             : }
     924             : 
     925      135186 : static enum ndr_err_code ndr_pull_PAC_UPN_DNS_INFO_EX(struct ndr_pull *ndr, int ndr_flags, union PAC_UPN_DNS_INFO_EX *r)
     926             : {
     927             :         uint32_t level;
     928      135186 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     929      135186 :         if (ndr_flags & NDR_SCALARS) {
     930             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
     931       67593 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
     932       67593 :                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
     933       67593 :                 switch (level) {
     934       67593 :                         case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID: {
     935       67593 :                                 NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, NDR_SCALARS, &r->sam_name_and_sid));
     936       67593 :                         break; }
     937             : 
     938           0 :                         default: {
     939           0 :                         break; }
     940             : 
     941             :                 }
     942       61666 :         }
     943      135186 :         if (ndr_flags & NDR_BUFFERS) {
     944       67593 :                 if (!(ndr_flags & NDR_SCALARS)) {
     945             :                         /* We didn't get it above, and the token is not needed after this. */
     946       67593 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
     947             :                 }
     948       67593 :                 switch (level) {
     949       67593 :                         case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID:
     950       67593 :                                 NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, NDR_BUFFERS, &r->sam_name_and_sid));
     951       67593 :                         break;
     952             : 
     953           0 :                         default:
     954           0 :                         break;
     955             : 
     956             :                 }
     957       61666 :         }
     958      135186 :         return NDR_ERR_SUCCESS;
     959             : }
     960             : 
     961           0 : _PUBLIC_ void ndr_print_PAC_UPN_DNS_INFO_EX(struct ndr_print *ndr, const char *name, const union PAC_UPN_DNS_INFO_EX *r)
     962             : {
     963             :         uint32_t level;
     964           0 :         level = ndr_print_steal_switch_value(ndr, r);
     965           0 :         ndr_print_union(ndr, name, level, "PAC_UPN_DNS_INFO_EX");
     966           0 :         switch (level) {
     967           0 :                 case PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID:
     968           0 :                         ndr_print_PAC_UPN_DNS_INFO_SAM_NAME_AND_SID(ndr, "sam_name_and_sid", &r->sam_name_and_sid);
     969           0 :                 break;
     970             : 
     971           0 :                 default:
     972           0 :                 break;
     973             : 
     974             :         }
     975           0 : }
     976             : 
     977       39970 : static enum ndr_err_code ndr_push_PAC_UPN_DNS_INFO(struct ndr_push *ndr, int ndr_flags, const struct PAC_UPN_DNS_INFO *r)
     978             : {
     979       39970 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     980       39970 :         if (ndr_flags & NDR_SCALARS) {
     981       19985 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     982       19985 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->upn_name)));
     983             :                 {
     984       19985 :                         uint32_t _flags_save_string = ndr->flags;
     985       19985 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     986       19985 :                         NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->upn_name));
     987       19985 :                         ndr->flags = _flags_save_string;
     988             :                 }
     989       19985 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->dns_domain_name)));
     990             :                 {
     991       19985 :                         uint32_t _flags_save_string = ndr->flags;
     992       19985 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     993       19985 :                         NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->dns_domain_name));
     994       19985 :                         ndr->flags = _flags_save_string;
     995             :                 }
     996       19985 :                 NDR_CHECK(ndr_push_PAC_UPN_DNS_FLAGS(ndr, NDR_SCALARS, r->flags));
     997       19985 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID));
     998       19985 :                 NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO_EX(ndr, NDR_SCALARS, &r->ex));
     999       19985 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1000             :         }
    1001       39970 :         if (ndr_flags & NDR_BUFFERS) {
    1002             :                 {
    1003       19985 :                         uint32_t _flags_save_string = ndr->flags;
    1004       19985 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
    1005       19985 :                         if (r->upn_name) {
    1006       19985 :                                 NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->upn_name));
    1007             :                                 {
    1008             :                                         struct ndr_push *_ndr_upn_name;
    1009       19985 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_upn_name, 0, 2 * strlen_m(r->upn_name)));
    1010       19985 :                                         NDR_CHECK(ndr_push_string(_ndr_upn_name, NDR_SCALARS, r->upn_name));
    1011       19985 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_upn_name, 0, 2 * strlen_m(r->upn_name)));
    1012             :                                 }
    1013             :                         }
    1014       19985 :                         ndr->flags = _flags_save_string;
    1015             :                 }
    1016             :                 {
    1017       19985 :                         uint32_t _flags_save_string = ndr->flags;
    1018       19985 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
    1019       19985 :                         if (r->dns_domain_name) {
    1020       19985 :                                 NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->dns_domain_name));
    1021             :                                 {
    1022             :                                         struct ndr_push *_ndr_dns_domain_name;
    1023       19985 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_dns_domain_name, 0, 2 * strlen_m(r->dns_domain_name)));
    1024       19985 :                                         NDR_CHECK(ndr_push_string(_ndr_dns_domain_name, NDR_SCALARS, r->dns_domain_name));
    1025       19985 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_dns_domain_name, 0, 2 * strlen_m(r->dns_domain_name)));
    1026             :                                 }
    1027             :                         }
    1028       19985 :                         ndr->flags = _flags_save_string;
    1029             :                 }
    1030       19985 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID));
    1031       19985 :                 NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO_EX(ndr, NDR_BUFFERS, &r->ex));
    1032             :         }
    1033       39970 :         return NDR_ERR_SUCCESS;
    1034             : }
    1035             : 
    1036      135186 : static enum ndr_err_code ndr_pull_PAC_UPN_DNS_INFO(struct ndr_pull *ndr, int ndr_flags, struct PAC_UPN_DNS_INFO *r)
    1037             : {
    1038             :         uint16_t _ptr_upn_name;
    1039      135186 :         TALLOC_CTX *_mem_save_upn_name_0 = NULL;
    1040             :         uint16_t _ptr_dns_domain_name;
    1041      135186 :         TALLOC_CTX *_mem_save_dns_domain_name_0 = NULL;
    1042      135186 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1043      135186 :         if (ndr_flags & NDR_SCALARS) {
    1044       67593 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1045       67593 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->upn_name_size));
    1046             :                 {
    1047       67593 :                         uint32_t _flags_save_string = ndr->flags;
    1048       67593 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
    1049       67593 :                         NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_upn_name));
    1050       67593 :                         if (_ptr_upn_name) {
    1051       67593 :                                 NDR_PULL_ALLOC(ndr, r->upn_name);
    1052       67593 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->upn_name, _ptr_upn_name));
    1053             :                         } else {
    1054           0 :                                 r->upn_name = NULL;
    1055             :                         }
    1056       67593 :                         ndr->flags = _flags_save_string;
    1057             :                 }
    1058       67593 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->dns_domain_name_size));
    1059             :                 {
    1060       67593 :                         uint32_t _flags_save_string = ndr->flags;
    1061       67593 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
    1062       67593 :                         NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_dns_domain_name));
    1063       67593 :                         if (_ptr_dns_domain_name) {
    1064       67593 :                                 NDR_PULL_ALLOC(ndr, r->dns_domain_name);
    1065       67593 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dns_domain_name, _ptr_dns_domain_name));
    1066             :                         } else {
    1067           0 :                                 r->dns_domain_name = NULL;
    1068             :                         }
    1069       67593 :                         ndr->flags = _flags_save_string;
    1070             :                 }
    1071       67593 :                 NDR_CHECK(ndr_pull_PAC_UPN_DNS_FLAGS(ndr, NDR_SCALARS, &r->flags));
    1072       67593 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID));
    1073       67593 :                 NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO_EX(ndr, NDR_SCALARS, &r->ex));
    1074       67593 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1075             :         }
    1076      135186 :         if (ndr_flags & NDR_BUFFERS) {
    1077             :                 {
    1078       67593 :                         uint32_t _flags_save_string = ndr->flags;
    1079       67593 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
    1080       67593 :                         if (r->upn_name) {
    1081             :                                 uint32_t _relative_save_offset;
    1082       67593 :                                 _relative_save_offset = ndr->offset;
    1083       67593 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->upn_name));
    1084       67593 :                                 _mem_save_upn_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1085       67593 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->upn_name, 0);
    1086             :                                 {
    1087             :                                         struct ndr_pull *_ndr_upn_name;
    1088       67593 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_upn_name, 0, r->upn_name_size));
    1089       67593 :                                         NDR_CHECK(ndr_pull_string(_ndr_upn_name, NDR_SCALARS, &r->upn_name));
    1090       67593 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_upn_name, 0, r->upn_name_size));
    1091             :                                 }
    1092       67593 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_upn_name_0, 0);
    1093       67593 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    1094       67593 :                                         ndr->relative_highest_offset = ndr->offset;
    1095             :                                 }
    1096       67593 :                                 ndr->offset = _relative_save_offset;
    1097             :                         }
    1098       67593 :                         ndr->flags = _flags_save_string;
    1099             :                 }
    1100             :                 {
    1101       67593 :                         uint32_t _flags_save_string = ndr->flags;
    1102       67593 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
    1103       67593 :                         if (r->dns_domain_name) {
    1104             :                                 uint32_t _relative_save_offset;
    1105       67593 :                                 _relative_save_offset = ndr->offset;
    1106       67593 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dns_domain_name));
    1107       67593 :                                 _mem_save_dns_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1108       67593 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->dns_domain_name, 0);
    1109             :                                 {
    1110             :                                         struct ndr_pull *_ndr_dns_domain_name;
    1111       67593 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_dns_domain_name, 0, r->dns_domain_name_size));
    1112       67593 :                                         NDR_CHECK(ndr_pull_string(_ndr_dns_domain_name, NDR_SCALARS, &r->dns_domain_name));
    1113       67593 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_dns_domain_name, 0, r->dns_domain_name_size));
    1114             :                                 }
    1115       67593 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_domain_name_0, 0);
    1116       67593 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    1117       67593 :                                         ndr->relative_highest_offset = ndr->offset;
    1118             :                                 }
    1119       67593 :                                 ndr->offset = _relative_save_offset;
    1120             :                         }
    1121       67593 :                         ndr->flags = _flags_save_string;
    1122             :                 }
    1123       67593 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID));
    1124       67593 :                 NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO_EX(ndr, NDR_BUFFERS, &r->ex));
    1125             :         }
    1126      135186 :         return NDR_ERR_SUCCESS;
    1127             : }
    1128             : 
    1129           0 : _PUBLIC_ void ndr_print_PAC_UPN_DNS_INFO(struct ndr_print *ndr, const char *name, const struct PAC_UPN_DNS_INFO *r)
    1130             : {
    1131           0 :         ndr_print_struct(ndr, name, "PAC_UPN_DNS_INFO");
    1132           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1133           0 :         ndr->depth++;
    1134           0 :         ndr_print_uint16(ndr, "upn_name_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m(r->upn_name):r->upn_name_size);
    1135             :         {
    1136           0 :                 uint32_t _flags_save_string = ndr->flags;
    1137           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
    1138           0 :                 ndr_print_ptr(ndr, "upn_name", r->upn_name);
    1139           0 :                 ndr->depth++;
    1140           0 :                 if (r->upn_name) {
    1141           0 :                         ndr_print_string(ndr, "upn_name", r->upn_name);
    1142             :                 }
    1143           0 :                 ndr->depth--;
    1144           0 :                 ndr->flags = _flags_save_string;
    1145             :         }
    1146           0 :         ndr_print_uint16(ndr, "dns_domain_name_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m(r->dns_domain_name):r->dns_domain_name_size);
    1147             :         {
    1148           0 :                 uint32_t _flags_save_string = ndr->flags;
    1149           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
    1150           0 :                 ndr_print_ptr(ndr, "dns_domain_name", r->dns_domain_name);
    1151           0 :                 ndr->depth++;
    1152           0 :                 if (r->dns_domain_name) {
    1153           0 :                         ndr_print_string(ndr, "dns_domain_name", r->dns_domain_name);
    1154             :                 }
    1155           0 :                 ndr->depth--;
    1156           0 :                 ndr->flags = _flags_save_string;
    1157             :         }
    1158           0 :         ndr_print_PAC_UPN_DNS_FLAGS(ndr, "flags", r->flags);
    1159           0 :         ndr_print_set_switch_value(ndr, &r->ex, r->flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID);
    1160           0 :         ndr_print_PAC_UPN_DNS_INFO_EX(ndr, "ex", &r->ex);
    1161           0 :         ndr->depth--;
    1162             : }
    1163             : 
    1164       17603 : static enum ndr_err_code ndr_push_PAC_ATTRIBUTE_INFO_FLAGS(struct ndr_push *ndr, int ndr_flags, uint32_t r)
    1165             : {
    1166       17603 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
    1167       17603 :         return NDR_ERR_SUCCESS;
    1168             : }
    1169             : 
    1170       15209 : static enum ndr_err_code ndr_pull_PAC_ATTRIBUTE_INFO_FLAGS(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
    1171             : {
    1172             :         uint32_t v;
    1173       15209 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
    1174       15209 :         *r = v;
    1175       15209 :         return NDR_ERR_SUCCESS;
    1176             : }
    1177             : 
    1178           0 : _PUBLIC_ void ndr_print_PAC_ATTRIBUTE_INFO_FLAGS(struct ndr_print *ndr, const char *name, uint32_t r)
    1179             : {
    1180           0 :         ndr_print_uint32(ndr, name, r);
    1181           0 :         ndr->depth++;
    1182           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_ATTRIBUTE_FLAG_PAC_WAS_REQUESTED", PAC_ATTRIBUTE_FLAG_PAC_WAS_REQUESTED, r);
    1183           0 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_ATTRIBUTE_FLAG_PAC_WAS_GIVEN_IMPLICITLY", PAC_ATTRIBUTE_FLAG_PAC_WAS_GIVEN_IMPLICITLY, r);
    1184           0 :         ndr->depth--;
    1185           0 : }
    1186             : 
    1187       17603 : static enum ndr_err_code ndr_push_PAC_ATTRIBUTES_INFO(struct ndr_push *ndr, int ndr_flags, const struct PAC_ATTRIBUTES_INFO *r)
    1188             : {
    1189       17603 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1190       17603 :         if (ndr_flags & NDR_SCALARS) {
    1191       17603 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    1192       17603 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags_length));
    1193       17603 :                 NDR_CHECK(ndr_push_PAC_ATTRIBUTE_INFO_FLAGS(ndr, NDR_SCALARS, r->flags));
    1194       17603 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    1195             :         }
    1196       17603 :         if (ndr_flags & NDR_BUFFERS) {
    1197             :         }
    1198       17603 :         return NDR_ERR_SUCCESS;
    1199             : }
    1200             : 
    1201       15209 : static enum ndr_err_code ndr_pull_PAC_ATTRIBUTES_INFO(struct ndr_pull *ndr, int ndr_flags, struct PAC_ATTRIBUTES_INFO *r)
    1202             : {
    1203       15209 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1204       15209 :         if (ndr_flags & NDR_SCALARS) {
    1205       15209 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    1206       15209 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags_length));
    1207       15209 :                 NDR_CHECK(ndr_pull_PAC_ATTRIBUTE_INFO_FLAGS(ndr, NDR_SCALARS, &r->flags));
    1208       15209 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    1209             :         }
    1210       15209 :         if (ndr_flags & NDR_BUFFERS) {
    1211             :         }
    1212       15209 :         return NDR_ERR_SUCCESS;
    1213             : }
    1214             : 
    1215           0 : _PUBLIC_ void ndr_print_PAC_ATTRIBUTES_INFO(struct ndr_print *ndr, const char *name, const struct PAC_ATTRIBUTES_INFO *r)
    1216             : {
    1217           0 :         ndr_print_struct(ndr, name, "PAC_ATTRIBUTES_INFO");
    1218           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1219           0 :         ndr->depth++;
    1220           0 :         ndr_print_uint32(ndr, "flags_length", r->flags_length);
    1221           0 :         ndr_print_PAC_ATTRIBUTE_INFO_FLAGS(ndr, "flags", r->flags);
    1222           0 :         ndr->depth--;
    1223             : }
    1224             : 
    1225       17650 : static enum ndr_err_code ndr_push_PAC_REQUESTER_SID(struct ndr_push *ndr, int ndr_flags, const struct PAC_REQUESTER_SID *r)
    1226             : {
    1227       17650 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1228       17650 :         if (ndr_flags & NDR_SCALARS) {
    1229       17650 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    1230       17650 :                 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->sid));
    1231       17650 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    1232             :         }
    1233       17650 :         if (ndr_flags & NDR_BUFFERS) {
    1234             :         }
    1235       17650 :         return NDR_ERR_SUCCESS;
    1236             : }
    1237             : 
    1238       36416 : static enum ndr_err_code ndr_pull_PAC_REQUESTER_SID(struct ndr_pull *ndr, int ndr_flags, struct PAC_REQUESTER_SID *r)
    1239             : {
    1240       36416 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1241       36416 :         if (ndr_flags & NDR_SCALARS) {
    1242       36416 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    1243       36416 :                 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->sid));
    1244       36416 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    1245             :         }
    1246       36416 :         if (ndr_flags & NDR_BUFFERS) {
    1247             :         }
    1248       36416 :         return NDR_ERR_SUCCESS;
    1249             : }
    1250             : 
    1251           0 : _PUBLIC_ void ndr_print_PAC_REQUESTER_SID(struct ndr_print *ndr, const char *name, const struct PAC_REQUESTER_SID *r)
    1252             : {
    1253           0 :         ndr_print_struct(ndr, name, "PAC_REQUESTER_SID");
    1254           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1255           0 :         ndr->depth++;
    1256           0 :         ndr_print_dom_sid(ndr, "sid", &r->sid);
    1257           0 :         ndr->depth--;
    1258             : }
    1259             : 
    1260       55953 : _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)
    1261             : {
    1262       55953 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1263       55953 :         if (ndr_flags & NDR_SCALARS) {
    1264       55953 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    1265       55953 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
    1266       55953 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1267             :         }
    1268       55953 :         if (ndr_flags & NDR_BUFFERS) {
    1269       55953 :                 if (r->info) {
    1270       55953 :                         NDR_CHECK(ndr_push_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
    1271             :                 }
    1272             :         }
    1273       55953 :         return NDR_ERR_SUCCESS;
    1274             : }
    1275             : 
    1276       67928 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_LOGON_INFO_CTR(struct ndr_pull *ndr, int ndr_flags, struct PAC_LOGON_INFO_CTR *r)
    1277             : {
    1278             :         uint32_t _ptr_info;
    1279       67928 :         TALLOC_CTX *_mem_save_info_0 = NULL;
    1280       67928 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1281       67928 :         if (ndr_flags & NDR_SCALARS) {
    1282       67928 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1283       67928 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
    1284       67928 :                 if (_ptr_info) {
    1285       67928 :                         NDR_PULL_ALLOC(ndr, r->info);
    1286             :                 } else {
    1287           0 :                         r->info = NULL;
    1288             :                 }
    1289       67928 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1290             :         }
    1291       67928 :         if (ndr_flags & NDR_BUFFERS) {
    1292       67928 :                 if (r->info) {
    1293       67928 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1294       67928 :                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
    1295       67928 :                         NDR_CHECK(ndr_pull_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
    1296       67928 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
    1297             :                 }
    1298             :         }
    1299       67928 :         return NDR_ERR_SUCCESS;
    1300             : }
    1301             : 
    1302           0 : static void ndr_print_flags_PAC_LOGON_INFO_CTR(struct ndr_print *ndr, const char *name, int unused, const struct PAC_LOGON_INFO_CTR *r)
    1303             : {
    1304           0 :         ndr_print_PAC_LOGON_INFO_CTR(ndr, name, r);
    1305           0 : }
    1306             : 
    1307           0 : _PUBLIC_ void ndr_print_PAC_LOGON_INFO_CTR(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_INFO_CTR *r)
    1308             : {
    1309           0 :         ndr_print_struct(ndr, name, "PAC_LOGON_INFO_CTR");
    1310           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1311           0 :         ndr->depth++;
    1312           0 :         ndr_print_ptr(ndr, "info", r->info);
    1313           0 :         ndr->depth++;
    1314           0 :         if (r->info) {
    1315           0 :                 ndr_print_PAC_LOGON_INFO(ndr, "info", r->info);
    1316             :         }
    1317           0 :         ndr->depth--;
    1318           0 :         ndr->depth--;
    1319             : }
    1320             : 
    1321          84 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_CONSTRAINED_DELEGATION_CTR(struct ndr_push *ndr, int ndr_flags, const struct PAC_CONSTRAINED_DELEGATION_CTR *r)
    1322             : {
    1323          84 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1324          84 :         if (ndr_flags & NDR_SCALARS) {
    1325          84 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    1326          84 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
    1327          84 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1328             :         }
    1329          84 :         if (ndr_flags & NDR_BUFFERS) {
    1330          84 :                 if (r->info) {
    1331          84 :                         NDR_CHECK(ndr_push_PAC_CONSTRAINED_DELEGATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
    1332             :                 }
    1333             :         }
    1334          84 :         return NDR_ERR_SUCCESS;
    1335             : }
    1336             : 
    1337          80 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CONSTRAINED_DELEGATION_CTR(struct ndr_pull *ndr, int ndr_flags, struct PAC_CONSTRAINED_DELEGATION_CTR *r)
    1338             : {
    1339             :         uint32_t _ptr_info;
    1340          80 :         TALLOC_CTX *_mem_save_info_0 = NULL;
    1341          80 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1342          80 :         if (ndr_flags & NDR_SCALARS) {
    1343          80 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1344          80 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
    1345          80 :                 if (_ptr_info) {
    1346          80 :                         NDR_PULL_ALLOC(ndr, r->info);
    1347             :                 } else {
    1348           0 :                         r->info = NULL;
    1349             :                 }
    1350          80 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1351             :         }
    1352          80 :         if (ndr_flags & NDR_BUFFERS) {
    1353          80 :                 if (r->info) {
    1354          80 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1355          80 :                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
    1356          80 :                         NDR_CHECK(ndr_pull_PAC_CONSTRAINED_DELEGATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
    1357          80 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
    1358             :                 }
    1359             :         }
    1360          80 :         return NDR_ERR_SUCCESS;
    1361             : }
    1362             : 
    1363           0 : static void ndr_print_flags_PAC_CONSTRAINED_DELEGATION_CTR(struct ndr_print *ndr, const char *name, int unused, const struct PAC_CONSTRAINED_DELEGATION_CTR *r)
    1364             : {
    1365           0 :         ndr_print_PAC_CONSTRAINED_DELEGATION_CTR(ndr, name, r);
    1366           0 : }
    1367             : 
    1368           0 : _PUBLIC_ void ndr_print_PAC_CONSTRAINED_DELEGATION_CTR(struct ndr_print *ndr, const char *name, const struct PAC_CONSTRAINED_DELEGATION_CTR *r)
    1369             : {
    1370           0 :         ndr_print_struct(ndr, name, "PAC_CONSTRAINED_DELEGATION_CTR");
    1371           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1372           0 :         ndr->depth++;
    1373           0 :         ndr_print_ptr(ndr, "info", r->info);
    1374           0 :         ndr->depth++;
    1375           0 :         if (r->info) {
    1376           0 :                 ndr_print_PAC_CONSTRAINED_DELEGATION(ndr, "info", r->info);
    1377             :         }
    1378           0 :         ndr->depth--;
    1379           0 :         ndr->depth--;
    1380             : }
    1381             : 
    1382       46978 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_TYPE(struct ndr_push *ndr, int ndr_flags, enum PAC_TYPE r)
    1383             : {
    1384       46978 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    1385       46978 :         return NDR_ERR_SUCCESS;
    1386             : }
    1387             : 
    1388       88791 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_TYPE(struct ndr_pull *ndr, int ndr_flags, enum PAC_TYPE *r)
    1389             : {
    1390             :         uint32_t v;
    1391       88791 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    1392       88791 :         *r = v;
    1393       88791 :         return NDR_ERR_SUCCESS;
    1394             : }
    1395             : 
    1396           0 : _PUBLIC_ void ndr_print_PAC_TYPE(struct ndr_print *ndr, const char *name, enum PAC_TYPE r)
    1397             : {
    1398           0 :         const char *val = NULL;
    1399             : 
    1400           0 :         switch (r) {
    1401           0 :                 case PAC_TYPE_LOGON_INFO: val = "PAC_TYPE_LOGON_INFO"; break;
    1402           0 :                 case PAC_TYPE_CREDENTIAL_INFO: val = "PAC_TYPE_CREDENTIAL_INFO"; break;
    1403           0 :                 case PAC_TYPE_SRV_CHECKSUM: val = "PAC_TYPE_SRV_CHECKSUM"; break;
    1404           0 :                 case PAC_TYPE_KDC_CHECKSUM: val = "PAC_TYPE_KDC_CHECKSUM"; break;
    1405           0 :                 case PAC_TYPE_LOGON_NAME: val = "PAC_TYPE_LOGON_NAME"; break;
    1406           0 :                 case PAC_TYPE_CONSTRAINED_DELEGATION: val = "PAC_TYPE_CONSTRAINED_DELEGATION"; break;
    1407           0 :                 case PAC_TYPE_UPN_DNS_INFO: val = "PAC_TYPE_UPN_DNS_INFO"; break;
    1408           0 :                 case PAC_TYPE_CLIENT_CLAIMS_INFO: val = "PAC_TYPE_CLIENT_CLAIMS_INFO"; break;
    1409           0 :                 case PAC_TYPE_DEVICE_INFO: val = "PAC_TYPE_DEVICE_INFO"; break;
    1410           0 :                 case PAC_TYPE_DEVICE_CLAIMS_INFO: val = "PAC_TYPE_DEVICE_CLAIMS_INFO"; break;
    1411           0 :                 case PAC_TYPE_TICKET_CHECKSUM: val = "PAC_TYPE_TICKET_CHECKSUM"; break;
    1412           0 :                 case PAC_TYPE_ATTRIBUTES_INFO: val = "PAC_TYPE_ATTRIBUTES_INFO"; break;
    1413           0 :                 case PAC_TYPE_REQUESTER_SID: val = "PAC_TYPE_REQUESTER_SID"; break;
    1414           0 :                 case PAC_TYPE_FULL_CHECKSUM: val = "PAC_TYPE_FULL_CHECKSUM"; break;
    1415             :         }
    1416           0 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1417           0 : }
    1418             : 
    1419       44699 : static enum ndr_err_code ndr_push_DATA_BLOB_REM(struct ndr_push *ndr, int ndr_flags, const struct DATA_BLOB_REM *r)
    1420             : {
    1421       44699 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1422       44699 :         if (ndr_flags & NDR_SCALARS) {
    1423       44699 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    1424             :                 {
    1425       44699 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
    1426       44699 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1427       44699 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->remaining));
    1428       44699 :                         ndr->flags = _flags_save_DATA_BLOB;
    1429             :                 }
    1430       44699 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    1431             :         }
    1432       44699 :         if (ndr_flags & NDR_BUFFERS) {
    1433             :         }
    1434       44699 :         return NDR_ERR_SUCCESS;
    1435             : }
    1436             : 
    1437       35830 : static enum ndr_err_code ndr_pull_DATA_BLOB_REM(struct ndr_pull *ndr, int ndr_flags, struct DATA_BLOB_REM *r)
    1438             : {
    1439       35830 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1440       35830 :         if (ndr_flags & NDR_SCALARS) {
    1441       35830 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    1442             :                 {
    1443       35830 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
    1444       35830 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1445       35830 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->remaining));
    1446       35830 :                         ndr->flags = _flags_save_DATA_BLOB;
    1447             :                 }
    1448       35830 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    1449             :         }
    1450       35830 :         if (ndr_flags & NDR_BUFFERS) {
    1451             :         }
    1452       35830 :         return NDR_ERR_SUCCESS;
    1453             : }
    1454             : 
    1455           0 : _PUBLIC_ void ndr_print_DATA_BLOB_REM(struct ndr_print *ndr, const char *name, const struct DATA_BLOB_REM *r)
    1456             : {
    1457           0 :         ndr_print_struct(ndr, name, "DATA_BLOB_REM");
    1458           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1459           0 :         ndr->depth++;
    1460             :         {
    1461           0 :                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
    1462           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1463           0 :                 ndr_print_DATA_BLOB(ndr, "remaining", r->remaining);
    1464           0 :                 ndr->flags = _flags_save_DATA_BLOB;
    1465             :         }
    1466           0 :         ndr->depth--;
    1467             : }
    1468             : 
    1469      115205 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_INFO(struct ndr_push *ndr, int ndr_flags, const union PAC_INFO *r)
    1470             : {
    1471             :         uint32_t level;
    1472      115205 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1473      115205 :         if (ndr_flags & NDR_SCALARS) {
    1474             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    1475      115205 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    1476      115205 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
    1477      115205 :                 switch (level) {
    1478       55953 :                         case PAC_TYPE_LOGON_INFO: {
    1479       55830 :                                 {
    1480             :                                         struct ndr_push *_ndr_logon_info;
    1481       55953 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_logon_info, 0xFFFFFC01, -1));
    1482       55953 :                                         NDR_CHECK(ndr_push_PAC_LOGON_INFO_CTR(_ndr_logon_info, NDR_SCALARS|NDR_BUFFERS, &r->logon_info));
    1483       55953 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_logon_info, 0xFFFFFC01, -1));
    1484             :                                 }
    1485       55953 :                         break; }
    1486             : 
    1487           0 :                         case PAC_TYPE_CREDENTIAL_INFO: {
    1488           0 :                                 NDR_CHECK(ndr_push_PAC_CREDENTIAL_INFO(ndr, NDR_SCALARS, &r->credential_info));
    1489           0 :                         break; }
    1490             : 
    1491         951 :                         case PAC_TYPE_SRV_CHECKSUM: {
    1492         951 :                                 NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->srv_cksum));
    1493         951 :                         break; }
    1494             : 
    1495         939 :                         case PAC_TYPE_KDC_CHECKSUM: {
    1496         939 :                                 NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->kdc_cksum));
    1497         939 :                         break; }
    1498             : 
    1499         975 :                         case PAC_TYPE_LOGON_NAME: {
    1500         975 :                                 NDR_CHECK(ndr_push_PAC_LOGON_NAME(ndr, NDR_SCALARS, &r->logon_name));
    1501         975 :                         break; }
    1502             : 
    1503          84 :                         case PAC_TYPE_CONSTRAINED_DELEGATION: {
    1504          78 :                                 {
    1505             :                                         struct ndr_push *_ndr_constrained_delegation;
    1506          84 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_constrained_delegation, 0xFFFFFC01, -1));
    1507          84 :                                         NDR_CHECK(ndr_push_PAC_CONSTRAINED_DELEGATION_CTR(_ndr_constrained_delegation, NDR_SCALARS|NDR_BUFFERS, &r->constrained_delegation));
    1508          84 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_constrained_delegation, 0xFFFFFC01, -1));
    1509             :                                 }
    1510          84 :                         break; }
    1511             : 
    1512       19985 :                         case PAC_TYPE_UPN_DNS_INFO: {
    1513       19985 :                                 NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO(ndr, NDR_SCALARS, &r->upn_dns_info));
    1514       19985 :                         break; }
    1515             : 
    1516         531 :                         case PAC_TYPE_TICKET_CHECKSUM: {
    1517         531 :                                 NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->ticket_checksum));
    1518         531 :                         break; }
    1519             : 
    1520       17603 :                         case PAC_TYPE_ATTRIBUTES_INFO: {
    1521       17603 :                                 NDR_CHECK(ndr_push_PAC_ATTRIBUTES_INFO(ndr, NDR_SCALARS, &r->attributes_info));
    1522       17603 :                         break; }
    1523             : 
    1524       17650 :                         case PAC_TYPE_REQUESTER_SID: {
    1525       17650 :                                 NDR_CHECK(ndr_push_PAC_REQUESTER_SID(ndr, NDR_SCALARS, &r->requester_sid));
    1526       17650 :                         break; }
    1527             : 
    1528         534 :                         case PAC_TYPE_FULL_CHECKSUM: {
    1529         534 :                                 NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->full_checksum));
    1530         534 :                         break; }
    1531             : 
    1532           0 :                         default: {
    1533           0 :                                 {
    1534             :                                         struct ndr_push *_ndr_unknown;
    1535           0 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_unknown, 0, -1));
    1536           0 :                                         NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_unknown, NDR_SCALARS, &r->unknown));
    1537           0 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_unknown, 0, -1));
    1538             :                                 }
    1539           0 :                         break; }
    1540             : 
    1541             :                 }
    1542           0 :         }
    1543      115205 :         if (ndr_flags & NDR_BUFFERS) {
    1544      115205 :                 if (!(ndr_flags & NDR_SCALARS)) {
    1545             :                         /* We didn't get it above, and the token is not needed after this. */
    1546           0 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    1547             :                 }
    1548      115205 :                 switch (level) {
    1549       55953 :                         case PAC_TYPE_LOGON_INFO:
    1550       55953 :                         break;
    1551             : 
    1552           0 :                         case PAC_TYPE_CREDENTIAL_INFO:
    1553           0 :                         break;
    1554             : 
    1555         951 :                         case PAC_TYPE_SRV_CHECKSUM:
    1556         951 :                         break;
    1557             : 
    1558         939 :                         case PAC_TYPE_KDC_CHECKSUM:
    1559         939 :                         break;
    1560             : 
    1561         975 :                         case PAC_TYPE_LOGON_NAME:
    1562         975 :                         break;
    1563             : 
    1564          84 :                         case PAC_TYPE_CONSTRAINED_DELEGATION:
    1565          84 :                         break;
    1566             : 
    1567       19985 :                         case PAC_TYPE_UPN_DNS_INFO:
    1568       19985 :                                 NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO(ndr, NDR_BUFFERS, &r->upn_dns_info));
    1569       19985 :                         break;
    1570             : 
    1571         531 :                         case PAC_TYPE_TICKET_CHECKSUM:
    1572         531 :                         break;
    1573             : 
    1574       17603 :                         case PAC_TYPE_ATTRIBUTES_INFO:
    1575       17603 :                         break;
    1576             : 
    1577       17650 :                         case PAC_TYPE_REQUESTER_SID:
    1578       17650 :                         break;
    1579             : 
    1580         534 :                         case PAC_TYPE_FULL_CHECKSUM:
    1581         534 :                         break;
    1582             : 
    1583           0 :                         default:
    1584           0 :                         break;
    1585             : 
    1586             :                 }
    1587           0 :         }
    1588      115205 :         return NDR_ERR_SUCCESS;
    1589             : }
    1590             : 
    1591      221760 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_INFO(struct ndr_pull *ndr, int ndr_flags, union PAC_INFO *r)
    1592             : {
    1593             :         uint32_t level;
    1594      221760 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1595      221760 :         if (ndr_flags & NDR_SCALARS) {
    1596             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    1597      221760 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    1598      221760 :                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
    1599      221760 :                 switch (level) {
    1600       67928 :                         case PAC_TYPE_LOGON_INFO: {
    1601       61824 :                                 {
    1602             :                                         struct ndr_pull *_ndr_logon_info;
    1603       67928 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_logon_info, 0xFFFFFC01, -1));
    1604       67928 :                                         NDR_CHECK(ndr_pull_PAC_LOGON_INFO_CTR(_ndr_logon_info, NDR_SCALARS|NDR_BUFFERS, &r->logon_info));
    1605       67928 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_logon_info, 0xFFFFFC01, -1));
    1606             :                                 }
    1607       67928 :                         break; }
    1608             : 
    1609           0 :                         case PAC_TYPE_CREDENTIAL_INFO: {
    1610           0 :                                 NDR_CHECK(ndr_pull_PAC_CREDENTIAL_INFO(ndr, NDR_SCALARS, &r->credential_info));
    1611           0 :                         break; }
    1612             : 
    1613        8842 :                         case PAC_TYPE_SRV_CHECKSUM: {
    1614        8842 :                                 NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->srv_cksum));
    1615        8842 :                         break; }
    1616             : 
    1617        8842 :                         case PAC_TYPE_KDC_CHECKSUM: {
    1618        8842 :                                 NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->kdc_cksum));
    1619        8842 :                         break; }
    1620             : 
    1621        8842 :                         case PAC_TYPE_LOGON_NAME: {
    1622        8842 :                                 NDR_CHECK(ndr_pull_PAC_LOGON_NAME(ndr, NDR_SCALARS, &r->logon_name));
    1623        8842 :                         break; }
    1624             : 
    1625          80 :                         case PAC_TYPE_CONSTRAINED_DELEGATION: {
    1626          80 :                                 {
    1627             :                                         struct ndr_pull *_ndr_constrained_delegation;
    1628          80 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_constrained_delegation, 0xFFFFFC01, -1));
    1629          80 :                                         NDR_CHECK(ndr_pull_PAC_CONSTRAINED_DELEGATION_CTR(_ndr_constrained_delegation, NDR_SCALARS|NDR_BUFFERS, &r->constrained_delegation));
    1630          80 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_constrained_delegation, 0xFFFFFC01, -1));
    1631             :                                 }
    1632          80 :                         break; }
    1633             : 
    1634       67593 :                         case PAC_TYPE_UPN_DNS_INFO: {
    1635       67593 :                                 NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO(ndr, NDR_SCALARS, &r->upn_dns_info));
    1636       67593 :                         break; }
    1637             : 
    1638        4004 :                         case PAC_TYPE_TICKET_CHECKSUM: {
    1639        4004 :                                 NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->ticket_checksum));
    1640        4004 :                         break; }
    1641             : 
    1642       15209 :                         case PAC_TYPE_ATTRIBUTES_INFO: {
    1643       15209 :                                 NDR_CHECK(ndr_pull_PAC_ATTRIBUTES_INFO(ndr, NDR_SCALARS, &r->attributes_info));
    1644       15209 :                         break; }
    1645             : 
    1646       36416 :                         case PAC_TYPE_REQUESTER_SID: {
    1647       36416 :                                 NDR_CHECK(ndr_pull_PAC_REQUESTER_SID(ndr, NDR_SCALARS, &r->requester_sid));
    1648       36416 :                         break; }
    1649             : 
    1650        4004 :                         case PAC_TYPE_FULL_CHECKSUM: {
    1651        4004 :                                 NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->full_checksum));
    1652        4004 :                         break; }
    1653             : 
    1654           0 :                         default: {
    1655           0 :                                 {
    1656             :                                         struct ndr_pull *_ndr_unknown;
    1657           0 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_unknown, 0, -1));
    1658           0 :                                         NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_unknown, NDR_SCALARS, &r->unknown));
    1659           0 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_unknown, 0, -1));
    1660             :                                 }
    1661           0 :                         break; }
    1662             : 
    1663             :                 }
    1664           0 :         }
    1665      221760 :         if (ndr_flags & NDR_BUFFERS) {
    1666      221760 :                 if (!(ndr_flags & NDR_SCALARS)) {
    1667             :                         /* We didn't get it above, and the token is not needed after this. */
    1668           0 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    1669             :                 }
    1670      221760 :                 switch (level) {
    1671       67928 :                         case PAC_TYPE_LOGON_INFO:
    1672       67928 :                         break;
    1673             : 
    1674           0 :                         case PAC_TYPE_CREDENTIAL_INFO:
    1675           0 :                         break;
    1676             : 
    1677        8842 :                         case PAC_TYPE_SRV_CHECKSUM:
    1678        8842 :                         break;
    1679             : 
    1680        8842 :                         case PAC_TYPE_KDC_CHECKSUM:
    1681        8842 :                         break;
    1682             : 
    1683        8842 :                         case PAC_TYPE_LOGON_NAME:
    1684        8842 :                         break;
    1685             : 
    1686          80 :                         case PAC_TYPE_CONSTRAINED_DELEGATION:
    1687          80 :                         break;
    1688             : 
    1689       67593 :                         case PAC_TYPE_UPN_DNS_INFO:
    1690       67593 :                                 NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO(ndr, NDR_BUFFERS, &r->upn_dns_info));
    1691       67593 :                         break;
    1692             : 
    1693        4004 :                         case PAC_TYPE_TICKET_CHECKSUM:
    1694        4004 :                         break;
    1695             : 
    1696       15209 :                         case PAC_TYPE_ATTRIBUTES_INFO:
    1697       15209 :                         break;
    1698             : 
    1699       36416 :                         case PAC_TYPE_REQUESTER_SID:
    1700       36416 :                         break;
    1701             : 
    1702        4004 :                         case PAC_TYPE_FULL_CHECKSUM:
    1703        4004 :                         break;
    1704             : 
    1705           0 :                         default:
    1706           0 :                         break;
    1707             : 
    1708             :                 }
    1709           0 :         }
    1710      221760 :         return NDR_ERR_SUCCESS;
    1711             : }
    1712             : 
    1713           0 : _PUBLIC_ void ndr_print_PAC_INFO(struct ndr_print *ndr, const char *name, const union PAC_INFO *r)
    1714             : {
    1715             :         uint32_t level;
    1716           0 :         level = ndr_print_steal_switch_value(ndr, r);
    1717           0 :         ndr_print_union(ndr, name, level, "PAC_INFO");
    1718           0 :         switch (level) {
    1719           0 :                 case PAC_TYPE_LOGON_INFO:
    1720           0 :                         ndr_print_PAC_LOGON_INFO_CTR(ndr, "logon_info", &r->logon_info);
    1721           0 :                 break;
    1722             : 
    1723           0 :                 case PAC_TYPE_CREDENTIAL_INFO:
    1724           0 :                         ndr_print_PAC_CREDENTIAL_INFO(ndr, "credential_info", &r->credential_info);
    1725           0 :                 break;
    1726             : 
    1727           0 :                 case PAC_TYPE_SRV_CHECKSUM:
    1728           0 :                         ndr_print_PAC_SIGNATURE_DATA(ndr, "srv_cksum", &r->srv_cksum);
    1729           0 :                 break;
    1730             : 
    1731           0 :                 case PAC_TYPE_KDC_CHECKSUM:
    1732           0 :                         ndr_print_PAC_SIGNATURE_DATA(ndr, "kdc_cksum", &r->kdc_cksum);
    1733           0 :                 break;
    1734             : 
    1735           0 :                 case PAC_TYPE_LOGON_NAME:
    1736           0 :                         ndr_print_PAC_LOGON_NAME(ndr, "logon_name", &r->logon_name);
    1737           0 :                 break;
    1738             : 
    1739           0 :                 case PAC_TYPE_CONSTRAINED_DELEGATION:
    1740           0 :                         ndr_print_PAC_CONSTRAINED_DELEGATION_CTR(ndr, "constrained_delegation", &r->constrained_delegation);
    1741           0 :                 break;
    1742             : 
    1743           0 :                 case PAC_TYPE_UPN_DNS_INFO:
    1744           0 :                         ndr_print_PAC_UPN_DNS_INFO(ndr, "upn_dns_info", &r->upn_dns_info);
    1745           0 :                 break;
    1746             : 
    1747           0 :                 case PAC_TYPE_TICKET_CHECKSUM:
    1748           0 :                         ndr_print_PAC_SIGNATURE_DATA(ndr, "ticket_checksum", &r->ticket_checksum);
    1749           0 :                 break;
    1750             : 
    1751           0 :                 case PAC_TYPE_ATTRIBUTES_INFO:
    1752           0 :                         ndr_print_PAC_ATTRIBUTES_INFO(ndr, "attributes_info", &r->attributes_info);
    1753           0 :                 break;
    1754             : 
    1755           0 :                 case PAC_TYPE_REQUESTER_SID:
    1756           0 :                         ndr_print_PAC_REQUESTER_SID(ndr, "requester_sid", &r->requester_sid);
    1757           0 :                 break;
    1758             : 
    1759           0 :                 case PAC_TYPE_FULL_CHECKSUM:
    1760           0 :                         ndr_print_PAC_SIGNATURE_DATA(ndr, "full_checksum", &r->full_checksum);
    1761           0 :                 break;
    1762             : 
    1763           0 :                 default:
    1764           0 :                         ndr_print_DATA_BLOB_REM(ndr, "unknown", &r->unknown);
    1765           0 :                 break;
    1766             : 
    1767             :         }
    1768           0 : }
    1769             : 
    1770        4558 : _PUBLIC_ size_t ndr_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, int flags)
    1771             : {
    1772        4558 :         return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_PAC_INFO);
    1773             : }
    1774             : 
    1775           0 : static void ndr_print_flags_PAC_BUFFER(struct ndr_print *ndr, const char *name, int unused, const struct PAC_BUFFER *r)
    1776             : {
    1777           0 :         ndr_print_PAC_BUFFER(ndr, name, r);
    1778           0 : }
    1779             : 
    1780           0 : _PUBLIC_ void ndr_print_PAC_BUFFER(struct ndr_print *ndr, const char *name, const struct PAC_BUFFER *r)
    1781             : {
    1782           0 :         ndr_print_struct(ndr, name, "PAC_BUFFER");
    1783           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1784           0 :         ndr->depth++;
    1785           0 :         ndr_print_PAC_TYPE(ndr, "type", r->type);
    1786           0 :         ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_PAC_INFO(r->info, r->type, LIBNDR_FLAG_ALIGN8):r->_ndr_size);
    1787             :         {
    1788           0 :                 uint32_t _flags_save_PAC_INFO = ndr->flags;
    1789           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
    1790           0 :                 ndr_print_ptr(ndr, "info", r->info);
    1791           0 :                 ndr->depth++;
    1792           0 :                 if (r->info) {
    1793           0 :                         ndr_print_set_switch_value(ndr, r->info, r->type);
    1794           0 :                         ndr_print_PAC_INFO(ndr, "info", r->info);
    1795             :                 }
    1796           0 :                 ndr->depth--;
    1797           0 :                 ndr->flags = _flags_save_PAC_INFO;
    1798             :         }
    1799           0 :         ndr_print_uint32(ndr, "_pad", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->_pad);
    1800           0 :         ndr->depth--;
    1801             : }
    1802             : 
    1803         325 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_DATA(struct ndr_push *ndr, int ndr_flags, const struct PAC_DATA *r)
    1804             : {
    1805             :         uint32_t cntr_buffers_0;
    1806         325 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1807         325 :         if (ndr_flags & NDR_SCALARS) {
    1808         325 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    1809         325 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_buffers));
    1810         325 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
    1811        2604 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
    1812        2279 :                         NDR_CHECK(ndr_push_PAC_BUFFER(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
    1813             :                 }
    1814         325 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1815             :         }
    1816         325 :         if (ndr_flags & NDR_BUFFERS) {
    1817        2604 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
    1818        2279 :                         NDR_CHECK(ndr_push_PAC_BUFFER(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
    1819             :                 }
    1820             :         }
    1821         325 :         return NDR_ERR_SUCCESS;
    1822             : }
    1823             : 
    1824        8842 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_DATA(struct ndr_pull *ndr, int ndr_flags, struct PAC_DATA *r)
    1825             : {
    1826        8842 :         uint32_t size_buffers_0 = 0;
    1827             :         uint32_t cntr_buffers_0;
    1828        8842 :         TALLOC_CTX *_mem_save_buffers_0 = NULL;
    1829        8842 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1830        8842 :         if (ndr_flags & NDR_SCALARS) {
    1831        8842 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1832        8842 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers));
    1833        8842 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
    1834        8842 :                 size_buffers_0 = r->num_buffers;
    1835        8842 :                 NDR_PULL_ALLOC_N(ndr, r->buffers, size_buffers_0);
    1836        8842 :                 _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1837        8842 :                 NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
    1838       61803 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
    1839       52961 :                         NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
    1840             :                 }
    1841        8842 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
    1842        8842 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1843             :         }
    1844        8842 :         if (ndr_flags & NDR_BUFFERS) {
    1845        8842 :                 size_buffers_0 = r->num_buffers;
    1846        8842 :                 _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1847        8842 :                 NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
    1848       61803 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
    1849       52961 :                         NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
    1850             :                 }
    1851        8842 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
    1852       19340 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
    1853             :                 }
    1854             :         }
    1855        8842 :         return NDR_ERR_SUCCESS;
    1856             : }
    1857             : 
    1858           0 : static void ndr_print_flags_PAC_DATA(struct ndr_print *ndr, const char *name, int unused, const struct PAC_DATA *r)
    1859             : {
    1860           0 :         ndr_print_PAC_DATA(ndr, name, r);
    1861           0 : }
    1862             : 
    1863           0 : _PUBLIC_ void ndr_print_PAC_DATA(struct ndr_print *ndr, const char *name, const struct PAC_DATA *r)
    1864             : {
    1865             :         uint32_t cntr_buffers_0;
    1866           0 :         ndr_print_struct(ndr, name, "PAC_DATA");
    1867           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1868           0 :         ndr->depth++;
    1869           0 :         ndr_print_uint32(ndr, "num_buffers", r->num_buffers);
    1870           0 :         ndr_print_uint32(ndr, "version", r->version);
    1871           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "buffers", (int)r->num_buffers);
    1872           0 :         ndr->depth++;
    1873           0 :         for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
    1874           0 :                 ndr_print_PAC_BUFFER(ndr, "buffers", &r->buffers[cntr_buffers_0]);
    1875             :         }
    1876           0 :         ndr->depth--;
    1877           0 :         ndr->depth--;
    1878             : }
    1879             : 
    1880       89398 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_BUFFER_RAW(struct ndr_push *ndr, int ndr_flags, const struct PAC_BUFFER_RAW *r)
    1881             : {
    1882       89398 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1883       89398 :         if (ndr_flags & NDR_SCALARS) {
    1884       44699 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    1885       44699 :                 NDR_CHECK(ndr_push_PAC_TYPE(ndr, NDR_SCALARS, r->type));
    1886       44699 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ndr_size));
    1887             :                 {
    1888       44699 :                         uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
    1889       44699 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
    1890       44699 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->info));
    1891       44699 :                         ndr->flags = _flags_save_DATA_BLOB_REM;
    1892             :                 }
    1893       44699 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
    1894       44699 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1895             :         }
    1896       89398 :         if (ndr_flags & NDR_BUFFERS) {
    1897             :                 {
    1898       44699 :                         uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
    1899       44699 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
    1900       44699 :                         if (r->info) {
    1901       44699 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->info));
    1902             :                                 {
    1903             :                                         struct ndr_push *_ndr_info;
    1904       44699 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
    1905       44699 :                                         NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_info, NDR_SCALARS, r->info));
    1906       44699 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
    1907             :                                 }
    1908       44699 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->info));
    1909             :                         }
    1910       44699 :                         ndr->flags = _flags_save_DATA_BLOB_REM;
    1911             :                 }
    1912             :         }
    1913       89398 :         return NDR_ERR_SUCCESS;
    1914             : }
    1915             : 
    1916       71660 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_BUFFER_RAW(struct ndr_pull *ndr, int ndr_flags, struct PAC_BUFFER_RAW *r)
    1917             : {
    1918             :         uint32_t _ptr_info;
    1919       71660 :         TALLOC_CTX *_mem_save_info_0 = NULL;
    1920       71660 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1921       71660 :         if (ndr_flags & NDR_SCALARS) {
    1922       35830 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1923       35830 :                 NDR_CHECK(ndr_pull_PAC_TYPE(ndr, NDR_SCALARS, &r->type));
    1924       35830 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ndr_size));
    1925             :                 {
    1926       35830 :                         uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
    1927       35830 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
    1928       35830 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
    1929       35830 :                         if (_ptr_info) {
    1930       35830 :                                 NDR_PULL_ALLOC(ndr, r->info);
    1931       35830 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->info, _ptr_info));
    1932             :                         } else {
    1933           0 :                                 r->info = NULL;
    1934             :                         }
    1935       35830 :                         ndr->flags = _flags_save_DATA_BLOB_REM;
    1936             :                 }
    1937       35830 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_pad));
    1938       35830 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1939             :         }
    1940       71660 :         if (ndr_flags & NDR_BUFFERS) {
    1941             :                 {
    1942       35830 :                         uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
    1943       35830 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
    1944       35830 :                         if (r->info) {
    1945             :                                 uint32_t _relative_save_offset;
    1946       35830 :                                 _relative_save_offset = ndr->offset;
    1947       35830 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->info));
    1948       35830 :                                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1949       35830 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
    1950             :                                 {
    1951             :                                         struct ndr_pull *_ndr_info;
    1952       35830 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
    1953       35830 :                                         NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_info, NDR_SCALARS, r->info));
    1954       35830 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
    1955             :                                 }
    1956       35830 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
    1957       35830 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    1958       35830 :                                         ndr->relative_highest_offset = ndr->offset;
    1959             :                                 }
    1960       35830 :                                 ndr->offset = _relative_save_offset;
    1961             :                         }
    1962       35830 :                         ndr->flags = _flags_save_DATA_BLOB_REM;
    1963             :                 }
    1964             :         }
    1965       71660 :         return NDR_ERR_SUCCESS;
    1966             : }
    1967             : 
    1968           0 : static void ndr_print_flags_PAC_BUFFER_RAW(struct ndr_print *ndr, const char *name, int unused, const struct PAC_BUFFER_RAW *r)
    1969             : {
    1970           0 :         ndr_print_PAC_BUFFER_RAW(ndr, name, r);
    1971           0 : }
    1972             : 
    1973           0 : _PUBLIC_ void ndr_print_PAC_BUFFER_RAW(struct ndr_print *ndr, const char *name, const struct PAC_BUFFER_RAW *r)
    1974             : {
    1975           0 :         ndr_print_struct(ndr, name, "PAC_BUFFER_RAW");
    1976           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1977           0 :         ndr->depth++;
    1978           0 :         ndr_print_PAC_TYPE(ndr, "type", r->type);
    1979           0 :         ndr_print_uint32(ndr, "ndr_size", r->ndr_size);
    1980             :         {
    1981           0 :                 uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
    1982           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
    1983           0 :                 ndr_print_ptr(ndr, "info", r->info);
    1984           0 :                 ndr->depth++;
    1985           0 :                 if (r->info) {
    1986           0 :                         ndr_print_DATA_BLOB_REM(ndr, "info", r->info);
    1987             :                 }
    1988           0 :                 ndr->depth--;
    1989           0 :                 ndr->flags = _flags_save_DATA_BLOB_REM;
    1990             :         }
    1991           0 :         ndr_print_uint32(ndr, "_pad", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->_pad);
    1992           0 :         ndr->depth--;
    1993             : }
    1994             : 
    1995        7324 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_DATA_RAW(struct ndr_push *ndr, int ndr_flags, const struct PAC_DATA_RAW *r)
    1996             : {
    1997             :         uint32_t cntr_buffers_0;
    1998        7324 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1999        7324 :         if (ndr_flags & NDR_SCALARS) {
    2000        7324 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    2001        7324 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_buffers));
    2002        7324 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
    2003       52023 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
    2004       44699 :                         NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
    2005             :                 }
    2006        7324 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    2007             :         }
    2008        7324 :         if (ndr_flags & NDR_BUFFERS) {
    2009       52023 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
    2010       44699 :                         NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
    2011             :                 }
    2012             :         }
    2013        7324 :         return NDR_ERR_SUCCESS;
    2014             : }
    2015             : 
    2016        6062 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_DATA_RAW(struct ndr_pull *ndr, int ndr_flags, struct PAC_DATA_RAW *r)
    2017             : {
    2018        6062 :         uint32_t size_buffers_0 = 0;
    2019             :         uint32_t cntr_buffers_0;
    2020        6062 :         TALLOC_CTX *_mem_save_buffers_0 = NULL;
    2021        6062 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    2022        6062 :         if (ndr_flags & NDR_SCALARS) {
    2023        6062 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    2024        6062 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers));
    2025        6062 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
    2026        6062 :                 size_buffers_0 = r->num_buffers;
    2027        6062 :                 NDR_PULL_ALLOC_N(ndr, r->buffers, size_buffers_0);
    2028        6062 :                 _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2029        6062 :                 NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
    2030       41892 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
    2031       35830 :                         NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
    2032             :                 }
    2033        6062 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
    2034        6062 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    2035             :         }
    2036        6062 :         if (ndr_flags & NDR_BUFFERS) {
    2037        6062 :                 size_buffers_0 = r->num_buffers;
    2038        6062 :                 _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2039        6062 :                 NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
    2040       41892 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
    2041       35830 :                         NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
    2042             :                 }
    2043        6062 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
    2044       15650 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
    2045             :                 }
    2046             :         }
    2047        6062 :         return NDR_ERR_SUCCESS;
    2048             : }
    2049             : 
    2050           0 : static void ndr_print_flags_PAC_DATA_RAW(struct ndr_print *ndr, const char *name, int unused, const struct PAC_DATA_RAW *r)
    2051             : {
    2052           0 :         ndr_print_PAC_DATA_RAW(ndr, name, r);
    2053           0 : }
    2054             : 
    2055           0 : _PUBLIC_ void ndr_print_PAC_DATA_RAW(struct ndr_print *ndr, const char *name, const struct PAC_DATA_RAW *r)
    2056             : {
    2057             :         uint32_t cntr_buffers_0;
    2058           0 :         ndr_print_struct(ndr, name, "PAC_DATA_RAW");
    2059           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    2060           0 :         ndr->depth++;
    2061           0 :         ndr_print_uint32(ndr, "num_buffers", r->num_buffers);
    2062           0 :         ndr_print_uint32(ndr, "version", r->version);
    2063           0 :         ndr->print(ndr, "%s: ARRAY(%d)", "buffers", (int)r->num_buffers);
    2064           0 :         ndr->depth++;
    2065           0 :         for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
    2066           0 :                 ndr_print_PAC_BUFFER_RAW(ndr, "buffers", &r->buffers[cntr_buffers_0]);
    2067             :         }
    2068           0 :         ndr->depth--;
    2069           0 :         ndr->depth--;
    2070             : }
    2071             : 
    2072          72 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_Validate(struct ndr_push *ndr, int ndr_flags, const struct PAC_Validate *r)
    2073             : {
    2074          72 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    2075          72 :         if (ndr_flags & NDR_SCALARS) {
    2076          72 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    2077          72 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, NETLOGON_GENERIC_KRB5_PAC_VALIDATE));
    2078          72 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ChecksumLength));
    2079          72 :                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->SignatureType));
    2080          72 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SignatureLength));
    2081             :                 {
    2082          72 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
    2083          72 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    2084          72 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->ChecksumAndSignature));
    2085          72 :                         ndr->flags = _flags_save_DATA_BLOB;
    2086             :                 }
    2087          72 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    2088             :         }
    2089          72 :         if (ndr_flags & NDR_BUFFERS) {
    2090             :         }
    2091          72 :         return NDR_ERR_SUCCESS;
    2092             : }
    2093             : 
    2094         120 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_Validate(struct ndr_pull *ndr, int ndr_flags, struct PAC_Validate *r)
    2095             : {
    2096         120 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    2097         120 :         if (ndr_flags & NDR_SCALARS) {
    2098         120 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    2099         120 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MessageType));
    2100         120 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ChecksumLength));
    2101         120 :                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->SignatureType));
    2102         120 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SignatureLength));
    2103             :                 {
    2104         120 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
    2105         120 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    2106         120 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->ChecksumAndSignature));
    2107         120 :                         ndr->flags = _flags_save_DATA_BLOB;
    2108             :                 }
    2109         120 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    2110             :         }
    2111         120 :         if (ndr_flags & NDR_BUFFERS) {
    2112             :         }
    2113         120 :         return NDR_ERR_SUCCESS;
    2114             : }
    2115             : 
    2116           0 : static void ndr_print_flags_PAC_Validate(struct ndr_print *ndr, const char *name, int unused, const struct PAC_Validate *r)
    2117             : {
    2118           0 :         ndr_print_PAC_Validate(ndr, name, r);
    2119           0 : }
    2120             : 
    2121           0 : _PUBLIC_ void ndr_print_PAC_Validate(struct ndr_print *ndr, const char *name, const struct PAC_Validate *r)
    2122             : {
    2123           0 :         ndr_print_struct(ndr, name, "PAC_Validate");
    2124           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    2125           0 :         ndr->depth++;
    2126           0 :         ndr_print_uint32(ndr, "MessageType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NETLOGON_GENERIC_KRB5_PAC_VALIDATE:r->MessageType);
    2127           0 :         ndr_print_uint32(ndr, "ChecksumLength", r->ChecksumLength);
    2128           0 :         ndr_print_int32(ndr, "SignatureType", r->SignatureType);
    2129           0 :         ndr_print_uint32(ndr, "SignatureLength", r->SignatureLength);
    2130             :         {
    2131           0 :                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
    2132           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    2133           0 :                 ndr_print_DATA_BLOB(ndr, "ChecksumAndSignature", r->ChecksumAndSignature);
    2134           0 :                 ndr->flags = _flags_save_DATA_BLOB;
    2135             :         }
    2136           0 :         ndr->depth--;
    2137             : }
    2138             : 
    2139         615 : _PUBLIC_ enum ndr_err_code ndr_push_netsamlogoncache_entry(struct ndr_push *ndr, int ndr_flags, const struct netsamlogoncache_entry *r)
    2140             : {
    2141         615 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    2142         615 :         if (ndr_flags & NDR_SCALARS) {
    2143         615 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    2144         615 :                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
    2145         615 :                 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
    2146         615 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    2147             :         }
    2148         615 :         if (ndr_flags & NDR_BUFFERS) {
    2149         615 :                 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
    2150             :         }
    2151         615 :         return NDR_ERR_SUCCESS;
    2152             : }
    2153             : 
    2154        2121 : _PUBLIC_ enum ndr_err_code ndr_pull_netsamlogoncache_entry(struct ndr_pull *ndr, int ndr_flags, struct netsamlogoncache_entry *r)
    2155             : {
    2156        2121 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    2157        2121 :         if (ndr_flags & NDR_SCALARS) {
    2158        2121 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    2159        2121 :                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
    2160        2121 :                 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
    2161        2121 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    2162             :         }
    2163        2121 :         if (ndr_flags & NDR_BUFFERS) {
    2164        2121 :                 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
    2165             :         }
    2166        2121 :         return NDR_ERR_SUCCESS;
    2167             : }
    2168             : 
    2169           0 : static void ndr_print_flags_netsamlogoncache_entry(struct ndr_print *ndr, const char *name, int unused, const struct netsamlogoncache_entry *r)
    2170             : {
    2171           0 :         ndr_print_netsamlogoncache_entry(ndr, name, r);
    2172           0 : }
    2173             : 
    2174           0 : _PUBLIC_ void ndr_print_netsamlogoncache_entry(struct ndr_print *ndr, const char *name, const struct netsamlogoncache_entry *r)
    2175             : {
    2176           0 :         ndr_print_struct(ndr, name, "netsamlogoncache_entry");
    2177           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    2178           0 :         ndr->depth++;
    2179           0 :         ndr_print_time_t(ndr, "timestamp", r->timestamp);
    2180           0 :         ndr_print_netr_SamInfo3(ndr, "info3", &r->info3);
    2181           0 :         ndr->depth--;
    2182             : }
    2183             : 
    2184             : #ifndef SKIP_NDR_TABLE_krb5pac
    2185             : static const struct ndr_interface_public_struct krb5pac_public_structs[] = {
    2186             :         {
    2187             :                 .name = "PAC_SIGNATURE_DATA",
    2188             :                 .struct_size = sizeof(struct PAC_SIGNATURE_DATA ),
    2189             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_SIGNATURE_DATA,
    2190             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_SIGNATURE_DATA,
    2191             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_SIGNATURE_DATA,
    2192             :         },
    2193             :         {
    2194             :                 .name = "PAC_CREDENTIAL_NTLM_SECPKG",
    2195             :                 .struct_size = sizeof(struct PAC_CREDENTIAL_NTLM_SECPKG ),
    2196             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_NTLM_SECPKG,
    2197             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_NTLM_SECPKG,
    2198             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_NTLM_SECPKG,
    2199             :         },
    2200             :         {
    2201             :                 .name = "PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG",
    2202             :                 .struct_size = sizeof(struct PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG ),
    2203             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG,
    2204             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG,
    2205             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG,
    2206             :         },
    2207             :         {
    2208             :                 .name = "PAC_CREDENTIAL_DATA",
    2209             :                 .struct_size = sizeof(struct PAC_CREDENTIAL_DATA ),
    2210             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_DATA,
    2211             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_DATA,
    2212             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_DATA,
    2213             :         },
    2214             :         {
    2215             :                 .name = "PAC_CREDENTIAL_DATA_CTR",
    2216             :                 .struct_size = sizeof(struct PAC_CREDENTIAL_DATA_CTR ),
    2217             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_DATA_CTR,
    2218             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_DATA_CTR,
    2219             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_DATA_CTR,
    2220             :         },
    2221             :         {
    2222             :                 .name = "PAC_CREDENTIAL_DATA_NDR",
    2223             :                 .struct_size = sizeof(struct PAC_CREDENTIAL_DATA_NDR ),
    2224             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_DATA_NDR,
    2225             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_DATA_NDR,
    2226             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_DATA_NDR,
    2227             :         },
    2228             :         {
    2229             :                 .name = "PAC_CREDENTIAL_INFO",
    2230             :                 .struct_size = sizeof(struct PAC_CREDENTIAL_INFO ),
    2231             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_INFO,
    2232             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_INFO,
    2233             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_INFO,
    2234             :         },
    2235             :         {
    2236             :                 .name = "PAC_LOGON_INFO_CTR",
    2237             :                 .struct_size = sizeof(struct PAC_LOGON_INFO_CTR ),
    2238             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_LOGON_INFO_CTR,
    2239             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_LOGON_INFO_CTR,
    2240             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_LOGON_INFO_CTR,
    2241             :         },
    2242             :         {
    2243             :                 .name = "PAC_CONSTRAINED_DELEGATION_CTR",
    2244             :                 .struct_size = sizeof(struct PAC_CONSTRAINED_DELEGATION_CTR ),
    2245             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CONSTRAINED_DELEGATION_CTR,
    2246             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CONSTRAINED_DELEGATION_CTR,
    2247             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CONSTRAINED_DELEGATION_CTR,
    2248             :         },
    2249             :         {
    2250             :                 .name = "PAC_BUFFER",
    2251             :                 .struct_size = sizeof(struct PAC_BUFFER ),
    2252             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_BUFFER,
    2253             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_BUFFER,
    2254             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_BUFFER,
    2255             :         },
    2256             :         {
    2257             :                 .name = "PAC_DATA",
    2258             :                 .struct_size = sizeof(struct PAC_DATA ),
    2259             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_DATA,
    2260             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_DATA,
    2261             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_DATA,
    2262             :         },
    2263             :         {
    2264             :                 .name = "PAC_BUFFER_RAW",
    2265             :                 .struct_size = sizeof(struct PAC_BUFFER_RAW ),
    2266             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_BUFFER_RAW,
    2267             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_BUFFER_RAW,
    2268             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_BUFFER_RAW,
    2269             :         },
    2270             :         {
    2271             :                 .name = "PAC_DATA_RAW",
    2272             :                 .struct_size = sizeof(struct PAC_DATA_RAW ),
    2273             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_DATA_RAW,
    2274             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_DATA_RAW,
    2275             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_DATA_RAW,
    2276             :         },
    2277             :         {
    2278             :                 .name = "PAC_Validate",
    2279             :                 .struct_size = sizeof(struct PAC_Validate ),
    2280             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_Validate,
    2281             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_Validate,
    2282             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_Validate,
    2283             :         },
    2284             :         {
    2285             :                 .name = "netsamlogoncache_entry",
    2286             :                 .struct_size = sizeof(struct netsamlogoncache_entry ),
    2287             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_netsamlogoncache_entry,
    2288             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_netsamlogoncache_entry,
    2289             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_netsamlogoncache_entry,
    2290             :         },
    2291             :         { .name = NULL }
    2292             : };
    2293             : 
    2294             : static const struct ndr_interface_call krb5pac_calls[] = {
    2295             :         { .name = NULL }
    2296             : };
    2297             : 
    2298             : static const char * const krb5pac_endpoint_strings[] = {
    2299             :         "ncacn_np:[\\pipe\\krb5pac]", 
    2300             : };
    2301             : 
    2302             : static const struct ndr_interface_string_array krb5pac_endpoints = {
    2303             :         .count  = 1,
    2304             :         .names  = krb5pac_endpoint_strings
    2305             : };
    2306             : 
    2307             : static const char * const krb5pac_authservice_strings[] = {
    2308             :         "host", 
    2309             : };
    2310             : 
    2311             : static const struct ndr_interface_string_array krb5pac_authservices = {
    2312             :         .count  = 1,
    2313             :         .names  = krb5pac_authservice_strings
    2314             : };
    2315             : 
    2316             : 
    2317             : const struct ndr_interface_table ndr_table_krb5pac = {
    2318             :         .name           = "krb5pac",
    2319             :         .syntax_id      = {
    2320             :                 {0x12345778,0x1234,0xabcd,{0x00,0x00},{0x00,0x00,0x00,0x00}},
    2321             :                 NDR_KRB5PAC_VERSION
    2322             :         },
    2323             :         .helpstring     = NDR_KRB5PAC_HELPSTRING,
    2324             :         .num_calls      = 0,
    2325             :         .calls          = krb5pac_calls,
    2326             :         .num_public_structs     = 15,
    2327             :         .public_structs         = krb5pac_public_structs,
    2328             :         .endpoints      = &krb5pac_endpoints,
    2329             :         .authservices   = &krb5pac_authservices
    2330             : };
    2331             : 
    2332             : #endif /* SKIP_NDR_TABLE_krb5pac */

Generated by: LCOV version 1.13