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 abartlet/fix-coverage dd10fb34 Lines: 1021 1181 86.5 %
Date: 2021-09-23 10:06:22 Functions: 71 90 78.9 %

          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          36 : 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          36 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
      13          36 :         if (ndr_flags & NDR_SCALARS) {
      14          36 :                 NDR_CHECK(ndr_push_align(ndr, 4));
      15          36 :                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->logon_time));
      16          36 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->account_name)));
      17          36 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, 2 * strlen_m(r->account_name), sizeof(uint8_t), CH_UTF16));
      18          36 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
      19             :         }
      20           0 :         if (ndr_flags & NDR_BUFFERS) {
      21             :         }
      22           0 :         return NDR_ERR_SUCCESS;
      23             : }
      24             : 
      25        3864 : static enum ndr_err_code ndr_pull_PAC_LOGON_NAME(struct ndr_pull *ndr, int ndr_flags, struct PAC_LOGON_NAME *r)
      26             : {
      27        3864 :         uint32_t size_account_name_0 = 0;
      28        3864 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
      29        3864 :         if (ndr_flags & NDR_SCALARS) {
      30        3864 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
      31        3864 :                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->logon_time));
      32        3864 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
      33        3864 :                 size_account_name_0 = r->size;
      34        3864 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, size_account_name_0, sizeof(uint8_t), CH_UTF16));
      35        3864 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
      36             :         }
      37        3846 :         if (ndr_flags & NDR_BUFFERS) {
      38             :         }
      39        3864 :         return NDR_ERR_SUCCESS;
      40             : }
      41             : 
      42          11 : _PUBLIC_ void ndr_print_PAC_LOGON_NAME(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_NAME *r)
      43             : {
      44          11 :         ndr_print_struct(ndr, name, "PAC_LOGON_NAME");
      45          11 :         if (r == NULL) { ndr_print_null(ndr); return; }
      46          11 :         ndr->depth++;
      47          11 :         ndr_print_NTTIME(ndr, "logon_time", r->logon_time);
      48          11 :         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m(r->account_name):r->size);
      49          11 :         ndr_print_string(ndr, "account_name", r->account_name);
      50          11 :         ndr->depth--;
      51             : }
      52             : 
      53        7666 : _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        7666 :                 uint32_t _flags_save_STRUCT = ndr->flags;
      57        7666 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
      58        7666 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
      59        7666 :                 if (ndr_flags & NDR_SCALARS) {
      60        7666 :                         NDR_CHECK(ndr_push_align(ndr, 4));
      61        7666 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->type));
      62             :                         {
      63        7666 :                                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
      64        7666 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
      65        7666 :                                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->signature));
      66        7666 :                                 ndr->flags = _flags_save_DATA_BLOB;
      67             :                         }
      68        7666 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 4));
      69             :                 }
      70        7580 :                 if (ndr_flags & NDR_BUFFERS) {
      71             :                 }
      72        7666 :                 ndr->flags = _flags_save_STRUCT;
      73             :         }
      74        7666 :         return NDR_ERR_SUCCESS;
      75             : }
      76             : 
      77       95220 : _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       95220 :                 uint32_t _flags_save_STRUCT = ndr->flags;
      81       95220 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
      82       95220 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
      83       95220 :                 if (ndr_flags & NDR_SCALARS) {
      84       95220 :                         NDR_CHECK(ndr_pull_align(ndr, 4));
      85       95220 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->type));
      86             :                         {
      87       95220 :                                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
      88       95220 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
      89       95220 :                                 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->signature));
      90       95220 :                                 ndr->flags = _flags_save_DATA_BLOB;
      91             :                         }
      92       95220 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
      93             :                 }
      94       92992 :                 if (ndr_flags & NDR_BUFFERS) {
      95             :                 }
      96       95220 :                 ndr->flags = _flags_save_STRUCT;
      97             :         }
      98       95220 :         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          22 : _PUBLIC_ void ndr_print_PAC_SIGNATURE_DATA(struct ndr_print *ndr, const char *name, const struct PAC_SIGNATURE_DATA *r)
     107             : {
     108          22 :         ndr_print_struct(ndr, name, "PAC_SIGNATURE_DATA");
     109          22 :         if (r == NULL) { ndr_print_null(ndr); return; }
     110             :         {
     111          22 :                 uint32_t _flags_save_STRUCT = ndr->flags;
     112          22 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
     113          22 :                 ndr->depth++;
     114          22 :                 ndr_print_uint32(ndr, "type", r->type);
     115             :                 {
     116          22 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
     117          22 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     118          22 :                         ndr_print_DATA_BLOB(ndr, "signature", r->signature);
     119           0 :                         ndr->flags = _flags_save_DATA_BLOB;
     120             :                 }
     121          22 :                 ndr->depth--;
     122          22 :                 ndr->flags = _flags_save_STRUCT;
     123             :         }
     124             : }
     125             : 
     126      133794 : 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      133794 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     129      133794 :         if (ndr_flags & NDR_SCALARS) {
     130       66897 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     131       66897 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
     132       66897 :                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
     133       66897 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     134             :         }
     135      133794 :         if (ndr_flags & NDR_BUFFERS) {
     136       66897 :                 if (r->domain_sid) {
     137           0 :                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
     138             :                 }
     139       66897 :                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
     140             :         }
     141      130364 :         return NDR_ERR_SUCCESS;
     142             : }
     143             : 
     144      142476 : 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      142476 :         TALLOC_CTX *_mem_save_domain_sid_0 = NULL;
     148      142476 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     149      142476 :         if (ndr_flags & NDR_SCALARS) {
     150       71238 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     151       71238 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
     152       71238 :                 if (_ptr_domain_sid) {
     153           2 :                         NDR_PULL_ALLOC(ndr, r->domain_sid);
     154             :                 } else {
     155       71236 :                         r->domain_sid = NULL;
     156             :                 }
     157       71238 :                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
     158       71238 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     159             :         }
     160      142476 :         if (ndr_flags & NDR_BUFFERS) {
     161       71238 :                 if (r->domain_sid) {
     162           2 :                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
     163           2 :                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
     164           2 :                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
     165           2 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
     166             :                 }
     167       71238 :                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
     168             :         }
     169      138782 :         return NDR_ERR_SUCCESS;
     170             : }
     171             : 
     172          11 : _PUBLIC_ void ndr_print_PAC_DOMAIN_GROUP_MEMBERSHIP(struct ndr_print *ndr, const char *name, const struct PAC_DOMAIN_GROUP_MEMBERSHIP *r)
     173             : {
     174          11 :         ndr_print_struct(ndr, name, "PAC_DOMAIN_GROUP_MEMBERSHIP");
     175          11 :         if (r == NULL) { ndr_print_null(ndr); return; }
     176          11 :         ndr->depth++;
     177          11 :         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
     178          11 :         ndr->depth++;
     179          11 :         if (r->domain_sid) {
     180           2 :                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
     181             :         }
     182          11 :         ndr->depth--;
     183          11 :         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
     184          11 :         ndr->depth--;
     185             : }
     186             : 
     187       66897 : 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       66897 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     190       66897 :         if (ndr_flags & NDR_SCALARS) {
     191       66897 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     192       66897 :                 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
     193       66897 :                 NDR_CHECK(ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_SCALARS, &r->resource_groups));
     194       66897 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     195             :         }
     196       66897 :         if (ndr_flags & NDR_BUFFERS) {
     197       66897 :                 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
     198       66897 :                 NDR_CHECK(ndr_push_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_BUFFERS, &r->resource_groups));
     199             :         }
     200       65182 :         return NDR_ERR_SUCCESS;
     201             : }
     202             : 
     203       71238 : static enum ndr_err_code ndr_pull_PAC_LOGON_INFO(struct ndr_pull *ndr, int ndr_flags, struct PAC_LOGON_INFO *r)
     204             : {
     205       71238 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     206       71238 :         if (ndr_flags & NDR_SCALARS) {
     207       71238 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     208       71238 :                 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
     209       71238 :                 NDR_CHECK(ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_SCALARS, &r->resource_groups));
     210       71238 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     211             :         }
     212       71238 :         if (ndr_flags & NDR_BUFFERS) {
     213       71238 :                 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
     214       71238 :                 NDR_CHECK(ndr_pull_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, NDR_BUFFERS, &r->resource_groups));
     215             :         }
     216       69391 :         return NDR_ERR_SUCCESS;
     217             : }
     218             : 
     219          11 : _PUBLIC_ void ndr_print_PAC_LOGON_INFO(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_INFO *r)
     220             : {
     221          11 :         ndr_print_struct(ndr, name, "PAC_LOGON_INFO");
     222          11 :         if (r == NULL) { ndr_print_null(ndr); return; }
     223          11 :         ndr->depth++;
     224          11 :         ndr_print_netr_SamInfo3(ndr, "info3", &r->info3);
     225          11 :         ndr_print_PAC_DOMAIN_GROUP_MEMBERSHIP(ndr, "resource_groups", &r->resource_groups);
     226          11 :         ndr->depth--;
     227             : }
     228             : 
     229          26 : static enum ndr_err_code ndr_push_PAC_CREDENTIAL_NTLM_FLAGS(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     230             : {
     231          28 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
     232          26 :         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           2 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
     239           2 :         *r = v;
     240           0 :         return NDR_ERR_SUCCESS;
     241             : }
     242             : 
     243           2 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_NTLM_FLAGS(struct ndr_print *ndr, const char *name, uint32_t r)
     244             : {
     245           2 :         ndr_print_uint32(ndr, name, r);
     246           2 :         ndr->depth++;
     247           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_CREDENTIAL_NTLM_HAS_LM_HASH", PAC_CREDENTIAL_NTLM_HAS_LM_HASH, r);
     248           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_CREDENTIAL_NTLM_HAS_NT_HASH", PAC_CREDENTIAL_NTLM_HAS_NT_HASH, r);
     249           2 :         ndr->depth--;
     250           2 : }
     251             : 
     252          28 : _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          28 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     255          28 :         if (ndr_flags & NDR_SCALARS) {
     256          28 :                 NDR_CHECK(ndr_push_align(ndr, 4));
     257          28 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
     258          30 :                 NDR_CHECK(ndr_push_PAC_CREDENTIAL_NTLM_FLAGS(ndr, NDR_SCALARS, r->flags));
     259          28 :                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lm_password));
     260          28 :                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->nt_password));
     261          28 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     262             :         }
     263          26 :         if (ndr_flags & NDR_BUFFERS) {
     264             :         }
     265          28 :         return NDR_ERR_SUCCESS;
     266             : }
     267             : 
     268           2 : _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           2 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     271           2 :         if (ndr_flags & NDR_SCALARS) {
     272           2 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
     273           2 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
     274           4 :                 NDR_CHECK(ndr_pull_PAC_CREDENTIAL_NTLM_FLAGS(ndr, NDR_SCALARS, &r->flags));
     275           2 :                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lm_password));
     276           2 :                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->nt_password));
     277           2 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
     278             :         }
     279           0 :         if (ndr_flags & NDR_BUFFERS) {
     280             :         }
     281           2 :         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           2 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_NTLM_SECPKG(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_NTLM_SECPKG *r)
     290             : {
     291           2 :         ndr_print_struct(ndr, name, "PAC_CREDENTIAL_NTLM_SECPKG");
     292           2 :         if (r == NULL) { ndr_print_null(ndr); return; }
     293           2 :         ndr->depth++;
     294           2 :         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->version);
     295           2 :         ndr_print_PAC_CREDENTIAL_NTLM_FLAGS(ndr, "flags", r->flags);
     296           2 :         ndr->depth--;
     297             : }
     298             : 
     299          56 : _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          56 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     302          56 :         if (ndr_flags & NDR_SCALARS) {
     303          28 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     304          28 :                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->package_name));
     305          28 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->credential_size));
     306          28 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->credential));
     307          28 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     308             :         }
     309          56 :         if (ndr_flags & NDR_BUFFERS) {
     310          28 :                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
     311          28 :                 if (r->credential) {
     312          28 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->credential_size));
     313          28 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->credential, r->credential_size));
     314             :                 }
     315             :         }
     316          52 :         return NDR_ERR_SUCCESS;
     317             : }
     318             : 
     319           4 : _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           4 :         uint32_t size_credential_1 = 0;
     323           4 :         TALLOC_CTX *_mem_save_credential_0 = NULL;
     324           4 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     325           4 :         if (ndr_flags & NDR_SCALARS) {
     326           2 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     327           2 :                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->package_name));
     328           2 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->credential_size));
     329           2 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
     330           2 :                 if (_ptr_credential) {
     331           2 :                         NDR_PULL_ALLOC(ndr, r->credential);
     332             :                 } else {
     333           0 :                         r->credential = NULL;
     334             :                 }
     335           2 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     336             :         }
     337           4 :         if (ndr_flags & NDR_BUFFERS) {
     338           2 :                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
     339           2 :                 if (r->credential) {
     340           2 :                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
     341           2 :                         NDR_PULL_SET_MEM_CTX(ndr, r->credential, 0);
     342           2 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->credential));
     343           2 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->credential, &size_credential_1));
     344           2 :                         NDR_PULL_ALLOC_N(ndr, r->credential, size_credential_1);
     345           2 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->credential, size_credential_1));
     346           2 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
     347             :                 }
     348           2 :                 if (r->credential) {
     349           2 :                         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           2 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG *r)
     361             : {
     362           2 :         ndr_print_struct(ndr, name, "PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG");
     363           2 :         if (r == NULL) { ndr_print_null(ndr); return; }
     364           2 :         ndr->depth++;
     365           2 :         ndr_print_lsa_String(ndr, "package_name", &r->package_name);
     366           2 :         ndr_print_uint32(ndr, "credential_size", r->credential_size);
     367           2 :         ndr->depth--;
     368             : }
     369             : 
     370          28 : _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          28 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     374          28 :         if (ndr_flags & NDR_SCALARS) {
     375          28 :                 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->credential_count));
     376          28 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     377          28 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->credential_count));
     378          54 :                 for (cntr_credentials_0 = 0; cntr_credentials_0 < (r->credential_count); cntr_credentials_0++) {
     379          28 :                         NDR_CHECK(ndr_push_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_SCALARS, &r->credentials[cntr_credentials_0]));
     380             :                 }
     381          28 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     382             :         }
     383          28 :         if (ndr_flags & NDR_BUFFERS) {
     384          54 :                 for (cntr_credentials_0 = 0; cntr_credentials_0 < (r->credential_count); cntr_credentials_0++) {
     385          28 :                         NDR_CHECK(ndr_push_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_BUFFERS, &r->credentials[cntr_credentials_0]));
     386             :                 }
     387             :         }
     388          26 :         return NDR_ERR_SUCCESS;
     389             : }
     390             : 
     391           2 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_DATA(struct ndr_pull *ndr, int ndr_flags, struct PAC_CREDENTIAL_DATA *r)
     392             : {
     393           2 :         uint32_t size_credentials_0 = 0;
     394             :         uint32_t cntr_credentials_0;
     395           2 :         TALLOC_CTX *_mem_save_credentials_0 = NULL;
     396           2 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     397           2 :         if (ndr_flags & NDR_SCALARS) {
     398           2 :                 NDR_CHECK(ndr_pull_array_size(ndr, &r->credentials));
     399           2 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     400           2 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->credential_count));
     401           2 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->credentials, &size_credentials_0));
     402           2 :                 NDR_PULL_ALLOC_N(ndr, r->credentials, size_credentials_0);
     403           2 :                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
     404           2 :                 NDR_PULL_SET_MEM_CTX(ndr, r->credentials, 0);
     405           4 :                 for (cntr_credentials_0 = 0; cntr_credentials_0 < (size_credentials_0); cntr_credentials_0++) {
     406           2 :                         NDR_CHECK(ndr_pull_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_SCALARS, &r->credentials[cntr_credentials_0]));
     407             :                 }
     408           2 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, 0);
     409           2 :                 if (r->credentials) {
     410           2 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->credentials, r->credential_count));
     411             :                 }
     412           2 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     413             :         }
     414           2 :         if (ndr_flags & NDR_BUFFERS) {
     415           2 :                 NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->credentials, &size_credentials_0));
     416           2 :                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
     417           2 :                 NDR_PULL_SET_MEM_CTX(ndr, r->credentials, 0);
     418           4 :                 for (cntr_credentials_0 = 0; cntr_credentials_0 < (size_credentials_0); cntr_credentials_0++) {
     419           2 :                         NDR_CHECK(ndr_pull_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, NDR_BUFFERS, &r->credentials[cntr_credentials_0]));
     420             :                 }
     421           2 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, 0);
     422           2 :                 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           2 : _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           2 :         ndr_print_struct(ndr, name, "PAC_CREDENTIAL_DATA");
     437           2 :         if (r == NULL) { ndr_print_null(ndr); return; }
     438           2 :         ndr->depth++;
     439           2 :         ndr_print_uint32(ndr, "credential_count", r->credential_count);
     440           2 :         ndr->print(ndr, "%s: ARRAY(%d)", "credentials", (int)r->credential_count);
     441           2 :         ndr->depth++;
     442           4 :         for (cntr_credentials_0 = 0; cntr_credentials_0 < (r->credential_count); cntr_credentials_0++) {
     443           2 :                 ndr_print_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG(ndr, "credentials", &r->credentials[cntr_credentials_0]);
     444             :         }
     445           2 :         ndr->depth--;
     446           2 :         ndr->depth--;
     447             : }
     448             : 
     449          28 : _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          28 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     452          28 :         if (ndr_flags & NDR_SCALARS) {
     453          28 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     454          28 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
     455          28 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     456             :         }
     457          28 :         if (ndr_flags & NDR_BUFFERS) {
     458          28 :                 if (r->data) {
     459          28 :                         NDR_CHECK(ndr_push_PAC_CREDENTIAL_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->data));
     460             :                 }
     461             :         }
     462          26 :         return NDR_ERR_SUCCESS;
     463             : }
     464             : 
     465           2 : _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           2 :         TALLOC_CTX *_mem_save_data_0 = NULL;
     469           2 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     470           2 :         if (ndr_flags & NDR_SCALARS) {
     471           2 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     472           2 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
     473           2 :                 if (_ptr_data) {
     474           2 :                         NDR_PULL_ALLOC(ndr, r->data);
     475             :                 } else {
     476           0 :                         r->data = NULL;
     477             :                 }
     478           2 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     479             :         }
     480           2 :         if (ndr_flags & NDR_BUFFERS) {
     481           2 :                 if (r->data) {
     482           2 :                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
     483           2 :                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
     484           2 :                         NDR_CHECK(ndr_pull_PAC_CREDENTIAL_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->data));
     485           2 :                         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           2 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_DATA_CTR(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_DATA_CTR *r)
     497             : {
     498           2 :         ndr_print_struct(ndr, name, "PAC_CREDENTIAL_DATA_CTR");
     499           2 :         if (r == NULL) { ndr_print_null(ndr); return; }
     500           2 :         ndr->depth++;
     501           2 :         ndr_print_ptr(ndr, "data", r->data);
     502           2 :         ndr->depth++;
     503           2 :         if (r->data) {
     504           2 :                 ndr_print_PAC_CREDENTIAL_DATA(ndr, "data", r->data);
     505             :         }
     506           2 :         ndr->depth--;
     507           2 :         ndr->depth--;
     508             : }
     509             : 
     510          28 : _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          28 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     513          28 :         if (ndr_flags & NDR_SCALARS) {
     514          28 :                 NDR_CHECK(ndr_push_align(ndr, 1));
     515             :                 {
     516             :                         struct ndr_push *_ndr_ctr;
     517          28 :                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr, 0xFFFFFC01, -1));
     518          28 :                         NDR_CHECK(ndr_push_PAC_CREDENTIAL_DATA_CTR(_ndr_ctr, NDR_SCALARS|NDR_BUFFERS, &r->ctr));
     519          28 :                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr, 0xFFFFFC01, -1));
     520             :                 }
     521          28 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
     522             :         }
     523          26 :         if (ndr_flags & NDR_BUFFERS) {
     524             :         }
     525          28 :         return NDR_ERR_SUCCESS;
     526             : }
     527             : 
     528           2 : _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           2 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     531           2 :         if (ndr_flags & NDR_SCALARS) {
     532           2 :                 NDR_CHECK(ndr_pull_align(ndr, 1));
     533             :                 {
     534             :                         struct ndr_pull *_ndr_ctr;
     535           2 :                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr, 0xFFFFFC01, -1));
     536           2 :                         NDR_CHECK(ndr_pull_PAC_CREDENTIAL_DATA_CTR(_ndr_ctr, NDR_SCALARS|NDR_BUFFERS, &r->ctr));
     537           2 :                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr, 0xFFFFFC01, -1));
     538             :                 }
     539           2 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
     540             :         }
     541           0 :         if (ndr_flags & NDR_BUFFERS) {
     542             :         }
     543           2 :         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           2 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_DATA_NDR(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_DATA_NDR *r)
     552             : {
     553           2 :         ndr_print_struct(ndr, name, "PAC_CREDENTIAL_DATA_NDR");
     554           2 :         if (r == NULL) { ndr_print_null(ndr); return; }
     555           2 :         ndr->depth++;
     556           2 :         ndr_print_PAC_CREDENTIAL_DATA_CTR(ndr, "ctr", &r->ctr);
     557           2 :         ndr->depth--;
     558             : }
     559             : 
     560          38 : _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          38 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     563          38 :         if (ndr_flags & NDR_SCALARS) {
     564          38 :                 NDR_CHECK(ndr_push_align(ndr, 4));
     565          38 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
     566          38 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->encryption_type));
     567             :                 {
     568          38 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
     569          38 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     570          38 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->encrypted_data));
     571          38 :                         ndr->flags = _flags_save_DATA_BLOB;
     572             :                 }
     573          38 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     574             :         }
     575          26 :         if (ndr_flags & NDR_BUFFERS) {
     576             :         }
     577          38 :         return NDR_ERR_SUCCESS;
     578             : }
     579             : 
     580          12 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CREDENTIAL_INFO(struct ndr_pull *ndr, int ndr_flags, struct PAC_CREDENTIAL_INFO *r)
     581             : {
     582          12 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     583          12 :         if (ndr_flags & NDR_SCALARS) {
     584          12 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
     585          12 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
     586          12 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->encryption_type));
     587             :                 {
     588          12 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
     589          12 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     590          12 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->encrypted_data));
     591          12 :                         ndr->flags = _flags_save_DATA_BLOB;
     592             :                 }
     593          12 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
     594             :         }
     595           8 :         if (ndr_flags & NDR_BUFFERS) {
     596             :         }
     597          12 :         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           4 : _PUBLIC_ void ndr_print_PAC_CREDENTIAL_INFO(struct ndr_print *ndr, const char *name, const struct PAC_CREDENTIAL_INFO *r)
     606             : {
     607           4 :         ndr_print_struct(ndr, name, "PAC_CREDENTIAL_INFO");
     608           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
     609           4 :         ndr->depth++;
     610           4 :         ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->version);
     611           4 :         ndr_print_uint32(ndr, "encryption_type", r->encryption_type);
     612             :         {
     613           4 :                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
     614           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     615           4 :                 ndr_print_DATA_BLOB(ndr, "encrypted_data", r->encrypted_data);
     616           4 :                 ndr->flags = _flags_save_DATA_BLOB;
     617             :         }
     618           4 :         ndr->depth--;
     619             : }
     620             : 
     621          18 : 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          18 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     625          18 :         if (ndr_flags & NDR_SCALARS) {
     626          18 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     627          18 :                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->proxy_target));
     628          18 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_transited_services));
     629          18 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->transited_services));
     630          18 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     631             :         }
     632          18 :         if (ndr_flags & NDR_BUFFERS) {
     633          18 :                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->proxy_target));
     634          18 :                 if (r->transited_services) {
     635          18 :                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_transited_services));
     636          36 :                         for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (r->num_transited_services); cntr_transited_services_1++) {
     637          18 :                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->transited_services[cntr_transited_services_1]));
     638             :                         }
     639          36 :                         for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (r->num_transited_services); cntr_transited_services_1++) {
     640          18 :                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->transited_services[cntr_transited_services_1]));
     641             :                         }
     642             :                 }
     643             :         }
     644          18 :         return NDR_ERR_SUCCESS;
     645             : }
     646             : 
     647          12 : 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          12 :         uint32_t size_transited_services_1 = 0;
     651             :         uint32_t cntr_transited_services_1;
     652          12 :         TALLOC_CTX *_mem_save_transited_services_0 = NULL;
     653          12 :         TALLOC_CTX *_mem_save_transited_services_1 = NULL;
     654          12 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     655          12 :         if (ndr_flags & NDR_SCALARS) {
     656          12 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     657          12 :                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->proxy_target));
     658          12 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_transited_services));
     659          12 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transited_services));
     660          12 :                 if (_ptr_transited_services) {
     661          12 :                         NDR_PULL_ALLOC(ndr, r->transited_services);
     662             :                 } else {
     663           0 :                         r->transited_services = NULL;
     664             :                 }
     665          12 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     666             :         }
     667          12 :         if (ndr_flags & NDR_BUFFERS) {
     668          12 :                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->proxy_target));
     669          12 :                 if (r->transited_services) {
     670          12 :                         _mem_save_transited_services_0 = NDR_PULL_GET_MEM_CTX(ndr);
     671          12 :                         NDR_PULL_SET_MEM_CTX(ndr, r->transited_services, 0);
     672          12 :                         NDR_CHECK(ndr_pull_array_size(ndr, &r->transited_services));
     673          12 :                         NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->transited_services, &size_transited_services_1));
     674          12 :                         NDR_PULL_ALLOC_N(ndr, r->transited_services, size_transited_services_1);
     675          12 :                         _mem_save_transited_services_1 = NDR_PULL_GET_MEM_CTX(ndr);
     676          12 :                         NDR_PULL_SET_MEM_CTX(ndr, r->transited_services, 0);
     677          24 :                         for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (size_transited_services_1); cntr_transited_services_1++) {
     678          12 :                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->transited_services[cntr_transited_services_1]));
     679             :                         }
     680          24 :                         for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (size_transited_services_1); cntr_transited_services_1++) {
     681          12 :                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->transited_services[cntr_transited_services_1]));
     682             :                         }
     683          12 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transited_services_1, 0);
     684          12 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transited_services_0, 0);
     685             :                 }
     686          12 :                 if (r->transited_services) {
     687          12 :                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->transited_services, r->num_transited_services));
     688             :                 }
     689          12 :                 for (cntr_transited_services_1 = 0; cntr_transited_services_1 < (size_transited_services_1); cntr_transited_services_1++) {
     690             :                 }
     691             :         }
     692          12 :         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       26422 : static enum ndr_err_code ndr_push_PAC_UPN_DNS_FLAGS(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     718             : {
     719       27030 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
     720       26422 :         return NDR_ERR_SUCCESS;
     721             : }
     722             : 
     723       69261 : 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       71099 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
     727       71099 :         *r = v;
     728       69261 :         return NDR_ERR_SUCCESS;
     729             : }
     730             : 
     731          11 : _PUBLIC_ void ndr_print_PAC_UPN_DNS_FLAGS(struct ndr_print *ndr, const char *name, uint32_t r)
     732             : {
     733          11 :         ndr_print_uint32(ndr, name, r);
     734          11 :         ndr->depth++;
     735          11 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PAC_UPN_DNS_FLAG_CONSTRUCTED", PAC_UPN_DNS_FLAG_CONSTRUCTED, r);
     736          11 :         ndr->depth--;
     737          11 : }
     738             : 
     739       54060 : 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)
     740             : {
     741       54060 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     742       54060 :         if (ndr_flags & NDR_SCALARS) {
     743       27030 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     744       27030 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->upn_name)));
     745             :                 {
     746       27030 :                         uint32_t _flags_save_string = ndr->flags;
     747       27030 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     748       27030 :                         NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->upn_name));
     749       27030 :                         ndr->flags = _flags_save_string;
     750             :                 }
     751       27030 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 2 * strlen_m(r->dns_domain_name)));
     752             :                 {
     753       27030 :                         uint32_t _flags_save_string = ndr->flags;
     754       27030 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     755       27030 :                         NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->dns_domain_name));
     756       27030 :                         ndr->flags = _flags_save_string;
     757             :                 }
     758       27638 :                 NDR_CHECK(ndr_push_PAC_UPN_DNS_FLAGS(ndr, NDR_SCALARS, r->flags));
     759       27030 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     760             :         }
     761       54060 :         if (ndr_flags & NDR_BUFFERS) {
     762             :                 {
     763       27030 :                         uint32_t _flags_save_string = ndr->flags;
     764       27030 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     765       27030 :                         if (r->upn_name) {
     766       27030 :                                 NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->upn_name));
     767             :                                 {
     768             :                                         struct ndr_push *_ndr_upn_name;
     769       27030 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_upn_name, 0, 2 * strlen_m(r->upn_name)));
     770       27030 :                                         NDR_CHECK(ndr_push_string(_ndr_upn_name, NDR_SCALARS, r->upn_name));
     771       27030 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_upn_name, 0, 2 * strlen_m(r->upn_name)));
     772             :                                 }
     773             :                         }
     774       27030 :                         ndr->flags = _flags_save_string;
     775             :                 }
     776             :                 {
     777       27030 :                         uint32_t _flags_save_string = ndr->flags;
     778       27030 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     779       27030 :                         if (r->dns_domain_name) {
     780       27030 :                                 NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->dns_domain_name));
     781             :                                 {
     782             :                                         struct ndr_push *_ndr_dns_domain_name;
     783       27030 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_dns_domain_name, 0, 2 * strlen_m(r->dns_domain_name)));
     784       27030 :                                         NDR_CHECK(ndr_push_string(_ndr_dns_domain_name, NDR_SCALARS, r->dns_domain_name));
     785       27030 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_dns_domain_name, 0, 2 * strlen_m(r->dns_domain_name)));
     786             :                                 }
     787             :                         }
     788       27030 :                         ndr->flags = _flags_save_string;
     789             :                 }
     790             :         }
     791       52844 :         return NDR_ERR_SUCCESS;
     792             : }
     793             : 
     794      142198 : static enum ndr_err_code ndr_pull_PAC_UPN_DNS_INFO(struct ndr_pull *ndr, int ndr_flags, struct PAC_UPN_DNS_INFO *r)
     795             : {
     796             :         uint16_t _ptr_upn_name;
     797      142198 :         TALLOC_CTX *_mem_save_upn_name_0 = NULL;
     798             :         uint16_t _ptr_dns_domain_name;
     799      142198 :         TALLOC_CTX *_mem_save_dns_domain_name_0 = NULL;
     800      142198 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     801      142198 :         if (ndr_flags & NDR_SCALARS) {
     802       71099 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     803       71099 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->upn_name_size));
     804             :                 {
     805       71099 :                         uint32_t _flags_save_string = ndr->flags;
     806       71099 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     807       71099 :                         NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_upn_name));
     808       71099 :                         if (_ptr_upn_name) {
     809       71099 :                                 NDR_PULL_ALLOC(ndr, r->upn_name);
     810       71099 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->upn_name, _ptr_upn_name));
     811             :                         } else {
     812           0 :                                 r->upn_name = NULL;
     813             :                         }
     814       71099 :                         ndr->flags = _flags_save_string;
     815             :                 }
     816       71099 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->dns_domain_name_size));
     817             :                 {
     818       71099 :                         uint32_t _flags_save_string = ndr->flags;
     819       71099 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     820       71099 :                         NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_dns_domain_name));
     821       71099 :                         if (_ptr_dns_domain_name) {
     822       71099 :                                 NDR_PULL_ALLOC(ndr, r->dns_domain_name);
     823       71099 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dns_domain_name, _ptr_dns_domain_name));
     824             :                         } else {
     825           0 :                                 r->dns_domain_name = NULL;
     826             :                         }
     827       71099 :                         ndr->flags = _flags_save_string;
     828             :                 }
     829       72937 :                 NDR_CHECK(ndr_pull_PAC_UPN_DNS_FLAGS(ndr, NDR_SCALARS, &r->flags));
     830       71099 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     831             :         }
     832      142198 :         if (ndr_flags & NDR_BUFFERS) {
     833             :                 {
     834       71099 :                         uint32_t _flags_save_string = ndr->flags;
     835       71099 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     836       71099 :                         if (r->upn_name) {
     837             :                                 uint32_t _relative_save_offset;
     838       71099 :                                 _relative_save_offset = ndr->offset;
     839       71099 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->upn_name));
     840       71099 :                                 _mem_save_upn_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
     841       71099 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->upn_name, 0);
     842             :                                 {
     843             :                                         struct ndr_pull *_ndr_upn_name;
     844       71099 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_upn_name, 0, r->upn_name_size));
     845       71099 :                                         NDR_CHECK(ndr_pull_string(_ndr_upn_name, NDR_SCALARS, &r->upn_name));
     846       71099 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_upn_name, 0, r->upn_name_size));
     847             :                                 }
     848       71099 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_upn_name_0, 0);
     849       71099 :                                 if (ndr->offset > ndr->relative_highest_offset) {
     850       71099 :                                         ndr->relative_highest_offset = ndr->offset;
     851             :                                 }
     852       71099 :                                 ndr->offset = _relative_save_offset;
     853             :                         }
     854       71099 :                         ndr->flags = _flags_save_string;
     855             :                 }
     856             :                 {
     857       71099 :                         uint32_t _flags_save_string = ndr->flags;
     858       71099 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     859       71099 :                         if (r->dns_domain_name) {
     860             :                                 uint32_t _relative_save_offset;
     861       71099 :                                 _relative_save_offset = ndr->offset;
     862       71099 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dns_domain_name));
     863       71099 :                                 _mem_save_dns_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
     864       71099 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->dns_domain_name, 0);
     865             :                                 {
     866             :                                         struct ndr_pull *_ndr_dns_domain_name;
     867       71099 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_dns_domain_name, 0, r->dns_domain_name_size));
     868       71099 :                                         NDR_CHECK(ndr_pull_string(_ndr_dns_domain_name, NDR_SCALARS, &r->dns_domain_name));
     869       71099 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_dns_domain_name, 0, r->dns_domain_name_size));
     870             :                                 }
     871       71099 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_domain_name_0, 0);
     872       71099 :                                 if (ndr->offset > ndr->relative_highest_offset) {
     873       71099 :                                         ndr->relative_highest_offset = ndr->offset;
     874             :                                 }
     875       71099 :                                 ndr->offset = _relative_save_offset;
     876             :                         }
     877       71099 :                         ndr->flags = _flags_save_string;
     878             :                 }
     879             :         }
     880      138522 :         return NDR_ERR_SUCCESS;
     881             : }
     882             : 
     883          11 : _PUBLIC_ void ndr_print_PAC_UPN_DNS_INFO(struct ndr_print *ndr, const char *name, const struct PAC_UPN_DNS_INFO *r)
     884             : {
     885          11 :         ndr_print_struct(ndr, name, "PAC_UPN_DNS_INFO");
     886          11 :         if (r == NULL) { ndr_print_null(ndr); return; }
     887          11 :         ndr->depth++;
     888          11 :         ndr_print_uint16(ndr, "upn_name_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m(r->upn_name):r->upn_name_size);
     889             :         {
     890          11 :                 uint32_t _flags_save_string = ndr->flags;
     891          11 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     892          11 :                 ndr_print_ptr(ndr, "upn_name", r->upn_name);
     893          11 :                 ndr->depth++;
     894          11 :                 if (r->upn_name) {
     895          11 :                         ndr_print_string(ndr, "upn_name", r->upn_name);
     896             :                 }
     897          11 :                 ndr->depth--;
     898          11 :                 ndr->flags = _flags_save_string;
     899             :         }
     900          11 :         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);
     901             :         {
     902          11 :                 uint32_t _flags_save_string = ndr->flags;
     903          11 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8|LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
     904          11 :                 ndr_print_ptr(ndr, "dns_domain_name", r->dns_domain_name);
     905          11 :                 ndr->depth++;
     906          11 :                 if (r->dns_domain_name) {
     907          11 :                         ndr_print_string(ndr, "dns_domain_name", r->dns_domain_name);
     908             :                 }
     909          11 :                 ndr->depth--;
     910          11 :                 ndr->flags = _flags_save_string;
     911             :         }
     912          11 :         ndr_print_PAC_UPN_DNS_FLAGS(ndr, "flags", r->flags);
     913          11 :         ndr->depth--;
     914             : }
     915             : 
     916       66897 : _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)
     917             : {
     918       66897 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     919       66897 :         if (ndr_flags & NDR_SCALARS) {
     920       66897 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     921       66897 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
     922       66897 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     923             :         }
     924       66897 :         if (ndr_flags & NDR_BUFFERS) {
     925       66897 :                 if (r->info) {
     926       66897 :                         NDR_CHECK(ndr_push_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
     927             :                 }
     928             :         }
     929       65182 :         return NDR_ERR_SUCCESS;
     930             : }
     931             : 
     932       71238 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_LOGON_INFO_CTR(struct ndr_pull *ndr, int ndr_flags, struct PAC_LOGON_INFO_CTR *r)
     933             : {
     934             :         uint32_t _ptr_info;
     935       71238 :         TALLOC_CTX *_mem_save_info_0 = NULL;
     936       71238 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     937       71238 :         if (ndr_flags & NDR_SCALARS) {
     938       71238 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     939       71238 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
     940       71238 :                 if (_ptr_info) {
     941       71238 :                         NDR_PULL_ALLOC(ndr, r->info);
     942             :                 } else {
     943           0 :                         r->info = NULL;
     944             :                 }
     945       71238 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     946             :         }
     947       71238 :         if (ndr_flags & NDR_BUFFERS) {
     948       71238 :                 if (r->info) {
     949       71238 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
     950       71238 :                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
     951       71238 :                         NDR_CHECK(ndr_pull_PAC_LOGON_INFO(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
     952       71238 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
     953             :                 }
     954             :         }
     955       69391 :         return NDR_ERR_SUCCESS;
     956             : }
     957             : 
     958           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)
     959             : {
     960           0 :         ndr_print_PAC_LOGON_INFO_CTR(ndr, name, r);
     961           0 : }
     962             : 
     963          11 : _PUBLIC_ void ndr_print_PAC_LOGON_INFO_CTR(struct ndr_print *ndr, const char *name, const struct PAC_LOGON_INFO_CTR *r)
     964             : {
     965          11 :         ndr_print_struct(ndr, name, "PAC_LOGON_INFO_CTR");
     966          11 :         if (r == NULL) { ndr_print_null(ndr); return; }
     967          11 :         ndr->depth++;
     968          11 :         ndr_print_ptr(ndr, "info", r->info);
     969          11 :         ndr->depth++;
     970          11 :         if (r->info) {
     971          11 :                 ndr_print_PAC_LOGON_INFO(ndr, "info", r->info);
     972             :         }
     973          11 :         ndr->depth--;
     974          11 :         ndr->depth--;
     975             : }
     976             : 
     977          18 : _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)
     978             : {
     979          18 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     980          18 :         if (ndr_flags & NDR_SCALARS) {
     981          18 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     982          18 :                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
     983          18 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     984             :         }
     985          18 :         if (ndr_flags & NDR_BUFFERS) {
     986          18 :                 if (r->info) {
     987          18 :                         NDR_CHECK(ndr_push_PAC_CONSTRAINED_DELEGATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
     988             :                 }
     989             :         }
     990          18 :         return NDR_ERR_SUCCESS;
     991             : }
     992             : 
     993          12 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_CONSTRAINED_DELEGATION_CTR(struct ndr_pull *ndr, int ndr_flags, struct PAC_CONSTRAINED_DELEGATION_CTR *r)
     994             : {
     995             :         uint32_t _ptr_info;
     996          12 :         TALLOC_CTX *_mem_save_info_0 = NULL;
     997          12 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     998          12 :         if (ndr_flags & NDR_SCALARS) {
     999          12 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1000          12 :                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
    1001          12 :                 if (_ptr_info) {
    1002          12 :                         NDR_PULL_ALLOC(ndr, r->info);
    1003             :                 } else {
    1004           0 :                         r->info = NULL;
    1005             :                 }
    1006          12 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1007             :         }
    1008          12 :         if (ndr_flags & NDR_BUFFERS) {
    1009          12 :                 if (r->info) {
    1010          12 :                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1011          12 :                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
    1012          12 :                         NDR_CHECK(ndr_pull_PAC_CONSTRAINED_DELEGATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
    1013          12 :                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
    1014             :                 }
    1015             :         }
    1016          12 :         return NDR_ERR_SUCCESS;
    1017             : }
    1018             : 
    1019           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)
    1020             : {
    1021           0 :         ndr_print_PAC_CONSTRAINED_DELEGATION_CTR(ndr, name, r);
    1022           0 : }
    1023             : 
    1024           0 : _PUBLIC_ void ndr_print_PAC_CONSTRAINED_DELEGATION_CTR(struct ndr_print *ndr, const char *name, const struct PAC_CONSTRAINED_DELEGATION_CTR *r)
    1025             : {
    1026           0 :         ndr_print_struct(ndr, name, "PAC_CONSTRAINED_DELEGATION_CTR");
    1027           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1028           0 :         ndr->depth++;
    1029           0 :         ndr_print_ptr(ndr, "info", r->info);
    1030           0 :         ndr->depth++;
    1031           0 :         if (r->info) {
    1032           0 :                 ndr_print_PAC_CONSTRAINED_DELEGATION(ndr, "info", r->info);
    1033             :         }
    1034           0 :         ndr->depth--;
    1035           0 :         ndr->depth--;
    1036             : }
    1037             : 
    1038       18961 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_TYPE(struct ndr_push *ndr, int ndr_flags, enum PAC_TYPE r)
    1039             : {
    1040       18961 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
    1041       18961 :         return NDR_ERR_SUCCESS;
    1042             : }
    1043             : 
    1044       38111 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_TYPE(struct ndr_pull *ndr, int ndr_flags, enum PAC_TYPE *r)
    1045             : {
    1046             :         uint32_t v;
    1047       38111 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
    1048       38111 :         *r = v;
    1049       38111 :         return NDR_ERR_SUCCESS;
    1050             : }
    1051             : 
    1052         115 : _PUBLIC_ void ndr_print_PAC_TYPE(struct ndr_print *ndr, const char *name, enum PAC_TYPE r)
    1053             : {
    1054         115 :         const char *val = NULL;
    1055             : 
    1056         115 :         switch (r) {
    1057          21 :                 case PAC_TYPE_LOGON_INFO: val = "PAC_TYPE_LOGON_INFO"; break;
    1058           8 :                 case PAC_TYPE_CREDENTIAL_INFO: val = "PAC_TYPE_CREDENTIAL_INFO"; break;
    1059          21 :                 case PAC_TYPE_SRV_CHECKSUM: val = "PAC_TYPE_SRV_CHECKSUM"; break;
    1060          21 :                 case PAC_TYPE_KDC_CHECKSUM: val = "PAC_TYPE_KDC_CHECKSUM"; break;
    1061          21 :                 case PAC_TYPE_LOGON_NAME: val = "PAC_TYPE_LOGON_NAME"; break;
    1062           0 :                 case PAC_TYPE_CONSTRAINED_DELEGATION: val = "PAC_TYPE_CONSTRAINED_DELEGATION"; break;
    1063          21 :                 case PAC_TYPE_UPN_DNS_INFO: val = "PAC_TYPE_UPN_DNS_INFO"; break;
    1064           0 :                 case PAC_TYPE_TICKET_CHECKSUM: val = "PAC_TYPE_TICKET_CHECKSUM"; break;
    1065             :         }
    1066         115 :         ndr_print_enum(ndr, name, "ENUM", val, r);
    1067         115 : }
    1068             : 
    1069       18902 : static enum ndr_err_code ndr_push_DATA_BLOB_REM(struct ndr_push *ndr, int ndr_flags, const struct DATA_BLOB_REM *r)
    1070             : {
    1071       18902 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1072       18902 :         if (ndr_flags & NDR_SCALARS) {
    1073       18902 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    1074             :                 {
    1075       18902 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
    1076       18902 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1077       18902 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->remaining));
    1078       18902 :                         ndr->flags = _flags_save_DATA_BLOB;
    1079             :                 }
    1080       18902 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    1081             :         }
    1082       18820 :         if (ndr_flags & NDR_BUFFERS) {
    1083             :         }
    1084       18902 :         return NDR_ERR_SUCCESS;
    1085             : }
    1086             : 
    1087       18902 : static enum ndr_err_code ndr_pull_DATA_BLOB_REM(struct ndr_pull *ndr, int ndr_flags, struct DATA_BLOB_REM *r)
    1088             : {
    1089       18902 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1090       18902 :         if (ndr_flags & NDR_SCALARS) {
    1091       18902 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    1092             :                 {
    1093       18902 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
    1094       18902 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1095       18902 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->remaining));
    1096       18902 :                         ndr->flags = _flags_save_DATA_BLOB;
    1097             :                 }
    1098       18902 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    1099             :         }
    1100       18820 :         if (ndr_flags & NDR_BUFFERS) {
    1101             :         }
    1102       18902 :         return NDR_ERR_SUCCESS;
    1103             : }
    1104             : 
    1105          54 : _PUBLIC_ void ndr_print_DATA_BLOB_REM(struct ndr_print *ndr, const char *name, const struct DATA_BLOB_REM *r)
    1106             : {
    1107          54 :         ndr_print_struct(ndr, name, "DATA_BLOB_REM");
    1108          54 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1109          54 :         ndr->depth++;
    1110             :         {
    1111          54 :                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
    1112          54 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1113          54 :                 ndr_print_DATA_BLOB(ndr, "remaining", r->remaining);
    1114          54 :                 ndr->flags = _flags_save_DATA_BLOB;
    1115             :         }
    1116          54 :         ndr->depth--;
    1117             : }
    1118             : 
    1119       94065 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_INFO(struct ndr_push *ndr, int ndr_flags, const union PAC_INFO *r)
    1120             : {
    1121             :         uint32_t level;
    1122       94065 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1123       94065 :         if (ndr_flags & NDR_SCALARS) {
    1124             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    1125       94065 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    1126       94065 :                 NDR_CHECK(ndr_push_union_align(ndr, 5));
    1127       94065 :                 switch (level) {
    1128       66897 :                         case PAC_TYPE_LOGON_INFO: {
    1129       66897 :                                 {
    1130             :                                         struct ndr_push *_ndr_logon_info;
    1131       66897 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_logon_info, 0xFFFFFC01, -1));
    1132       66897 :                                         NDR_CHECK(ndr_push_PAC_LOGON_INFO_CTR(_ndr_logon_info, NDR_SCALARS|NDR_BUFFERS, &r->logon_info));
    1133       66897 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_logon_info, 0xFFFFFC01, -1));
    1134             :                                 }
    1135       66897 :                         break; }
    1136             : 
    1137          12 :                         case PAC_TYPE_CREDENTIAL_INFO: {
    1138          12 :                                 NDR_CHECK(ndr_push_PAC_CREDENTIAL_INFO(ndr, NDR_SCALARS, &r->credential_info));
    1139           0 :                         break; }
    1140             : 
    1141          36 :                         case PAC_TYPE_SRV_CHECKSUM: {
    1142          36 :                                 NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->srv_cksum));
    1143           0 :                         break; }
    1144             : 
    1145          36 :                         case PAC_TYPE_KDC_CHECKSUM: {
    1146          36 :                                 NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->kdc_cksum));
    1147           0 :                         break; }
    1148             : 
    1149          36 :                         case PAC_TYPE_LOGON_NAME: {
    1150          36 :                                 NDR_CHECK(ndr_push_PAC_LOGON_NAME(ndr, NDR_SCALARS, &r->logon_name));
    1151           0 :                         break; }
    1152             : 
    1153          18 :                         case PAC_TYPE_CONSTRAINED_DELEGATION: {
    1154          18 :                                 {
    1155             :                                         struct ndr_push *_ndr_constrained_delegation;
    1156          18 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_constrained_delegation, 0xFFFFFC01, -1));
    1157          18 :                                         NDR_CHECK(ndr_push_PAC_CONSTRAINED_DELEGATION_CTR(_ndr_constrained_delegation, NDR_SCALARS|NDR_BUFFERS, &r->constrained_delegation));
    1158          18 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_constrained_delegation, 0xFFFFFC01, -1));
    1159             :                                 }
    1160          18 :                         break; }
    1161             : 
    1162       27030 :                         case PAC_TYPE_UPN_DNS_INFO: {
    1163       27030 :                                 NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO(ndr, NDR_SCALARS, &r->upn_dns_info));
    1164       26422 :                         break; }
    1165             : 
    1166           0 :                         case PAC_TYPE_TICKET_CHECKSUM: {
    1167           0 :                                 NDR_CHECK(ndr_push_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->ticket_checksum));
    1168           0 :                         break; }
    1169             : 
    1170           0 :                         default: {
    1171           0 :                                 {
    1172             :                                         struct ndr_push *_ndr_unknown;
    1173           0 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_unknown, 0, -1));
    1174           0 :                                         NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_unknown, NDR_SCALARS, &r->unknown));
    1175           0 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_unknown, 0, -1));
    1176             :                                 }
    1177           0 :                         break; }
    1178             : 
    1179             :                 }
    1180           0 :         }
    1181       94065 :         if (ndr_flags & NDR_BUFFERS) {
    1182       94065 :                 if (!(ndr_flags & NDR_SCALARS)) {
    1183             :                         /* We didn't get it above, and the token is not needed after this. */
    1184           0 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    1185             :                 }
    1186       94065 :                 switch (level) {
    1187       65182 :                         case PAC_TYPE_LOGON_INFO:
    1188       65182 :                         break;
    1189             : 
    1190           0 :                         case PAC_TYPE_CREDENTIAL_INFO:
    1191           0 :                         break;
    1192             : 
    1193           0 :                         case PAC_TYPE_SRV_CHECKSUM:
    1194           0 :                         break;
    1195             : 
    1196           0 :                         case PAC_TYPE_KDC_CHECKSUM:
    1197           0 :                         break;
    1198             : 
    1199           0 :                         case PAC_TYPE_LOGON_NAME:
    1200           0 :                         break;
    1201             : 
    1202          18 :                         case PAC_TYPE_CONSTRAINED_DELEGATION:
    1203          18 :                         break;
    1204             : 
    1205       27030 :                         case PAC_TYPE_UPN_DNS_INFO:
    1206       27030 :                                 NDR_CHECK(ndr_push_PAC_UPN_DNS_INFO(ndr, NDR_BUFFERS, &r->upn_dns_info));
    1207       26422 :                         break;
    1208             : 
    1209           0 :                         case PAC_TYPE_TICKET_CHECKSUM:
    1210           0 :                         break;
    1211             : 
    1212           0 :                         default:
    1213           0 :                         break;
    1214             : 
    1215             :                 }
    1216           0 :         }
    1217       91622 :         return NDR_ERR_SUCCESS;
    1218             : }
    1219             : 
    1220      153953 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_INFO(struct ndr_pull *ndr, int ndr_flags, union PAC_INFO *r)
    1221             : {
    1222             :         uint32_t level;
    1223      153953 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1224      153953 :         if (ndr_flags & NDR_SCALARS) {
    1225             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    1226      153953 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    1227      153953 :                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
    1228      153953 :                 switch (level) {
    1229       71238 :                         case PAC_TYPE_LOGON_INFO: {
    1230       63081 :                                 {
    1231             :                                         struct ndr_pull *_ndr_logon_info;
    1232       71238 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_logon_info, 0xFFFFFC01, -1));
    1233       71238 :                                         NDR_CHECK(ndr_pull_PAC_LOGON_INFO_CTR(_ndr_logon_info, NDR_SCALARS|NDR_BUFFERS, &r->logon_info));
    1234       71238 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_logon_info, 0xFFFFFC01, -1));
    1235             :                                 }
    1236       71238 :                         break; }
    1237             : 
    1238          12 :                         case PAC_TYPE_CREDENTIAL_INFO: {
    1239          12 :                                 NDR_CHECK(ndr_pull_PAC_CREDENTIAL_INFO(ndr, NDR_SCALARS, &r->credential_info));
    1240           8 :                         break; }
    1241             : 
    1242        3864 :                         case PAC_TYPE_SRV_CHECKSUM: {
    1243        3864 :                                 NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->srv_cksum));
    1244        3846 :                         break; }
    1245             : 
    1246        3864 :                         case PAC_TYPE_KDC_CHECKSUM: {
    1247        3864 :                                 NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->kdc_cksum));
    1248        3846 :                         break; }
    1249             : 
    1250        3864 :                         case PAC_TYPE_LOGON_NAME: {
    1251        3864 :                                 NDR_CHECK(ndr_pull_PAC_LOGON_NAME(ndr, NDR_SCALARS, &r->logon_name));
    1252        3846 :                         break; }
    1253             : 
    1254          12 :                         case PAC_TYPE_CONSTRAINED_DELEGATION: {
    1255          12 :                                 {
    1256             :                                         struct ndr_pull *_ndr_constrained_delegation;
    1257          12 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_constrained_delegation, 0xFFFFFC01, -1));
    1258          12 :                                         NDR_CHECK(ndr_pull_PAC_CONSTRAINED_DELEGATION_CTR(_ndr_constrained_delegation, NDR_SCALARS|NDR_BUFFERS, &r->constrained_delegation));
    1259          12 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_constrained_delegation, 0xFFFFFC01, -1));
    1260             :                                 }
    1261          12 :                         break; }
    1262             : 
    1263       71099 :                         case PAC_TYPE_UPN_DNS_INFO: {
    1264       71099 :                                 NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO(ndr, NDR_SCALARS, &r->upn_dns_info));
    1265       69261 :                         break; }
    1266             : 
    1267           0 :                         case PAC_TYPE_TICKET_CHECKSUM: {
    1268           0 :                                 NDR_CHECK(ndr_pull_PAC_SIGNATURE_DATA(ndr, NDR_SCALARS, &r->ticket_checksum));
    1269           0 :                         break; }
    1270             : 
    1271           0 :                         default: {
    1272           0 :                                 {
    1273             :                                         struct ndr_pull *_ndr_unknown;
    1274           0 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_unknown, 0, -1));
    1275           0 :                                         NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_unknown, NDR_SCALARS, &r->unknown));
    1276           0 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_unknown, 0, -1));
    1277             :                                 }
    1278           0 :                         break; }
    1279             : 
    1280             :                 }
    1281           0 :         }
    1282      153953 :         if (ndr_flags & NDR_BUFFERS) {
    1283      153953 :                 if (!(ndr_flags & NDR_SCALARS)) {
    1284             :                         /* We didn't get it above, and the token is not needed after this. */
    1285           0 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    1286             :                 }
    1287      153953 :                 switch (level) {
    1288       69391 :                         case PAC_TYPE_LOGON_INFO:
    1289       69391 :                         break;
    1290             : 
    1291           8 :                         case PAC_TYPE_CREDENTIAL_INFO:
    1292           8 :                         break;
    1293             : 
    1294        3846 :                         case PAC_TYPE_SRV_CHECKSUM:
    1295        3846 :                         break;
    1296             : 
    1297        3846 :                         case PAC_TYPE_KDC_CHECKSUM:
    1298        3846 :                         break;
    1299             : 
    1300        3846 :                         case PAC_TYPE_LOGON_NAME:
    1301        3846 :                         break;
    1302             : 
    1303          12 :                         case PAC_TYPE_CONSTRAINED_DELEGATION:
    1304          12 :                         break;
    1305             : 
    1306       71099 :                         case PAC_TYPE_UPN_DNS_INFO:
    1307       71099 :                                 NDR_CHECK(ndr_pull_PAC_UPN_DNS_INFO(ndr, NDR_BUFFERS, &r->upn_dns_info));
    1308       69261 :                         break;
    1309             : 
    1310           0 :                         case PAC_TYPE_TICKET_CHECKSUM:
    1311           0 :                         break;
    1312             : 
    1313           0 :                         default:
    1314           0 :                         break;
    1315             : 
    1316             :                 }
    1317           0 :         }
    1318      150210 :         return NDR_ERR_SUCCESS;
    1319             : }
    1320             : 
    1321          59 : _PUBLIC_ void ndr_print_PAC_INFO(struct ndr_print *ndr, const char *name, const union PAC_INFO *r)
    1322             : {
    1323             :         uint32_t level;
    1324          59 :         level = ndr_print_steal_switch_value(ndr, r);
    1325          59 :         ndr_print_union(ndr, name, level, "PAC_INFO");
    1326          59 :         switch (level) {
    1327          11 :                 case PAC_TYPE_LOGON_INFO:
    1328          11 :                         ndr_print_PAC_LOGON_INFO_CTR(ndr, "logon_info", &r->logon_info);
    1329          11 :                 break;
    1330             : 
    1331           4 :                 case PAC_TYPE_CREDENTIAL_INFO:
    1332           4 :                         ndr_print_PAC_CREDENTIAL_INFO(ndr, "credential_info", &r->credential_info);
    1333           4 :                 break;
    1334             : 
    1335          11 :                 case PAC_TYPE_SRV_CHECKSUM:
    1336          11 :                         ndr_print_PAC_SIGNATURE_DATA(ndr, "srv_cksum", &r->srv_cksum);
    1337          11 :                 break;
    1338             : 
    1339          11 :                 case PAC_TYPE_KDC_CHECKSUM:
    1340          11 :                         ndr_print_PAC_SIGNATURE_DATA(ndr, "kdc_cksum", &r->kdc_cksum);
    1341          11 :                 break;
    1342             : 
    1343          11 :                 case PAC_TYPE_LOGON_NAME:
    1344          11 :                         ndr_print_PAC_LOGON_NAME(ndr, "logon_name", &r->logon_name);
    1345          11 :                 break;
    1346             : 
    1347           0 :                 case PAC_TYPE_CONSTRAINED_DELEGATION:
    1348           0 :                         ndr_print_PAC_CONSTRAINED_DELEGATION_CTR(ndr, "constrained_delegation", &r->constrained_delegation);
    1349           0 :                 break;
    1350             : 
    1351          11 :                 case PAC_TYPE_UPN_DNS_INFO:
    1352          11 :                         ndr_print_PAC_UPN_DNS_INFO(ndr, "upn_dns_info", &r->upn_dns_info);
    1353          11 :                 break;
    1354             : 
    1355           0 :                 case PAC_TYPE_TICKET_CHECKSUM:
    1356           0 :                         ndr_print_PAC_SIGNATURE_DATA(ndr, "ticket_checksum", &r->ticket_checksum);
    1357           0 :                 break;
    1358             : 
    1359           0 :                 default:
    1360           0 :                         ndr_print_DATA_BLOB_REM(ndr, "unknown", &r->unknown);
    1361           0 :                 break;
    1362             : 
    1363             :         }
    1364          59 : }
    1365             : 
    1366         117 : _PUBLIC_ size_t ndr_size_PAC_INFO(const union PAC_INFO *r, uint32_t level, int flags)
    1367             : {
    1368         117 :         return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_PAC_INFO);
    1369             : }
    1370             : 
    1371           2 : static void ndr_print_flags_PAC_BUFFER(struct ndr_print *ndr, const char *name, int unused, const struct PAC_BUFFER *r)
    1372             : {
    1373           2 :         ndr_print_PAC_BUFFER(ndr, name, r);
    1374           2 : }
    1375             : 
    1376          61 : _PUBLIC_ void ndr_print_PAC_BUFFER(struct ndr_print *ndr, const char *name, const struct PAC_BUFFER *r)
    1377             : {
    1378          61 :         ndr_print_struct(ndr, name, "PAC_BUFFER");
    1379          61 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1380          61 :         ndr->depth++;
    1381          61 :         ndr_print_PAC_TYPE(ndr, "type", r->type);
    1382          61 :         ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_PAC_INFO(r->info, r->type, 0):r->_ndr_size);
    1383             :         {
    1384          61 :                 uint32_t _flags_save_PAC_INFO = ndr->flags;
    1385          61 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
    1386          61 :                 ndr_print_ptr(ndr, "info", r->info);
    1387          61 :                 ndr->depth++;
    1388          61 :                 if (r->info) {
    1389          59 :                         ndr_print_set_switch_value(ndr, r->info, r->type);
    1390          59 :                         ndr_print_PAC_INFO(ndr, "info", r->info);
    1391             :                 }
    1392          61 :                 ndr->depth--;
    1393          61 :                 ndr->flags = _flags_save_PAC_INFO;
    1394             :         }
    1395          61 :         ndr_print_uint32(ndr, "_pad", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->_pad);
    1396          61 :         ndr->depth--;
    1397             : }
    1398             : 
    1399          12 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_DATA(struct ndr_push *ndr, int ndr_flags, const struct PAC_DATA *r)
    1400             : {
    1401             :         uint32_t cntr_buffers_0;
    1402          12 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1403          12 :         if (ndr_flags & NDR_SCALARS) {
    1404          12 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    1405          12 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_buffers));
    1406          12 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
    1407          58 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
    1408          58 :                         NDR_CHECK(ndr_push_PAC_BUFFER(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
    1409             :                 }
    1410          12 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1411             :         }
    1412          12 :         if (ndr_flags & NDR_BUFFERS) {
    1413          58 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
    1414          58 :                         NDR_CHECK(ndr_push_PAC_BUFFER(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
    1415             :                 }
    1416             :         }
    1417           0 :         return NDR_ERR_SUCCESS;
    1418             : }
    1419             : 
    1420        3864 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_DATA(struct ndr_pull *ndr, int ndr_flags, struct PAC_DATA *r)
    1421             : {
    1422        3864 :         uint32_t size_buffers_0 = 0;
    1423             :         uint32_t cntr_buffers_0;
    1424        3864 :         TALLOC_CTX *_mem_save_buffers_0 = NULL;
    1425        3864 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1426        3864 :         if (ndr_flags & NDR_SCALARS) {
    1427        3864 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1428        3864 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers));
    1429        3864 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
    1430        3864 :                 size_buffers_0 = r->num_buffers;
    1431        3864 :                 NDR_PULL_ALLOC_N(ndr, r->buffers, size_buffers_0);
    1432        3864 :                 _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1433        3864 :                 NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
    1434       23071 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
    1435       19207 :                         NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
    1436             :                 }
    1437        3864 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
    1438        3864 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1439             :         }
    1440        3864 :         if (ndr_flags & NDR_BUFFERS) {
    1441        3864 :                 size_buffers_0 = r->num_buffers;
    1442        3864 :                 _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1443        3864 :                 NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
    1444       23071 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
    1445       19207 :                         NDR_CHECK(ndr_pull_PAC_BUFFER(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
    1446             :                 }
    1447        3864 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
    1448       12796 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
    1449             :                 }
    1450             :         }
    1451        3846 :         return NDR_ERR_SUCCESS;
    1452             : }
    1453             : 
    1454           1 : static void ndr_print_flags_PAC_DATA(struct ndr_print *ndr, const char *name, int unused, const struct PAC_DATA *r)
    1455             : {
    1456           1 :         ndr_print_PAC_DATA(ndr, name, r);
    1457           1 : }
    1458             : 
    1459          11 : _PUBLIC_ void ndr_print_PAC_DATA(struct ndr_print *ndr, const char *name, const struct PAC_DATA *r)
    1460             : {
    1461             :         uint32_t cntr_buffers_0;
    1462          11 :         ndr_print_struct(ndr, name, "PAC_DATA");
    1463          11 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1464          11 :         ndr->depth++;
    1465          11 :         ndr_print_uint32(ndr, "num_buffers", r->num_buffers);
    1466          11 :         ndr_print_uint32(ndr, "version", r->version);
    1467          11 :         ndr->print(ndr, "%s: ARRAY(%d)", "buffers", (int)r->num_buffers);
    1468          11 :         ndr->depth++;
    1469          70 :         for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
    1470          59 :                 ndr_print_PAC_BUFFER(ndr, "buffers", &r->buffers[cntr_buffers_0]);
    1471             :         }
    1472          11 :         ndr->depth--;
    1473          11 :         ndr->depth--;
    1474             : }
    1475             : 
    1476       37804 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_BUFFER_RAW(struct ndr_push *ndr, int ndr_flags, const struct PAC_BUFFER_RAW *r)
    1477             : {
    1478       37804 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1479       37804 :         if (ndr_flags & NDR_SCALARS) {
    1480       18902 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    1481       18902 :                 NDR_CHECK(ndr_push_PAC_TYPE(ndr, NDR_SCALARS, r->type));
    1482       18902 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ndr_size));
    1483             :                 {
    1484       18902 :                         uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
    1485       18902 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
    1486       18902 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->info));
    1487       18902 :                         ndr->flags = _flags_save_DATA_BLOB_REM;
    1488             :                 }
    1489       18902 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
    1490       18902 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1491             :         }
    1492       37804 :         if (ndr_flags & NDR_BUFFERS) {
    1493             :                 {
    1494       18902 :                         uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
    1495       18902 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
    1496       18902 :                         if (r->info) {
    1497       18902 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->info));
    1498             :                                 {
    1499             :                                         struct ndr_push *_ndr_info;
    1500       18902 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
    1501       18902 :                                         NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_info, NDR_SCALARS, r->info));
    1502       18902 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
    1503             :                                 }
    1504       18902 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->info));
    1505             :                         }
    1506       18902 :                         ndr->flags = _flags_save_DATA_BLOB_REM;
    1507             :                 }
    1508             :         }
    1509       37640 :         return NDR_ERR_SUCCESS;
    1510             : }
    1511             : 
    1512       37804 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_BUFFER_RAW(struct ndr_pull *ndr, int ndr_flags, struct PAC_BUFFER_RAW *r)
    1513             : {
    1514             :         uint32_t _ptr_info;
    1515       37804 :         TALLOC_CTX *_mem_save_info_0 = NULL;
    1516       37804 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1517       37804 :         if (ndr_flags & NDR_SCALARS) {
    1518       18902 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1519       18902 :                 NDR_CHECK(ndr_pull_PAC_TYPE(ndr, NDR_SCALARS, &r->type));
    1520       18902 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ndr_size));
    1521             :                 {
    1522       18902 :                         uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
    1523       18902 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
    1524       18902 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
    1525       18902 :                         if (_ptr_info) {
    1526       18902 :                                 NDR_PULL_ALLOC(ndr, r->info);
    1527       18902 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->info, _ptr_info));
    1528             :                         } else {
    1529           0 :                                 r->info = NULL;
    1530             :                         }
    1531       18902 :                         ndr->flags = _flags_save_DATA_BLOB_REM;
    1532             :                 }
    1533       18902 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_pad));
    1534       18902 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1535             :         }
    1536       37804 :         if (ndr_flags & NDR_BUFFERS) {
    1537             :                 {
    1538       18902 :                         uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
    1539       18902 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
    1540       18902 :                         if (r->info) {
    1541             :                                 uint32_t _relative_save_offset;
    1542       18902 :                                 _relative_save_offset = ndr->offset;
    1543       18902 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->info));
    1544       18902 :                                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1545       18902 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
    1546             :                                 {
    1547             :                                         struct ndr_pull *_ndr_info;
    1548       18902 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
    1549       18902 :                                         NDR_CHECK(ndr_pull_DATA_BLOB_REM(_ndr_info, NDR_SCALARS, r->info));
    1550       18902 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
    1551             :                                 }
    1552       18902 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
    1553       18902 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    1554       18902 :                                         ndr->relative_highest_offset = ndr->offset;
    1555             :                                 }
    1556       18902 :                                 ndr->offset = _relative_save_offset;
    1557             :                         }
    1558       18902 :                         ndr->flags = _flags_save_DATA_BLOB_REM;
    1559             :                 }
    1560             :         }
    1561       37640 :         return NDR_ERR_SUCCESS;
    1562             : }
    1563             : 
    1564           0 : static void ndr_print_flags_PAC_BUFFER_RAW(struct ndr_print *ndr, const char *name, int unused, const struct PAC_BUFFER_RAW *r)
    1565             : {
    1566           0 :         ndr_print_PAC_BUFFER_RAW(ndr, name, r);
    1567           0 : }
    1568             : 
    1569          54 : _PUBLIC_ void ndr_print_PAC_BUFFER_RAW(struct ndr_print *ndr, const char *name, const struct PAC_BUFFER_RAW *r)
    1570             : {
    1571          54 :         ndr_print_struct(ndr, name, "PAC_BUFFER_RAW");
    1572          54 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1573          54 :         ndr->depth++;
    1574          54 :         ndr_print_PAC_TYPE(ndr, "type", r->type);
    1575          54 :         ndr_print_uint32(ndr, "ndr_size", r->ndr_size);
    1576             :         {
    1577          54 :                 uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
    1578          54 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
    1579          54 :                 ndr_print_ptr(ndr, "info", r->info);
    1580          54 :                 ndr->depth++;
    1581          54 :                 if (r->info) {
    1582          54 :                         ndr_print_DATA_BLOB_REM(ndr, "info", r->info);
    1583             :                 }
    1584          54 :                 ndr->depth--;
    1585          54 :                 ndr->flags = _flags_save_DATA_BLOB_REM;
    1586             :         }
    1587          54 :         ndr_print_uint32(ndr, "_pad", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->_pad);
    1588          54 :         ndr->depth--;
    1589             : }
    1590             : 
    1591        3807 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_DATA_RAW(struct ndr_push *ndr, int ndr_flags, const struct PAC_DATA_RAW *r)
    1592             : {
    1593             :         uint32_t cntr_buffers_0;
    1594        3807 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1595        3807 :         if (ndr_flags & NDR_SCALARS) {
    1596        3807 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    1597        3807 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_buffers));
    1598        3807 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
    1599       22692 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
    1600       18902 :                         NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
    1601             :                 }
    1602        3807 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1603             :         }
    1604        3807 :         if (ndr_flags & NDR_BUFFERS) {
    1605       22692 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
    1606       18902 :                         NDR_CHECK(ndr_push_PAC_BUFFER_RAW(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
    1607             :                 }
    1608             :         }
    1609        3790 :         return NDR_ERR_SUCCESS;
    1610             : }
    1611             : 
    1612        3807 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_DATA_RAW(struct ndr_pull *ndr, int ndr_flags, struct PAC_DATA_RAW *r)
    1613             : {
    1614        3807 :         uint32_t size_buffers_0 = 0;
    1615             :         uint32_t cntr_buffers_0;
    1616        3807 :         TALLOC_CTX *_mem_save_buffers_0 = NULL;
    1617        3807 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1618        3807 :         if (ndr_flags & NDR_SCALARS) {
    1619        3807 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1620        3807 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_buffers));
    1621        3807 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
    1622        3807 :                 size_buffers_0 = r->num_buffers;
    1623        3807 :                 NDR_PULL_ALLOC_N(ndr, r->buffers, size_buffers_0);
    1624        3807 :                 _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1625        3807 :                 NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
    1626       22709 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
    1627       18902 :                         NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_SCALARS, &r->buffers[cntr_buffers_0]));
    1628             :                 }
    1629        3807 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
    1630        3807 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1631             :         }
    1632        3807 :         if (ndr_flags & NDR_BUFFERS) {
    1633        3807 :                 size_buffers_0 = r->num_buffers;
    1634        3807 :                 _mem_save_buffers_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1635        3807 :                 NDR_PULL_SET_MEM_CTX(ndr, r->buffers, 0);
    1636       22709 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
    1637       18902 :                         NDR_CHECK(ndr_pull_PAC_BUFFER_RAW(ndr, NDR_BUFFERS, &r->buffers[cntr_buffers_0]));
    1638             :                 }
    1639        3807 :                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffers_0, 0);
    1640       12659 :                 for (cntr_buffers_0 = 0; cntr_buffers_0 < (size_buffers_0); cntr_buffers_0++) {
    1641             :                 }
    1642             :         }
    1643        3790 :         return NDR_ERR_SUCCESS;
    1644             : }
    1645             : 
    1646           0 : static void ndr_print_flags_PAC_DATA_RAW(struct ndr_print *ndr, const char *name, int unused, const struct PAC_DATA_RAW *r)
    1647             : {
    1648           0 :         ndr_print_PAC_DATA_RAW(ndr, name, r);
    1649           0 : }
    1650             : 
    1651          10 : _PUBLIC_ void ndr_print_PAC_DATA_RAW(struct ndr_print *ndr, const char *name, const struct PAC_DATA_RAW *r)
    1652             : {
    1653             :         uint32_t cntr_buffers_0;
    1654          10 :         ndr_print_struct(ndr, name, "PAC_DATA_RAW");
    1655          10 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1656          10 :         ndr->depth++;
    1657          10 :         ndr_print_uint32(ndr, "num_buffers", r->num_buffers);
    1658          10 :         ndr_print_uint32(ndr, "version", r->version);
    1659          10 :         ndr->print(ndr, "%s: ARRAY(%d)", "buffers", (int)r->num_buffers);
    1660          10 :         ndr->depth++;
    1661          64 :         for (cntr_buffers_0 = 0; cntr_buffers_0 < (r->num_buffers); cntr_buffers_0++) {
    1662          54 :                 ndr_print_PAC_BUFFER_RAW(ndr, "buffers", &r->buffers[cntr_buffers_0]);
    1663             :         }
    1664          10 :         ndr->depth--;
    1665          10 :         ndr->depth--;
    1666             : }
    1667             : 
    1668         156 : _PUBLIC_ enum ndr_err_code ndr_push_PAC_Validate(struct ndr_push *ndr, int ndr_flags, const struct PAC_Validate *r)
    1669             : {
    1670         156 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1671         156 :         if (ndr_flags & NDR_SCALARS) {
    1672         156 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    1673         156 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, NETLOGON_GENERIC_KRB5_PAC_VALIDATE));
    1674         156 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ChecksumLength));
    1675         156 :                 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->SignatureType));
    1676         156 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SignatureLength));
    1677             :                 {
    1678         156 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
    1679         156 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1680         156 :                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->ChecksumAndSignature));
    1681         156 :                         ndr->flags = _flags_save_DATA_BLOB;
    1682             :                 }
    1683         156 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    1684             :         }
    1685         156 :         if (ndr_flags & NDR_BUFFERS) {
    1686             :         }
    1687         156 :         return NDR_ERR_SUCCESS;
    1688             : }
    1689             : 
    1690         260 : _PUBLIC_ enum ndr_err_code ndr_pull_PAC_Validate(struct ndr_pull *ndr, int ndr_flags, struct PAC_Validate *r)
    1691             : {
    1692         260 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1693         260 :         if (ndr_flags & NDR_SCALARS) {
    1694         260 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    1695         260 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->MessageType));
    1696         260 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ChecksumLength));
    1697         260 :                 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->SignatureType));
    1698         260 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SignatureLength));
    1699             :                 {
    1700         260 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
    1701         260 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1702         260 :                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->ChecksumAndSignature));
    1703         260 :                         ndr->flags = _flags_save_DATA_BLOB;
    1704             :                 }
    1705         260 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    1706             :         }
    1707         260 :         if (ndr_flags & NDR_BUFFERS) {
    1708             :         }
    1709         260 :         return NDR_ERR_SUCCESS;
    1710             : }
    1711             : 
    1712           0 : static void ndr_print_flags_PAC_Validate(struct ndr_print *ndr, const char *name, int unused, const struct PAC_Validate *r)
    1713             : {
    1714           0 :         ndr_print_PAC_Validate(ndr, name, r);
    1715           0 : }
    1716             : 
    1717           0 : _PUBLIC_ void ndr_print_PAC_Validate(struct ndr_print *ndr, const char *name, const struct PAC_Validate *r)
    1718             : {
    1719           0 :         ndr_print_struct(ndr, name, "PAC_Validate");
    1720           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1721           0 :         ndr->depth++;
    1722           0 :         ndr_print_uint32(ndr, "MessageType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NETLOGON_GENERIC_KRB5_PAC_VALIDATE:r->MessageType);
    1723           0 :         ndr_print_uint32(ndr, "ChecksumLength", r->ChecksumLength);
    1724           0 :         ndr_print_int32(ndr, "SignatureType", r->SignatureType);
    1725           0 :         ndr_print_uint32(ndr, "SignatureLength", r->SignatureLength);
    1726             :         {
    1727           0 :                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
    1728           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1729           0 :                 ndr_print_DATA_BLOB(ndr, "ChecksumAndSignature", r->ChecksumAndSignature);
    1730           0 :                 ndr->flags = _flags_save_DATA_BLOB;
    1731             :         }
    1732           0 :         ndr->depth--;
    1733             : }
    1734             : 
    1735         505 : _PUBLIC_ enum ndr_err_code ndr_push_netsamlogoncache_entry(struct ndr_push *ndr, int ndr_flags, const struct netsamlogoncache_entry *r)
    1736             : {
    1737         505 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1738         505 :         if (ndr_flags & NDR_SCALARS) {
    1739         505 :                 NDR_CHECK(ndr_push_align(ndr, 5));
    1740         505 :                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
    1741         505 :                 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
    1742         505 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1743             :         }
    1744         505 :         if (ndr_flags & NDR_BUFFERS) {
    1745         505 :                 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
    1746             :         }
    1747         505 :         return NDR_ERR_SUCCESS;
    1748             : }
    1749             : 
    1750       34516 : _PUBLIC_ enum ndr_err_code ndr_pull_netsamlogoncache_entry(struct ndr_pull *ndr, int ndr_flags, struct netsamlogoncache_entry *r)
    1751             : {
    1752       34516 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1753       34516 :         if (ndr_flags & NDR_SCALARS) {
    1754       34516 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
    1755       34516 :                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
    1756       34516 :                 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info3));
    1757       34516 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1758             :         }
    1759       34516 :         if (ndr_flags & NDR_BUFFERS) {
    1760       34516 :                 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info3));
    1761             :         }
    1762       34516 :         return NDR_ERR_SUCCESS;
    1763             : }
    1764             : 
    1765           0 : static void ndr_print_flags_netsamlogoncache_entry(struct ndr_print *ndr, const char *name, int unused, const struct netsamlogoncache_entry *r)
    1766             : {
    1767           0 :         ndr_print_netsamlogoncache_entry(ndr, name, r);
    1768           0 : }
    1769             : 
    1770           0 : _PUBLIC_ void ndr_print_netsamlogoncache_entry(struct ndr_print *ndr, const char *name, const struct netsamlogoncache_entry *r)
    1771             : {
    1772           0 :         ndr_print_struct(ndr, name, "netsamlogoncache_entry");
    1773           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1774           0 :         ndr->depth++;
    1775           0 :         ndr_print_time_t(ndr, "timestamp", r->timestamp);
    1776           0 :         ndr_print_netr_SamInfo3(ndr, "info3", &r->info3);
    1777           0 :         ndr->depth--;
    1778             : }
    1779             : 
    1780             : #ifndef SKIP_NDR_TABLE_krb5pac
    1781             : static const struct ndr_interface_public_struct krb5pac_public_structs[] = {
    1782             :         {
    1783             :                 .name = "PAC_SIGNATURE_DATA",
    1784             :                 .struct_size = sizeof(struct PAC_SIGNATURE_DATA ),
    1785             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_SIGNATURE_DATA,
    1786             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_SIGNATURE_DATA,
    1787             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_SIGNATURE_DATA,
    1788             :         },
    1789             :         {
    1790             :                 .name = "PAC_CREDENTIAL_NTLM_SECPKG",
    1791             :                 .struct_size = sizeof(struct PAC_CREDENTIAL_NTLM_SECPKG ),
    1792             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_NTLM_SECPKG,
    1793             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_NTLM_SECPKG,
    1794             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_NTLM_SECPKG,
    1795             :         },
    1796             :         {
    1797             :                 .name = "PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG",
    1798             :                 .struct_size = sizeof(struct PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG ),
    1799             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG,
    1800             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG,
    1801             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_SUPPLEMENTAL_SECPKG,
    1802             :         },
    1803             :         {
    1804             :                 .name = "PAC_CREDENTIAL_DATA",
    1805             :                 .struct_size = sizeof(struct PAC_CREDENTIAL_DATA ),
    1806             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_DATA,
    1807             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_DATA,
    1808             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_DATA,
    1809             :         },
    1810             :         {
    1811             :                 .name = "PAC_CREDENTIAL_DATA_CTR",
    1812             :                 .struct_size = sizeof(struct PAC_CREDENTIAL_DATA_CTR ),
    1813             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_DATA_CTR,
    1814             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_DATA_CTR,
    1815             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_DATA_CTR,
    1816             :         },
    1817             :         {
    1818             :                 .name = "PAC_CREDENTIAL_DATA_NDR",
    1819             :                 .struct_size = sizeof(struct PAC_CREDENTIAL_DATA_NDR ),
    1820             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_DATA_NDR,
    1821             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_DATA_NDR,
    1822             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_DATA_NDR,
    1823             :         },
    1824             :         {
    1825             :                 .name = "PAC_CREDENTIAL_INFO",
    1826             :                 .struct_size = sizeof(struct PAC_CREDENTIAL_INFO ),
    1827             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CREDENTIAL_INFO,
    1828             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CREDENTIAL_INFO,
    1829             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CREDENTIAL_INFO,
    1830             :         },
    1831             :         {
    1832             :                 .name = "PAC_LOGON_INFO_CTR",
    1833             :                 .struct_size = sizeof(struct PAC_LOGON_INFO_CTR ),
    1834             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_LOGON_INFO_CTR,
    1835             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_LOGON_INFO_CTR,
    1836             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_LOGON_INFO_CTR,
    1837             :         },
    1838             :         {
    1839             :                 .name = "PAC_CONSTRAINED_DELEGATION_CTR",
    1840             :                 .struct_size = sizeof(struct PAC_CONSTRAINED_DELEGATION_CTR ),
    1841             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_CONSTRAINED_DELEGATION_CTR,
    1842             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_CONSTRAINED_DELEGATION_CTR,
    1843             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_CONSTRAINED_DELEGATION_CTR,
    1844             :         },
    1845             :         {
    1846             :                 .name = "PAC_BUFFER",
    1847             :                 .struct_size = sizeof(struct PAC_BUFFER ),
    1848             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_BUFFER,
    1849             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_BUFFER,
    1850             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_BUFFER,
    1851             :         },
    1852             :         {
    1853             :                 .name = "PAC_DATA",
    1854             :                 .struct_size = sizeof(struct PAC_DATA ),
    1855             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_DATA,
    1856             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_DATA,
    1857             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_DATA,
    1858             :         },
    1859             :         {
    1860             :                 .name = "PAC_BUFFER_RAW",
    1861             :                 .struct_size = sizeof(struct PAC_BUFFER_RAW ),
    1862             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_BUFFER_RAW,
    1863             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_BUFFER_RAW,
    1864             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_BUFFER_RAW,
    1865             :         },
    1866             :         {
    1867             :                 .name = "PAC_DATA_RAW",
    1868             :                 .struct_size = sizeof(struct PAC_DATA_RAW ),
    1869             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_DATA_RAW,
    1870             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_DATA_RAW,
    1871             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_DATA_RAW,
    1872             :         },
    1873             :         {
    1874             :                 .name = "PAC_Validate",
    1875             :                 .struct_size = sizeof(struct PAC_Validate ),
    1876             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_PAC_Validate,
    1877             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_PAC_Validate,
    1878             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_PAC_Validate,
    1879             :         },
    1880             :         {
    1881             :                 .name = "netsamlogoncache_entry",
    1882             :                 .struct_size = sizeof(struct netsamlogoncache_entry ),
    1883             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_netsamlogoncache_entry,
    1884             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_netsamlogoncache_entry,
    1885             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_netsamlogoncache_entry,
    1886             :         },
    1887             :         { .name = NULL }
    1888             : };
    1889             : 
    1890             : static const struct ndr_interface_call krb5pac_calls[] = {
    1891             :         { .name = NULL }
    1892             : };
    1893             : 
    1894             : static const char * const krb5pac_endpoint_strings[] = {
    1895             :         "ncacn_np:[\\pipe\\krb5pac]", 
    1896             : };
    1897             : 
    1898             : static const struct ndr_interface_string_array krb5pac_endpoints = {
    1899             :         .count  = 1,
    1900             :         .names  = krb5pac_endpoint_strings
    1901             : };
    1902             : 
    1903             : static const char * const krb5pac_authservice_strings[] = {
    1904             :         "host", 
    1905             : };
    1906             : 
    1907             : static const struct ndr_interface_string_array krb5pac_authservices = {
    1908             :         .count  = 1,
    1909             :         .names  = krb5pac_authservice_strings
    1910             : };
    1911             : 
    1912             : 
    1913             : const struct ndr_interface_table ndr_table_krb5pac = {
    1914             :         .name           = "krb5pac",
    1915             :         .syntax_id      = {
    1916             :                 {0x12345778,0x1234,0xabcd,{0x00,0x00},{0x00,0x00,0x00,0x00}},
    1917             :                 NDR_KRB5PAC_VERSION
    1918             :         },
    1919             :         .helpstring     = NDR_KRB5PAC_HELPSTRING,
    1920             :         .num_calls      = 0,
    1921             :         .calls          = krb5pac_calls,
    1922             :         .num_public_structs     = 15,
    1923             :         .public_structs         = krb5pac_public_structs,
    1924             :         .endpoints      = &krb5pac_endpoints,
    1925             :         .authservices   = &krb5pac_authservices
    1926             : };
    1927             : 
    1928             : #endif /* SKIP_NDR_TABLE_krb5pac */

Generated by: LCOV version 1.13