LCOV - code coverage report
Current view: top level - bin/default/librpc/gen_ndr - ndr_ntlmssp.c (source / functions) Hit Total Coverage
Test: coverage report for abartlet/fix-coverage dd10fb34 Lines: 1151 1541 74.7 %
Date: 2021-09-23 10:06:22 Functions: 54 86 62.8 %

          Line data    Source code
       1             : /* parser auto-generated by pidl */
       2             : 
       3             : #include "includes.h"
       4             : #include "bin/default/librpc/gen_ndr/ndr_ntlmssp.h"
       5             : 
       6             : #include "librpc/gen_ndr/ndr_security.h"
       7           0 : static enum ndr_err_code ndr_push_ntlmssp_MessageType(struct ndr_push *ndr, int ndr_flags, enum ntlmssp_MessageType r)
       8             : {
       9           6 :         NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
      10           0 :         return NDR_ERR_SUCCESS;
      11             : }
      12             : 
      13           6 : static enum ndr_err_code ndr_pull_ntlmssp_MessageType(struct ndr_pull *ndr, int ndr_flags, enum ntlmssp_MessageType *r)
      14             : {
      15             :         uint32_t v;
      16          19 :         NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
      17          19 :         *r = v;
      18           6 :         return NDR_ERR_SUCCESS;
      19             : }
      20             : 
      21          19 : _PUBLIC_ void ndr_print_ntlmssp_MessageType(struct ndr_print *ndr, const char *name, enum ntlmssp_MessageType r)
      22             : {
      23          19 :         const char *val = NULL;
      24             : 
      25          19 :         switch (r) {
      26           6 :                 case NtLmNegotiate: val = "NtLmNegotiate"; break;
      27           6 :                 case NtLmChallenge: val = "NtLmChallenge"; break;
      28           5 :                 case NtLmAuthenticate: val = "NtLmAuthenticate"; break;
      29             :         }
      30          19 :         ndr_print_enum(ndr, name, "ENUM", val, r);
      31          19 : }
      32             : 
      33           0 : static enum ndr_err_code ndr_push_NEGOTIATE(struct ndr_push *ndr, int ndr_flags, uint32_t r)
      34             : {
      35           6 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
      36           0 :         return NDR_ERR_SUCCESS;
      37             : }
      38             : 
      39           6 : static enum ndr_err_code ndr_pull_NEGOTIATE(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
      40             : {
      41             :         uint32_t v;
      42          19 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
      43          19 :         *r = v;
      44           6 :         return NDR_ERR_SUCCESS;
      45             : }
      46             : 
      47          19 : _PUBLIC_ void ndr_print_NEGOTIATE(struct ndr_print *ndr, const char *name, uint32_t r)
      48             : {
      49          19 :         ndr_print_uint32(ndr, name, r);
      50          19 :         ndr->depth++;
      51          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_UNICODE", NTLMSSP_NEGOTIATE_UNICODE, r);
      52          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_OEM", NTLMSSP_NEGOTIATE_OEM, r);
      53          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_REQUEST_TARGET", NTLMSSP_REQUEST_TARGET, r);
      54          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_SIGN", NTLMSSP_NEGOTIATE_SIGN, r);
      55          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_SEAL", NTLMSSP_NEGOTIATE_SEAL, r);
      56          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_DATAGRAM", NTLMSSP_NEGOTIATE_DATAGRAM, r);
      57          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_LM_KEY", NTLMSSP_NEGOTIATE_LM_KEY, r);
      58          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_NETWARE", NTLMSSP_NEGOTIATE_NETWARE, r);
      59          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_NTLM", NTLMSSP_NEGOTIATE_NTLM, r);
      60          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_NT_ONLY", NTLMSSP_NEGOTIATE_NT_ONLY, r);
      61          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_ANONYMOUS", NTLMSSP_ANONYMOUS, r);
      62          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED", NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED, r);
      63          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED", NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED, r);
      64          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL", NTLMSSP_NEGOTIATE_THIS_IS_LOCAL_CALL, r);
      65          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_ALWAYS_SIGN", NTLMSSP_NEGOTIATE_ALWAYS_SIGN, r);
      66          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_TARGET_TYPE_DOMAIN", NTLMSSP_TARGET_TYPE_DOMAIN, r);
      67          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_TARGET_TYPE_SERVER", NTLMSSP_TARGET_TYPE_SERVER, r);
      68          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_TARGET_TYPE_SHARE", NTLMSSP_TARGET_TYPE_SHARE, r);
      69          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY", NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY, r);
      70          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_IDENTIFY", NTLMSSP_NEGOTIATE_IDENTIFY, r);
      71          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_REQUEST_NON_NT_SESSION_KEY", NTLMSSP_REQUEST_NON_NT_SESSION_KEY, r);
      72          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_TARGET_INFO", NTLMSSP_NEGOTIATE_TARGET_INFO, r);
      73          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_VERSION", NTLMSSP_NEGOTIATE_VERSION, r);
      74          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_128", NTLMSSP_NEGOTIATE_128, r);
      75          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_KEY_EXCH", NTLMSSP_NEGOTIATE_KEY_EXCH, r);
      76          19 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_NEGOTIATE_56", NTLMSSP_NEGOTIATE_56, r);
      77          19 :         ndr->depth--;
      78          19 : }
      79             : 
      80           0 : static enum ndr_err_code ndr_push_ntlmssp_WindowsMajorVersion(struct ndr_push *ndr, int ndr_flags, enum ntlmssp_WindowsMajorVersion r)
      81             : {
      82           5 :         NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
      83           0 :         return NDR_ERR_SUCCESS;
      84             : }
      85             : 
      86           6 : static enum ndr_err_code ndr_pull_ntlmssp_WindowsMajorVersion(struct ndr_pull *ndr, int ndr_flags, enum ntlmssp_WindowsMajorVersion *r)
      87             : {
      88             :         uint8_t v;
      89          18 :         NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
      90          18 :         *r = v;
      91           6 :         return NDR_ERR_SUCCESS;
      92             : }
      93             : 
      94          18 : _PUBLIC_ void ndr_print_ntlmssp_WindowsMajorVersion(struct ndr_print *ndr, const char *name, enum ntlmssp_WindowsMajorVersion r)
      95             : {
      96          18 :         const char *val = NULL;
      97             : 
      98          18 :         switch (r) {
      99           0 :                 case NTLMSSP_WINDOWS_MAJOR_VERSION_5: val = "NTLMSSP_WINDOWS_MAJOR_VERSION_5"; break;
     100          16 :                 case NTLMSSP_WINDOWS_MAJOR_VERSION_6: val = "NTLMSSP_WINDOWS_MAJOR_VERSION_6"; break;
     101           0 :                 case NTLMSSP_WINDOWS_MAJOR_VERSION_10: val = "NTLMSSP_WINDOWS_MAJOR_VERSION_10"; break;
     102             :         }
     103          18 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     104          18 : }
     105             : 
     106           0 : static enum ndr_err_code ndr_push_ntlmssp_WindowsMinorVersion(struct ndr_push *ndr, int ndr_flags, enum ntlmssp_WindowsMinorVersion r)
     107             : {
     108           5 :         NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
     109           0 :         return NDR_ERR_SUCCESS;
     110             : }
     111             : 
     112           6 : static enum ndr_err_code ndr_pull_ntlmssp_WindowsMinorVersion(struct ndr_pull *ndr, int ndr_flags, enum ntlmssp_WindowsMinorVersion *r)
     113             : {
     114             :         uint8_t v;
     115          18 :         NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
     116          18 :         *r = v;
     117           6 :         return NDR_ERR_SUCCESS;
     118             : }
     119             : 
     120          18 : _PUBLIC_ void ndr_print_ntlmssp_WindowsMinorVersion(struct ndr_print *ndr, const char *name, enum ntlmssp_WindowsMinorVersion r)
     121             : {
     122          18 :         const char *val = NULL;
     123             : 
     124          18 :         switch (r) {
     125           2 :                 case NTLMSSP_WINDOWS_MINOR_VERSION_0: val = "NTLMSSP_WINDOWS_MINOR_VERSION_0"; break;
     126          16 :                 case NTLMSSP_WINDOWS_MINOR_VERSION_1: val = "NTLMSSP_WINDOWS_MINOR_VERSION_1"; break;
     127           0 :                 case NTLMSSP_WINDOWS_MINOR_VERSION_2: val = "NTLMSSP_WINDOWS_MINOR_VERSION_2"; break;
     128           0 :                 case NTLMSSP_WINDOWS_MINOR_VERSION_3: val = "NTLMSSP_WINDOWS_MINOR_VERSION_3"; break;
     129             :         }
     130          18 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     131          18 : }
     132             : 
     133           0 : static enum ndr_err_code ndr_push_ntlmssp_NTLMRevisionCurrent(struct ndr_push *ndr, int ndr_flags, enum ntlmssp_NTLMRevisionCurrent r)
     134             : {
     135           5 :         NDR_CHECK(ndr_push_enum_uint8(ndr, NDR_SCALARS, r));
     136           0 :         return NDR_ERR_SUCCESS;
     137             : }
     138             : 
     139           6 : static enum ndr_err_code ndr_pull_ntlmssp_NTLMRevisionCurrent(struct ndr_pull *ndr, int ndr_flags, enum ntlmssp_NTLMRevisionCurrent *r)
     140             : {
     141             :         uint8_t v;
     142          18 :         NDR_CHECK(ndr_pull_enum_uint8(ndr, NDR_SCALARS, &v));
     143          18 :         *r = v;
     144           6 :         return NDR_ERR_SUCCESS;
     145             : }
     146             : 
     147          18 : _PUBLIC_ void ndr_print_ntlmssp_NTLMRevisionCurrent(struct ndr_print *ndr, const char *name, enum ntlmssp_NTLMRevisionCurrent r)
     148             : {
     149          18 :         const char *val = NULL;
     150             : 
     151          18 :         switch (r) {
     152           0 :                 case NTLMSSP_REVISION_W2K3_RC1: val = "NTLMSSP_REVISION_W2K3_RC1"; break;
     153          16 :                 case NTLMSSP_REVISION_W2K3: val = "NTLMSSP_REVISION_W2K3"; break;
     154             :         }
     155          18 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     156          18 : }
     157             : 
     158           5 : _PUBLIC_ enum ndr_err_code ndr_push_ntlmssp_VERSION(struct ndr_push *ndr, int ndr_flags, const struct ntlmssp_VERSION *r)
     159             : {
     160           5 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     161           5 :         if (ndr_flags & NDR_SCALARS) {
     162           5 :                 NDR_CHECK(ndr_push_align(ndr, 2));
     163          10 :                 NDR_CHECK(ndr_push_ntlmssp_WindowsMajorVersion(ndr, NDR_SCALARS, r->ProductMajorVersion));
     164          10 :                 NDR_CHECK(ndr_push_ntlmssp_WindowsMinorVersion(ndr, NDR_SCALARS, r->ProductMinorVersion));
     165           5 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ProductBuild));
     166           5 :                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Reserved, 3));
     167          10 :                 NDR_CHECK(ndr_push_ntlmssp_NTLMRevisionCurrent(ndr, NDR_SCALARS, r->NTLMRevisionCurrent));
     168           5 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
     169             :         }
     170           0 :         if (ndr_flags & NDR_BUFFERS) {
     171             :         }
     172           5 :         return NDR_ERR_SUCCESS;
     173             : }
     174             : 
     175          18 : _PUBLIC_ enum ndr_err_code ndr_pull_ntlmssp_VERSION(struct ndr_pull *ndr, int ndr_flags, struct ntlmssp_VERSION *r)
     176             : {
     177          18 :         uint32_t size_Reserved_0 = 0;
     178          18 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     179          18 :         if (ndr_flags & NDR_SCALARS) {
     180          18 :                 NDR_CHECK(ndr_pull_align(ndr, 2));
     181          30 :                 NDR_CHECK(ndr_pull_ntlmssp_WindowsMajorVersion(ndr, NDR_SCALARS, &r->ProductMajorVersion));
     182          30 :                 NDR_CHECK(ndr_pull_ntlmssp_WindowsMinorVersion(ndr, NDR_SCALARS, &r->ProductMinorVersion));
     183          18 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ProductBuild));
     184          18 :                 size_Reserved_0 = 3;
     185          18 :                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Reserved, size_Reserved_0));
     186          30 :                 NDR_CHECK(ndr_pull_ntlmssp_NTLMRevisionCurrent(ndr, NDR_SCALARS, &r->NTLMRevisionCurrent));
     187          18 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
     188             :         }
     189           6 :         if (ndr_flags & NDR_BUFFERS) {
     190             :         }
     191          18 :         return NDR_ERR_SUCCESS;
     192             : }
     193             : 
     194           0 : static void ndr_print_flags_ntlmssp_VERSION(struct ndr_print *ndr, const char *name, int unused, const struct ntlmssp_VERSION *r)
     195             : {
     196           0 :         ndr_print_ntlmssp_VERSION(ndr, name, r);
     197           0 : }
     198             : 
     199          18 : _PUBLIC_ void ndr_print_ntlmssp_VERSION(struct ndr_print *ndr, const char *name, const struct ntlmssp_VERSION *r)
     200             : {
     201          18 :         ndr_print_struct(ndr, name, "ntlmssp_VERSION");
     202          18 :         if (r == NULL) { ndr_print_null(ndr); return; }
     203          18 :         ndr->depth++;
     204          18 :         ndr_print_ntlmssp_WindowsMajorVersion(ndr, "ProductMajorVersion", r->ProductMajorVersion);
     205          18 :         ndr_print_ntlmssp_WindowsMinorVersion(ndr, "ProductMinorVersion", r->ProductMinorVersion);
     206          18 :         ndr_print_uint16(ndr, "ProductBuild", r->ProductBuild);
     207          18 :         ndr_print_array_uint8(ndr, "Reserved", r->Reserved, 3);
     208          18 :         ndr_print_ntlmssp_NTLMRevisionCurrent(ndr, "NTLMRevisionCurrent", r->NTLMRevisionCurrent);
     209          18 :         ndr->depth--;
     210             : }
     211             : 
     212          11 : static enum ndr_err_code ndr_push_ntlmssp_Version(struct ndr_push *ndr, int ndr_flags, const union ntlmssp_Version *r)
     213             : {
     214             :         uint32_t level;
     215          11 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     216          11 :         if (ndr_flags & NDR_SCALARS) {
     217             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
     218           6 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
     219           6 :                 NDR_CHECK(ndr_push_union_align(ndr, 2));
     220           6 :                 switch (level) {
     221           5 :                         case NTLMSSP_NEGOTIATE_VERSION: {
     222           5 :                                 NDR_CHECK(ndr_push_ntlmssp_VERSION(ndr, NDR_SCALARS, &r->version));
     223           0 :                         break; }
     224             : 
     225           0 :                         default: {
     226           0 :                         break; }
     227             : 
     228             :                 }
     229           5 :         }
     230           0 :         return NDR_ERR_SUCCESS;
     231             : }
     232             : 
     233          38 : static enum ndr_err_code ndr_pull_ntlmssp_Version(struct ndr_pull *ndr, int ndr_flags, union ntlmssp_Version *r)
     234             : {
     235             :         uint32_t level;
     236          38 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     237          38 :         if (ndr_flags & NDR_SCALARS) {
     238             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
     239          19 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
     240          19 :                 NDR_CHECK(ndr_pull_union_align(ndr, 2));
     241          19 :                 switch (level) {
     242          18 :                         case NTLMSSP_NEGOTIATE_VERSION: {
     243          18 :                                 NDR_CHECK(ndr_pull_ntlmssp_VERSION(ndr, NDR_SCALARS, &r->version));
     244           6 :                         break; }
     245             : 
     246           0 :                         default: {
     247           0 :                         break; }
     248             : 
     249             :                 }
     250          19 :         }
     251          12 :         return NDR_ERR_SUCCESS;
     252             : }
     253             : 
     254           2 : _PUBLIC_ enum ndr_err_code ndr_push_NEGOTIATE_MESSAGE(struct ndr_push *ndr, int ndr_flags, const struct NEGOTIATE_MESSAGE *r)
     255             : {
     256           2 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     257           2 :         if (ndr_flags & NDR_SCALARS) {
     258           2 :                 NDR_CHECK(ndr_push_align(ndr, 5));
     259           2 :                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, "NTLMSSP", 8, sizeof(uint8_t), CH_DOS));
     260           4 :                 NDR_CHECK(ndr_push_ntlmssp_MessageType(ndr, NDR_SCALARS, NtLmNegotiate));
     261           4 :                 NDR_CHECK(ndr_push_NEGOTIATE(ndr, NDR_SCALARS, r->NegotiateFlags));
     262           2 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->DomainName?strlen(r->DomainName):0));
     263           2 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->DomainName?strlen(r->DomainName):0));
     264             :                 {
     265           2 :                         uint32_t _flags_save_string = ndr->flags;
     266           2 :                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
     267           2 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->DomainName));
     268           2 :                         ndr->flags = _flags_save_string;
     269             :                 }
     270           2 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Workstation?strlen(r->Workstation):0));
     271           2 :                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Workstation?strlen(r->Workstation):0));
     272             :                 {
     273           2 :                         uint32_t _flags_save_string = ndr->flags;
     274           2 :                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
     275           2 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->Workstation));
     276           2 :                         ndr->flags = _flags_save_string;
     277             :                 }
     278           2 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
     279           2 :                 NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_SCALARS, &r->Version));
     280           2 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
     281             :         }
     282           2 :         if (ndr_flags & NDR_BUFFERS) {
     283             :                 {
     284           2 :                         uint32_t _flags_save_string = ndr->flags;
     285           2 :                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
     286           2 :                         if (r->DomainName) {
     287           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->DomainName));
     288             :                                 {
     289             :                                         struct ndr_push *_ndr_DomainName;
     290           0 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_DomainName, 0, r->DomainName?strlen(r->DomainName):0));
     291           0 :                                         NDR_CHECK(ndr_push_string(_ndr_DomainName, NDR_SCALARS, r->DomainName));
     292           0 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_DomainName, 0, r->DomainName?strlen(r->DomainName):0));
     293             :                                 }
     294           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->DomainName));
     295             :                         }
     296           2 :                         ndr->flags = _flags_save_string;
     297             :                 }
     298             :                 {
     299           2 :                         uint32_t _flags_save_string = ndr->flags;
     300           2 :                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
     301           2 :                         if (r->Workstation) {
     302           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->Workstation));
     303             :                                 {
     304             :                                         struct ndr_push *_ndr_Workstation;
     305           0 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_Workstation, 0, r->Workstation?strlen(r->Workstation):0));
     306           0 :                                         NDR_CHECK(ndr_push_string(_ndr_Workstation, NDR_SCALARS, r->Workstation));
     307           0 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_Workstation, 0, r->Workstation?strlen(r->Workstation):0));
     308             :                                 }
     309           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->Workstation));
     310             :                         }
     311           2 :                         ndr->flags = _flags_save_string;
     312             :                 }
     313           2 :                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
     314           2 :                 NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_BUFFERS, &r->Version));
     315             :         }
     316           0 :         return NDR_ERR_SUCCESS;
     317             : }
     318             : 
     319           6 : _PUBLIC_ enum ndr_err_code ndr_pull_NEGOTIATE_MESSAGE(struct ndr_pull *ndr, int ndr_flags, struct NEGOTIATE_MESSAGE *r)
     320             : {
     321           6 :         uint32_t size_Signature_0 = 0;
     322             :         uint32_t _ptr_DomainName;
     323           6 :         TALLOC_CTX *_mem_save_DomainName_0 = NULL;
     324             :         uint32_t _ptr_Workstation;
     325           6 :         TALLOC_CTX *_mem_save_Workstation_0 = NULL;
     326           6 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     327           6 :         if (ndr_flags & NDR_SCALARS) {
     328           6 :                 NDR_CHECK(ndr_pull_align(ndr, 5));
     329           6 :                 size_Signature_0 = 8;
     330           6 :                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->Signature, size_Signature_0, sizeof(uint8_t), CH_DOS));
     331          10 :                 NDR_CHECK(ndr_pull_ntlmssp_MessageType(ndr, NDR_SCALARS, &r->MessageType));
     332          10 :                 NDR_CHECK(ndr_pull_NEGOTIATE(ndr, NDR_SCALARS, &r->NegotiateFlags));
     333           6 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DomainNameLen));
     334           6 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DomainNameMaxLen));
     335             :                 {
     336           6 :                         uint32_t _flags_save_string = ndr->flags;
     337           6 :                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
     338           6 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_DomainName));
     339           6 :                         if (_ptr_DomainName) {
     340           2 :                                 NDR_PULL_ALLOC(ndr, r->DomainName);
     341           2 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DomainName, _ptr_DomainName));
     342             :                         } else {
     343           4 :                                 r->DomainName = NULL;
     344             :                         }
     345           6 :                         ndr->flags = _flags_save_string;
     346             :                 }
     347           6 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->WorkstationLen));
     348           6 :                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->WorkstationMaxLen));
     349             :                 {
     350           6 :                         uint32_t _flags_save_string = ndr->flags;
     351           6 :                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
     352           6 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Workstation));
     353           6 :                         if (_ptr_Workstation) {
     354           2 :                                 NDR_PULL_ALLOC(ndr, r->Workstation);
     355           2 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->Workstation, _ptr_Workstation));
     356             :                         } else {
     357           4 :                                 r->Workstation = NULL;
     358             :                         }
     359           6 :                         ndr->flags = _flags_save_string;
     360             :                 }
     361           6 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
     362           6 :                 NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_SCALARS, &r->Version));
     363           6 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
     364             :         }
     365           6 :         if (ndr_flags & NDR_BUFFERS) {
     366             :                 {
     367           6 :                         uint32_t _flags_save_string = ndr->flags;
     368           6 :                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
     369           6 :                         if (r->DomainName) {
     370             :                                 uint32_t _relative_save_offset;
     371           2 :                                 _relative_save_offset = ndr->offset;
     372           2 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DomainName));
     373           2 :                                 _mem_save_DomainName_0 = NDR_PULL_GET_MEM_CTX(ndr);
     374           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->DomainName, 0);
     375             :                                 {
     376             :                                         struct ndr_pull *_ndr_DomainName;
     377           2 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_DomainName, 0, r->DomainNameLen));
     378           2 :                                         NDR_CHECK(ndr_pull_string(_ndr_DomainName, NDR_SCALARS, &r->DomainName));
     379           2 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_DomainName, 0, r->DomainNameLen));
     380             :                                 }
     381           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DomainName_0, 0);
     382           2 :                                 if (ndr->offset > ndr->relative_highest_offset) {
     383           2 :                                         ndr->relative_highest_offset = ndr->offset;
     384             :                                 }
     385           2 :                                 ndr->offset = _relative_save_offset;
     386             :                         }
     387           6 :                         ndr->flags = _flags_save_string;
     388             :                 }
     389             :                 {
     390           6 :                         uint32_t _flags_save_string = ndr->flags;
     391           6 :                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
     392           6 :                         if (r->Workstation) {
     393             :                                 uint32_t _relative_save_offset;
     394           2 :                                 _relative_save_offset = ndr->offset;
     395           2 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->Workstation));
     396           2 :                                 _mem_save_Workstation_0 = NDR_PULL_GET_MEM_CTX(ndr);
     397           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->Workstation, 0);
     398             :                                 {
     399             :                                         struct ndr_pull *_ndr_Workstation;
     400           2 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_Workstation, 0, r->WorkstationLen));
     401           2 :                                         NDR_CHECK(ndr_pull_string(_ndr_Workstation, NDR_SCALARS, &r->Workstation));
     402           2 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_Workstation, 0, r->WorkstationLen));
     403             :                                 }
     404           2 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Workstation_0, 0);
     405           2 :                                 if (ndr->offset > ndr->relative_highest_offset) {
     406           0 :                                         ndr->relative_highest_offset = ndr->offset;
     407             :                                 }
     408           2 :                                 ndr->offset = _relative_save_offset;
     409             :                         }
     410           6 :                         ndr->flags = _flags_save_string;
     411             :                 }
     412           6 :                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
     413           6 :                 NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_BUFFERS, &r->Version));
     414             :         }
     415           2 :         return NDR_ERR_SUCCESS;
     416             : }
     417             : 
     418           0 : static void ndr_print_flags_NEGOTIATE_MESSAGE(struct ndr_print *ndr, const char *name, int unused, const struct NEGOTIATE_MESSAGE *r)
     419             : {
     420           0 :         ndr_print_NEGOTIATE_MESSAGE(ndr, name, r);
     421           0 : }
     422             : 
     423           6 : _PUBLIC_ void ndr_print_NEGOTIATE_MESSAGE(struct ndr_print *ndr, const char *name, const struct NEGOTIATE_MESSAGE *r)
     424             : {
     425           6 :         ndr_print_struct(ndr, name, "NEGOTIATE_MESSAGE");
     426           6 :         if (r == NULL) { ndr_print_null(ndr); return; }
     427           6 :         ndr->depth++;
     428           6 :         ndr_print_string(ndr, "Signature", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?"NTLMSSP":r->Signature);
     429           6 :         ndr_print_ntlmssp_MessageType(ndr, "MessageType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NtLmNegotiate:r->MessageType);
     430           6 :         ndr_print_NEGOTIATE(ndr, "NegotiateFlags", r->NegotiateFlags);
     431           6 :         ndr_print_uint16(ndr, "DomainNameLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->DomainName?strlen(r->DomainName):0:r->DomainNameLen);
     432           6 :         ndr_print_uint16(ndr, "DomainNameMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->DomainNameLen:r->DomainNameMaxLen);
     433             :         {
     434           6 :                 uint32_t _flags_save_string = ndr->flags;
     435           6 :                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
     436           6 :                 ndr_print_ptr(ndr, "DomainName", r->DomainName);
     437           6 :                 ndr->depth++;
     438           6 :                 if (r->DomainName) {
     439           2 :                         ndr_print_string(ndr, "DomainName", r->DomainName);
     440             :                 }
     441           6 :                 ndr->depth--;
     442           6 :                 ndr->flags = _flags_save_string;
     443             :         }
     444           6 :         ndr_print_uint16(ndr, "WorkstationLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->Workstation?strlen(r->Workstation):0:r->WorkstationLen);
     445           6 :         ndr_print_uint16(ndr, "WorkstationMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->WorkstationLen:r->WorkstationMaxLen);
     446             :         {
     447           6 :                 uint32_t _flags_save_string = ndr->flags;
     448           6 :                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
     449           6 :                 ndr_print_ptr(ndr, "Workstation", r->Workstation);
     450           6 :                 ndr->depth++;
     451           6 :                 if (r->Workstation) {
     452           2 :                         ndr_print_string(ndr, "Workstation", r->Workstation);
     453             :                 }
     454           6 :                 ndr->depth--;
     455           6 :                 ndr->flags = _flags_save_string;
     456             :         }
     457           6 :         ndr_print_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION);
     458           6 :         ndr_print_ntlmssp_Version(ndr, "Version", &r->Version);
     459           6 :         ndr->depth--;
     460             : }
     461             : 
     462      453889 : static enum ndr_err_code ndr_push_ntlmssp_AvId(struct ndr_push *ndr, int ndr_flags, enum ntlmssp_AvId r)
     463             : {
     464      453951 :         NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
     465      453889 :         return NDR_ERR_SUCCESS;
     466             : }
     467             : 
     468      466295 : static enum ndr_err_code ndr_pull_ntlmssp_AvId(struct ndr_pull *ndr, int ndr_flags, enum ntlmssp_AvId *r)
     469             : {
     470             :         uint16_t v;
     471      469793 :         NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
     472      469793 :         *r = v;
     473      466295 :         return NDR_ERR_SUCCESS;
     474             : }
     475             : 
     476          68 : _PUBLIC_ void ndr_print_ntlmssp_AvId(struct ndr_print *ndr, const char *name, enum ntlmssp_AvId r)
     477             : {
     478          68 :         const char *val = NULL;
     479             : 
     480          68 :         switch (r) {
     481          10 :                 case MsvAvEOL: val = "MsvAvEOL"; break;
     482          10 :                 case MsvAvNbComputerName: val = "MsvAvNbComputerName"; break;
     483          10 :                 case MsvAvNbDomainName: val = "MsvAvNbDomainName"; break;
     484          10 :                 case MsvAvDnsComputerName: val = "MsvAvDnsComputerName"; break;
     485          10 :                 case MsvAvDnsDomainName: val = "MsvAvDnsDomainName"; break;
     486           0 :                 case MsvAvDnsTreeName: val = "MsvAvDnsTreeName"; break;
     487           2 :                 case MsvAvFlags: val = "MsvAvFlags"; break;
     488           4 :                 case MsvAvTimestamp: val = "MsvAvTimestamp"; break;
     489           4 :                 case MsvAvSingleHost: val = "MsvAvSingleHost"; break;
     490           4 :                 case MsvAvTargetName: val = "MsvAvTargetName"; break;
     491           4 :                 case MsvChannelBindings: val = "MsvChannelBindings"; break;
     492             :         }
     493          68 :         ndr_print_enum(ndr, name, "ENUM", val, r);
     494          68 : }
     495             : 
     496      113764 : static enum ndr_err_code ndr_push_ntlmssp_SingleHostData(struct ndr_push *ndr, int ndr_flags, const struct ntlmssp_SingleHostData *r)
     497             : {
     498             :         {
     499      113764 :                 uint32_t _flags_save_STRUCT = ndr->flags;
     500      113764 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
     501      113764 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     502      113764 :                 if (ndr_flags & NDR_SCALARS) {
     503      113764 :                         NDR_CHECK(ndr_push_align(ndr, 4));
     504      113764 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8 + ndr_size_LSAP_TOKEN_INFO_INTEGRITY(&r->token_info, 0) + r->remaining.length));
     505      113764 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
     506      113764 :                         NDR_CHECK(ndr_push_LSAP_TOKEN_INFO_INTEGRITY(ndr, NDR_SCALARS, &r->token_info));
     507             :                         {
     508      113764 :                                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
     509      113764 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     510      113764 :                                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->remaining));
     511      113764 :                                 ndr->flags = _flags_save_DATA_BLOB;
     512             :                         }
     513      113764 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     514             :                 }
     515      113764 :                 if (ndr_flags & NDR_BUFFERS) {
     516             :                 }
     517      113764 :                 ndr->flags = _flags_save_STRUCT;
     518             :         }
     519      113764 :         return NDR_ERR_SUCCESS;
     520             : }
     521             : 
     522       27543 : static enum ndr_err_code ndr_pull_ntlmssp_SingleHostData(struct ndr_pull *ndr, int ndr_flags, struct ntlmssp_SingleHostData *r)
     523             : {
     524             :         {
     525       27543 :                 uint32_t _flags_save_STRUCT = ndr->flags;
     526       27543 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
     527       27543 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     528       27543 :                 if (ndr_flags & NDR_SCALARS) {
     529       27543 :                         NDR_CHECK(ndr_pull_align(ndr, 4));
     530       27543 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Size));
     531       27543 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Z4));
     532       27543 :                         NDR_CHECK(ndr_pull_LSAP_TOKEN_INFO_INTEGRITY(ndr, NDR_SCALARS, &r->token_info));
     533             :                         {
     534       27543 :                                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
     535       27543 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     536       27543 :                                 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->remaining));
     537       27543 :                                 ndr->flags = _flags_save_DATA_BLOB;
     538             :                         }
     539       27543 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
     540             :                 }
     541       27541 :                 if (ndr_flags & NDR_BUFFERS) {
     542             :                 }
     543       27543 :                 ndr->flags = _flags_save_STRUCT;
     544             :         }
     545       27543 :         return NDR_ERR_SUCCESS;
     546             : }
     547             : 
     548           4 : _PUBLIC_ void ndr_print_ntlmssp_SingleHostData(struct ndr_print *ndr, const char *name, const struct ntlmssp_SingleHostData *r)
     549             : {
     550           4 :         ndr_print_struct(ndr, name, "ntlmssp_SingleHostData");
     551           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
     552             :         {
     553           4 :                 uint32_t _flags_save_STRUCT = ndr->flags;
     554           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
     555           4 :                 ndr->depth++;
     556           4 :                 ndr_print_uint32(ndr, "Size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8 + ndr_size_LSAP_TOKEN_INFO_INTEGRITY(&r->token_info, 0) + r->remaining.length:r->Size);
     557           4 :                 ndr_print_uint32(ndr, "Z4", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->Z4);
     558           4 :                 ndr_print_LSAP_TOKEN_INFO_INTEGRITY(ndr, "token_info", &r->token_info);
     559             :                 {
     560           4 :                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
     561           4 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     562           4 :                         ndr_print_DATA_BLOB(ndr, "remaining", r->remaining);
     563           2 :                         ndr->flags = _flags_save_DATA_BLOB;
     564             :                 }
     565           4 :                 ndr->depth--;
     566           4 :                 ndr->flags = _flags_save_STRUCT;
     567             :         }
     568             : }
     569             : 
     570      109004 : static enum ndr_err_code ndr_push_ntlmssp_AvFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
     571             : {
     572      109004 :         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
     573      109004 :         return NDR_ERR_SUCCESS;
     574             : }
     575             : 
     576       26325 : static enum ndr_err_code ndr_pull_ntlmssp_AvFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
     577             : {
     578             :         uint32_t v;
     579       26325 :         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
     580       26325 :         *r = v;
     581       26325 :         return NDR_ERR_SUCCESS;
     582             : }
     583             : 
     584           2 : _PUBLIC_ void ndr_print_ntlmssp_AvFlags(struct ndr_print *ndr, const char *name, uint32_t r)
     585             : {
     586           2 :         ndr_print_uint32(ndr, name, r);
     587           2 :         ndr->depth++;
     588           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT", NTLMSSP_AVFLAG_CONSTRAINTED_ACCOUNT, r);
     589           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE", NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE, r);
     590           2 :         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NTLMSSP_AVFLAG_TARGET_SPN_FROM_UNTRUSTED_SOURCE", NTLMSSP_AVFLAG_TARGET_SPN_FROM_UNTRUSTED_SOURCE, r);
     591           2 :         ndr->depth--;
     592           2 : }
     593             : 
     594     1815804 : static enum ndr_err_code ndr_push_ntlmssp_AvValue(struct ndr_push *ndr, int ndr_flags, const union ntlmssp_AvValue *r)
     595             : {
     596             :         uint32_t level;
     597             :         {
     598     1815804 :                 uint32_t _flags_save_UNION = ndr->flags;
     599     1815804 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
     600     1815804 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     601     1815804 :                 if (ndr_flags & NDR_SCALARS) {
     602             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
     603     1815804 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
     604     1815804 :                         NDR_CHECK(ndr_push_union_align(ndr, 4));
     605     1815804 :                         switch (level) {
     606      229088 :                                 case MsvAvEOL: {
     607      229088 :                                 break; }
     608             : 
     609      229136 :                                 case MsvAvNbComputerName: {
     610             :                                         {
     611      229136 :                                                 uint32_t _flags_save_string = ndr->flags;
     612      229136 :                                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     613      229136 :                                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->AvNbComputerName));
     614      229088 :                                                 ndr->flags = _flags_save_string;
     615             :                                         }
     616      229088 :                                 break; }
     617             : 
     618      229136 :                                 case MsvAvNbDomainName: {
     619             :                                         {
     620      229136 :                                                 uint32_t _flags_save_string = ndr->flags;
     621      229136 :                                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     622      229136 :                                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->AvNbDomainName));
     623      229088 :                                                 ndr->flags = _flags_save_string;
     624             :                                         }
     625      229088 :                                 break; }
     626             : 
     627      229060 :                                 case MsvAvDnsComputerName: {
     628             :                                         {
     629      229060 :                                                 uint32_t _flags_save_string = ndr->flags;
     630      229060 :                                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     631      229060 :                                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->AvDnsComputerName));
     632      229012 :                                                 ndr->flags = _flags_save_string;
     633             :                                         }
     634      229012 :                                 break; }
     635             : 
     636      229060 :                                 case MsvAvDnsDomainName: {
     637             :                                         {
     638      229060 :                                                 uint32_t _flags_save_string = ndr->flags;
     639      229060 :                                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     640      229060 :                                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->AvDnsDomainName));
     641      229012 :                                                 ndr->flags = _flags_save_string;
     642             :                                         }
     643      229012 :                                 break; }
     644             : 
     645           0 :                                 case MsvAvDnsTreeName: {
     646             :                                         {
     647           0 :                                                 uint32_t _flags_save_string = ndr->flags;
     648           0 :                                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     649           0 :                                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->AvDnsTreeName));
     650           0 :                                                 ndr->flags = _flags_save_string;
     651             :                                         }
     652           0 :                                 break; }
     653             : 
     654      109004 :                                 case MsvAvFlags: {
     655      109004 :                                         NDR_CHECK(ndr_push_ntlmssp_AvFlags(ndr, NDR_SCALARS, r->AvFlags));
     656      109004 :                                 break; }
     657             : 
     658      221796 :                                 case MsvAvTimestamp: {
     659      221796 :                                         NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->AvTimestamp));
     660      221788 :                                 break; }
     661             : 
     662      113764 :                                 case MsvAvSingleHost: {
     663      113764 :                                         NDR_CHECK(ndr_push_ntlmssp_SingleHostData(ndr, NDR_SCALARS, &r->AvSingleHost));
     664      113764 :                                 break; }
     665             : 
     666      111948 :                                 case MsvAvTargetName: {
     667             :                                         {
     668      111948 :                                                 uint32_t _flags_save_string = ndr->flags;
     669      111948 :                                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     670      111948 :                                                 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->AvTargetName));
     671      111948 :                                                 ndr->flags = _flags_save_string;
     672             :                                         }
     673      111948 :                                 break; }
     674             : 
     675      113764 :                                 case MsvChannelBindings: {
     676      113764 :                                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->ChannelBindings, 16));
     677      113764 :                                 break; }
     678             : 
     679           0 :                                 default: {
     680             :                                         {
     681           0 :                                                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
     682           0 :                                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     683           0 :                                                 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
     684           0 :                                                 ndr->flags = _flags_save_DATA_BLOB;
     685             :                                         }
     686           0 :                                 break; }
     687             : 
     688             :                         }
     689           0 :                 }
     690     1815804 :                 ndr->flags = _flags_save_UNION;
     691             :         }
     692     1815804 :         return NDR_ERR_SUCCESS;
     693             : }
     694             : 
     695      469793 : static enum ndr_err_code ndr_pull_ntlmssp_AvValue(struct ndr_pull *ndr, int ndr_flags, union ntlmssp_AvValue *r)
     696             : {
     697             :         uint32_t level;
     698      469793 :         uint32_t size_ChannelBindings_0 = 0;
     699             :         {
     700      469793 :                 uint32_t _flags_save_UNION = ndr->flags;
     701      469793 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
     702      469793 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     703      469793 :                 if (ndr_flags & NDR_SCALARS) {
     704             :                         /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
     705      469793 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
     706      469793 :                         NDR_CHECK(ndr_pull_union_align(ndr, 4));
     707      469793 :                         switch (level) {
     708       63880 :                                 case MsvAvEOL: {
     709       63880 :                                 break; }
     710             : 
     711       65038 :                                 case MsvAvNbComputerName: {
     712             :                                         {
     713       65038 :                                                 uint32_t _flags_save_string = ndr->flags;
     714       65038 :                                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     715       65038 :                                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->AvNbComputerName));
     716       63878 :                                                 ndr->flags = _flags_save_string;
     717             :                                         }
     718       63878 :                                 break; }
     719             : 
     720       65040 :                                 case MsvAvNbDomainName: {
     721             :                                         {
     722       65040 :                                                 uint32_t _flags_save_string = ndr->flags;
     723       65040 :                                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     724       65040 :                                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->AvNbDomainName));
     725       63880 :                                                 ndr->flags = _flags_save_string;
     726             :                                         }
     727       63880 :                                 break; }
     728             : 
     729       56015 :                                 case MsvAvDnsComputerName: {
     730             :                                         {
     731       56015 :                                                 uint32_t _flags_save_string = ndr->flags;
     732       56015 :                                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     733       56015 :                                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->AvDnsComputerName));
     734       56009 :                                                 ndr->flags = _flags_save_string;
     735             :                                         }
     736       56009 :                                 break; }
     737             : 
     738       56015 :                                 case MsvAvDnsDomainName: {
     739             :                                         {
     740       56015 :                                                 uint32_t _flags_save_string = ndr->flags;
     741       56015 :                                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     742       56015 :                                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->AvDnsDomainName));
     743       56009 :                                                 ndr->flags = _flags_save_string;
     744             :                                         }
     745       56009 :                                 break; }
     746             : 
     747           0 :                                 case MsvAvDnsTreeName: {
     748             :                                         {
     749           0 :                                                 uint32_t _flags_save_string = ndr->flags;
     750           0 :                                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     751           0 :                                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->AvDnsTreeName));
     752           0 :                                                 ndr->flags = _flags_save_string;
     753             :                                         }
     754           0 :                                 break; }
     755             : 
     756       26325 :                                 case MsvAvFlags: {
     757       26325 :                                         NDR_CHECK(ndr_pull_ntlmssp_AvFlags(ndr, NDR_SCALARS, &r->AvFlags));
     758       26325 :                                 break; }
     759             : 
     760       54181 :                                 case MsvAvTimestamp: {
     761       54181 :                                         NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->AvTimestamp));
     762       54181 :                                 break; }
     763             : 
     764       27543 :                                 case MsvAvSingleHost: {
     765       27543 :                                         NDR_CHECK(ndr_pull_ntlmssp_SingleHostData(ndr, NDR_SCALARS, &r->AvSingleHost));
     766       27541 :                                 break; }
     767             : 
     768       27053 :                                 case MsvAvTargetName: {
     769             :                                         {
     770       27053 :                                                 uint32_t _flags_save_string = ndr->flags;
     771       27053 :                                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     772       27053 :                                                 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->AvTargetName));
     773       27051 :                                                 ndr->flags = _flags_save_string;
     774             :                                         }
     775       27051 :                                 break; }
     776             : 
     777       27543 :                                 case MsvChannelBindings: {
     778       27543 :                                         size_ChannelBindings_0 = 16;
     779       27543 :                                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->ChannelBindings, size_ChannelBindings_0));
     780       27541 :                                 break; }
     781             : 
     782           0 :                                 default: {
     783             :                                         {
     784           0 :                                                 uint32_t _flags_save_DATA_BLOB = ndr->flags;
     785           0 :                                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     786           0 :                                                 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
     787           0 :                                                 ndr->flags = _flags_save_DATA_BLOB;
     788             :                                         }
     789           0 :                                 break; }
     790             : 
     791             :                         }
     792           0 :                 }
     793      469793 :                 ndr->flags = _flags_save_UNION;
     794             :         }
     795      469793 :         return NDR_ERR_SUCCESS;
     796             : }
     797             : 
     798          68 : _PUBLIC_ void ndr_print_ntlmssp_AvValue(struct ndr_print *ndr, const char *name, const union ntlmssp_AvValue *r)
     799             : {
     800             :         uint32_t level;
     801             :         {
     802          68 :                 uint32_t _flags_save_UNION = ndr->flags;
     803          68 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
     804          68 :                 level = ndr_print_steal_switch_value(ndr, r);
     805          68 :                 ndr_print_union(ndr, name, level, "ntlmssp_AvValue");
     806          68 :                 switch (level) {
     807           4 :                         case MsvAvEOL:
     808           4 :                         break;
     809             : 
     810          10 :                         case MsvAvNbComputerName:
     811             :                                 {
     812          10 :                                         uint32_t _flags_save_string = ndr->flags;
     813          10 :                                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     814          10 :                                         ndr_print_string(ndr, "AvNbComputerName", r->AvNbComputerName);
     815           4 :                                         ndr->flags = _flags_save_string;
     816             :                                 }
     817          10 :                         break;
     818             : 
     819          10 :                         case MsvAvNbDomainName:
     820             :                                 {
     821          10 :                                         uint32_t _flags_save_string = ndr->flags;
     822          10 :                                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     823          10 :                                         ndr_print_string(ndr, "AvNbDomainName", r->AvNbDomainName);
     824           4 :                                         ndr->flags = _flags_save_string;
     825             :                                 }
     826          10 :                         break;
     827             : 
     828          10 :                         case MsvAvDnsComputerName:
     829             :                                 {
     830          10 :                                         uint32_t _flags_save_string = ndr->flags;
     831          10 :                                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     832          10 :                                         ndr_print_string(ndr, "AvDnsComputerName", r->AvDnsComputerName);
     833           4 :                                         ndr->flags = _flags_save_string;
     834             :                                 }
     835          10 :                         break;
     836             : 
     837          10 :                         case MsvAvDnsDomainName:
     838             :                                 {
     839          10 :                                         uint32_t _flags_save_string = ndr->flags;
     840          10 :                                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     841          10 :                                         ndr_print_string(ndr, "AvDnsDomainName", r->AvDnsDomainName);
     842           4 :                                         ndr->flags = _flags_save_string;
     843             :                                 }
     844          10 :                         break;
     845             : 
     846           0 :                         case MsvAvDnsTreeName:
     847             :                                 {
     848           0 :                                         uint32_t _flags_save_string = ndr->flags;
     849           0 :                                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     850           0 :                                         ndr_print_string(ndr, "AvDnsTreeName", r->AvDnsTreeName);
     851           0 :                                         ndr->flags = _flags_save_string;
     852             :                                 }
     853           0 :                         break;
     854             : 
     855           2 :                         case MsvAvFlags:
     856           2 :                                 ndr_print_ntlmssp_AvFlags(ndr, "AvFlags", r->AvFlags);
     857           2 :                         break;
     858             : 
     859           4 :                         case MsvAvTimestamp:
     860           4 :                                 ndr_print_NTTIME(ndr, "AvTimestamp", r->AvTimestamp);
     861           4 :                         break;
     862             : 
     863           4 :                         case MsvAvSingleHost:
     864           4 :                                 ndr_print_ntlmssp_SingleHostData(ndr, "AvSingleHost", &r->AvSingleHost);
     865           4 :                         break;
     866             : 
     867           4 :                         case MsvAvTargetName:
     868             :                                 {
     869           4 :                                         uint32_t _flags_save_string = ndr->flags;
     870           4 :                                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_UNICODE));
     871           4 :                                         ndr_print_string(ndr, "AvTargetName", r->AvTargetName);
     872           2 :                                         ndr->flags = _flags_save_string;
     873             :                                 }
     874           4 :                         break;
     875             : 
     876           4 :                         case MsvChannelBindings:
     877           4 :                                 ndr_print_array_uint8(ndr, "ChannelBindings", r->ChannelBindings, 16);
     878           4 :                         break;
     879             : 
     880           0 :                         default:
     881             :                                 {
     882           0 :                                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
     883           0 :                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
     884           0 :                                         ndr_print_DATA_BLOB(ndr, "blob", r->blob);
     885           0 :                                         ndr->flags = _flags_save_DATA_BLOB;
     886             :                                 }
     887           0 :                         break;
     888             : 
     889             :                 }
     890          68 :                 ndr->flags = _flags_save_UNION;
     891             :         }
     892          68 : }
     893             : 
     894     1361667 : static size_t ndr_size_ntlmssp_AvValue(const union ntlmssp_AvValue *r, uint32_t level, int flags)
     895             : {
     896     1361853 :         flags |= LIBNDR_FLAG_NOALIGN;
     897     1361853 :         return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_ntlmssp_AvValue);
     898             : }
     899             : 
     900      907902 : _PUBLIC_ enum ndr_err_code ndr_push_AV_PAIR(struct ndr_push *ndr, int ndr_flags, const struct AV_PAIR *r)
     901             : {
     902             :         {
     903      907902 :                 uint32_t _flags_save_STRUCT = ndr->flags;
     904      907902 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
     905      907902 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
     906      907902 :                 if (ndr_flags & NDR_SCALARS) {
     907      453951 :                         NDR_CHECK(ndr_push_align(ndr, 4));
     908      454013 :                         NDR_CHECK(ndr_push_ntlmssp_AvId(ndr, NDR_SCALARS, r->AvId));
     909      454013 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_ntlmssp_AvValue(&r->Value, r->AvId, 0)));
     910             :                         {
     911             :                                 struct ndr_push *_ndr_Value;
     912      454013 :                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_Value, 0, ndr_size_ntlmssp_AvValue(&r->Value, r->AvId, 0)));
     913      453951 :                                 NDR_CHECK(ndr_push_set_switch_value(_ndr_Value, &r->Value, r->AvId));
     914      453951 :                                 NDR_CHECK(ndr_push_ntlmssp_AvValue(_ndr_Value, NDR_SCALARS|NDR_BUFFERS, &r->Value));
     915      454013 :                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_Value, 0, ndr_size_ntlmssp_AvValue(&r->Value, r->AvId, 0)));
     916             :                         }
     917      453951 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 4));
     918             :                 }
     919      907778 :                 if (ndr_flags & NDR_BUFFERS) {
     920             :                 }
     921      907902 :                 ndr->flags = _flags_save_STRUCT;
     922             :         }
     923      907902 :         return NDR_ERR_SUCCESS;
     924             : }
     925             : 
     926      939586 : _PUBLIC_ enum ndr_err_code ndr_pull_AV_PAIR(struct ndr_pull *ndr, int ndr_flags, struct AV_PAIR *r)
     927             : {
     928             :         {
     929      939586 :                 uint32_t _flags_save_STRUCT = ndr->flags;
     930      939586 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
     931      939586 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
     932      939586 :                 if (ndr_flags & NDR_SCALARS) {
     933      469793 :                         NDR_CHECK(ndr_pull_align(ndr, 4));
     934      473291 :                         NDR_CHECK(ndr_pull_ntlmssp_AvId(ndr, NDR_SCALARS, &r->AvId));
     935      469793 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->AvLen));
     936             :                         {
     937             :                                 struct ndr_pull *_ndr_Value;
     938      469793 :                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_Value, 0, r->AvLen));
     939      469793 :                                 NDR_CHECK(ndr_pull_set_switch_value(_ndr_Value, &r->Value, r->AvId));
     940      469793 :                                 NDR_CHECK(ndr_pull_ntlmssp_AvValue(_ndr_Value, NDR_SCALARS|NDR_BUFFERS, &r->Value));
     941      469793 :                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_Value, 0, r->AvLen));
     942             :                         }
     943      469793 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
     944             :                 }
     945      932590 :                 if (ndr_flags & NDR_BUFFERS) {
     946             :                 }
     947      939586 :                 ndr->flags = _flags_save_STRUCT;
     948             :         }
     949      939586 :         return NDR_ERR_SUCCESS;
     950             : }
     951             : 
     952           0 : static void ndr_print_flags_AV_PAIR(struct ndr_print *ndr, const char *name, int unused, const struct AV_PAIR *r)
     953             : {
     954           0 :         ndr_print_AV_PAIR(ndr, name, r);
     955           0 : }
     956             : 
     957          68 : _PUBLIC_ void ndr_print_AV_PAIR(struct ndr_print *ndr, const char *name, const struct AV_PAIR *r)
     958             : {
     959          68 :         ndr_print_struct(ndr, name, "AV_PAIR");
     960          68 :         if (r == NULL) { ndr_print_null(ndr); return; }
     961             :         {
     962          68 :                 uint32_t _flags_save_STRUCT = ndr->flags;
     963          68 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
     964          68 :                 ndr->depth++;
     965          68 :                 ndr_print_ntlmssp_AvId(ndr, "AvId", r->AvId);
     966          68 :                 ndr_print_uint16(ndr, "AvLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_ntlmssp_AvValue(&r->Value, r->AvId, 0):r->AvLen);
     967          68 :                 ndr_print_set_switch_value(ndr, &r->Value, r->AvId);
     968          68 :                 ndr_print_ntlmssp_AvValue(ndr, "Value", &r->Value);
     969          68 :                 ndr->depth--;
     970          68 :                 ndr->flags = _flags_save_STRUCT;
     971             :         }
     972             : }
     973             : 
     974           0 : static void ndr_print_flags_AV_PAIR_LIST(struct ndr_print *ndr, const char *name, int unused, const struct AV_PAIR_LIST *r)
     975             : {
     976           0 :         ndr_print_AV_PAIR_LIST(ndr, name, r);
     977           0 : }
     978             : 
     979          10 : _PUBLIC_ void ndr_print_AV_PAIR_LIST(struct ndr_print *ndr, const char *name, const struct AV_PAIR_LIST *r)
     980             : {
     981             :         uint32_t cntr_pair_0;
     982          10 :         ndr_print_struct(ndr, name, "AV_PAIR_LIST");
     983          10 :         if (r == NULL) { ndr_print_null(ndr); return; }
     984             :         {
     985          10 :                 uint32_t _flags_save_STRUCT = ndr->flags;
     986          10 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
     987          10 :                 ndr->depth++;
     988          10 :                 ndr_print_uint32(ndr, "count", r->count);
     989          10 :                 ndr->print(ndr, "%s: ARRAY(%d)", "pair", (int)r->count);
     990          10 :                 ndr->depth++;
     991          78 :                 for (cntr_pair_0 = 0; cntr_pair_0 < (r->count); cntr_pair_0++) {
     992          68 :                         ndr_print_AV_PAIR(ndr, "pair", &r->pair[cntr_pair_0]);
     993             :                 }
     994          10 :                 ndr->depth--;
     995          10 :                 ndr->depth--;
     996          10 :                 ndr->flags = _flags_save_STRUCT;
     997             :         }
     998             : }
     999             : 
    1000          10 : _PUBLIC_ size_t ndr_size_AV_PAIR_LIST(const struct AV_PAIR_LIST *r, int flags)
    1001             : {
    1002          10 :         flags |= LIBNDR_FLAG_NOALIGN;
    1003          10 :         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_AV_PAIR_LIST);
    1004             : }
    1005             : 
    1006           3 : _PUBLIC_ enum ndr_err_code ndr_push_CHALLENGE_MESSAGE(struct ndr_push *ndr, int ndr_flags, const struct CHALLENGE_MESSAGE *r)
    1007             : {
    1008             :         {
    1009           3 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1010           3 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1011           3 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1012           3 :                 if (ndr_flags & NDR_SCALARS) {
    1013           3 :                         NDR_CHECK(ndr_push_align(ndr, 5));
    1014           3 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, "NTLMSSP", 8, sizeof(uint8_t), CH_DOS));
    1015           6 :                         NDR_CHECK(ndr_push_ntlmssp_MessageType(ndr, NDR_SCALARS, NtLmChallenge));
    1016           3 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->TargetName)));
    1017           3 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->TargetName)));
    1018             :                         {
    1019           3 :                                 uint32_t _flags_save_string = ndr->flags;
    1020           3 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1021           3 :                                 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->TargetName));
    1022           3 :                                 ndr->flags = _flags_save_string;
    1023             :                         }
    1024           6 :                         NDR_CHECK(ndr_push_NEGOTIATE(ndr, NDR_SCALARS, r->NegotiateFlags));
    1025           3 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->ServerChallenge, 8));
    1026           3 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Reserved, 8));
    1027           3 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_AV_PAIR_LIST(r->TargetInfo, ndr->flags)));
    1028           3 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_AV_PAIR_LIST(r->TargetInfo, ndr->flags)));
    1029           3 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->TargetInfo));
    1030           3 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
    1031           3 :                         NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_SCALARS, &r->Version));
    1032           3 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1033             :                 }
    1034           3 :                 if (ndr_flags & NDR_BUFFERS) {
    1035             :                         {
    1036           3 :                                 uint32_t _flags_save_string = ndr->flags;
    1037           3 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1038           3 :                                 if (r->TargetName) {
    1039           3 :                                         NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->TargetName));
    1040             :                                         {
    1041             :                                                 struct ndr_push *_ndr_TargetName;
    1042           4 :                                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_TargetName, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->TargetName)));
    1043           3 :                                                 NDR_CHECK(ndr_push_string(_ndr_TargetName, NDR_SCALARS, r->TargetName));
    1044           3 :                                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_TargetName, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->TargetName)));
    1045             :                                         }
    1046           2 :                                         NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->TargetName));
    1047             :                                 }
    1048           2 :                                 ndr->flags = _flags_save_string;
    1049             :                         }
    1050           2 :                         if (r->TargetInfo) {
    1051           2 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->TargetInfo));
    1052             :                                 {
    1053             :                                         struct ndr_push *_ndr_TargetInfo;
    1054           2 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_TargetInfo, 0, ndr_size_AV_PAIR_LIST(r->TargetInfo, ndr->flags)));
    1055           2 :                                         NDR_CHECK(ndr_push_AV_PAIR_LIST(_ndr_TargetInfo, NDR_SCALARS|NDR_BUFFERS, r->TargetInfo));
    1056           2 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_TargetInfo, 0, ndr_size_AV_PAIR_LIST(r->TargetInfo, ndr->flags)));
    1057             :                                 }
    1058           2 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->TargetInfo));
    1059             :                         }
    1060           2 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
    1061           2 :                         NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_BUFFERS, &r->Version));
    1062             :                 }
    1063           2 :                 ndr->flags = _flags_save_STRUCT;
    1064             :         }
    1065           2 :         return NDR_ERR_SUCCESS;
    1066             : }
    1067             : 
    1068           7 : _PUBLIC_ enum ndr_err_code ndr_pull_CHALLENGE_MESSAGE(struct ndr_pull *ndr, int ndr_flags, struct CHALLENGE_MESSAGE *r)
    1069             : {
    1070           7 :         uint32_t size_Signature_0 = 0;
    1071             :         uint32_t _ptr_TargetName;
    1072           7 :         TALLOC_CTX *_mem_save_TargetName_0 = NULL;
    1073           7 :         uint32_t size_ServerChallenge_0 = 0;
    1074           7 :         uint32_t size_Reserved_0 = 0;
    1075             :         uint32_t _ptr_TargetInfo;
    1076           7 :         TALLOC_CTX *_mem_save_TargetInfo_0 = NULL;
    1077             :         {
    1078           7 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1079           7 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1080           7 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1081           7 :                 if (ndr_flags & NDR_SCALARS) {
    1082           7 :                         NDR_CHECK(ndr_pull_align(ndr, 5));
    1083           7 :                         size_Signature_0 = 8;
    1084           7 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->Signature, size_Signature_0, sizeof(uint8_t), CH_DOS));
    1085          12 :                         NDR_CHECK(ndr_pull_ntlmssp_MessageType(ndr, NDR_SCALARS, &r->MessageType));
    1086           7 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->TargetNameLen));
    1087           7 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->TargetNameMaxLen));
    1088             :                         {
    1089           7 :                                 uint32_t _flags_save_string = ndr->flags;
    1090           7 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1091           7 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_TargetName));
    1092           7 :                                 if (_ptr_TargetName) {
    1093           7 :                                         NDR_PULL_ALLOC(ndr, r->TargetName);
    1094           7 :                                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->TargetName, _ptr_TargetName));
    1095             :                                 } else {
    1096           0 :                                         r->TargetName = NULL;
    1097             :                                 }
    1098           7 :                                 ndr->flags = _flags_save_string;
    1099             :                         }
    1100          12 :                         NDR_CHECK(ndr_pull_NEGOTIATE(ndr, NDR_SCALARS, &r->NegotiateFlags));
    1101           7 :                         size_ServerChallenge_0 = 8;
    1102           7 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->ServerChallenge, size_ServerChallenge_0));
    1103           7 :                         size_Reserved_0 = 8;
    1104           7 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Reserved, size_Reserved_0));
    1105           7 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->TargetInfoLen));
    1106           7 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->TargetInfoMaxLen));
    1107           7 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_TargetInfo));
    1108           7 :                         if (_ptr_TargetInfo) {
    1109           6 :                                 NDR_PULL_ALLOC(ndr, r->TargetInfo);
    1110           6 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->TargetInfo, _ptr_TargetInfo));
    1111             :                         } else {
    1112           1 :                                 r->TargetInfo = NULL;
    1113             :                         }
    1114           7 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
    1115           7 :                         NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_SCALARS, &r->Version));
    1116           7 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1117             :                 }
    1118           7 :                 if (ndr_flags & NDR_BUFFERS) {
    1119             :                         {
    1120           7 :                                 uint32_t _flags_save_string = ndr->flags;
    1121           7 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1122           7 :                                 if (r->TargetName) {
    1123             :                                         uint32_t _relative_save_offset;
    1124           7 :                                         _relative_save_offset = ndr->offset;
    1125           7 :                                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->TargetName));
    1126           7 :                                         _mem_save_TargetName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1127           7 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->TargetName, 0);
    1128             :                                         {
    1129             :                                                 struct ndr_pull *_ndr_TargetName;
    1130           7 :                                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_TargetName, 0, r->TargetNameLen));
    1131           7 :                                                 NDR_CHECK(ndr_pull_string(_ndr_TargetName, NDR_SCALARS, &r->TargetName));
    1132           7 :                                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_TargetName, 0, r->TargetNameLen));
    1133             :                                         }
    1134           7 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_TargetName_0, 0);
    1135           7 :                                         if (ndr->offset > ndr->relative_highest_offset) {
    1136           7 :                                                 ndr->relative_highest_offset = ndr->offset;
    1137             :                                         }
    1138           7 :                                         ndr->offset = _relative_save_offset;
    1139             :                                 }
    1140           7 :                                 ndr->flags = _flags_save_string;
    1141             :                         }
    1142           7 :                         if (r->TargetInfo) {
    1143             :                                 uint32_t _relative_save_offset;
    1144           6 :                                 _relative_save_offset = ndr->offset;
    1145           6 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->TargetInfo));
    1146           6 :                                 _mem_save_TargetInfo_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1147           6 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->TargetInfo, 0);
    1148             :                                 {
    1149             :                                         struct ndr_pull *_ndr_TargetInfo;
    1150           6 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_TargetInfo, 0, r->TargetInfoLen));
    1151           6 :                                         NDR_CHECK(ndr_pull_AV_PAIR_LIST(_ndr_TargetInfo, NDR_SCALARS|NDR_BUFFERS, r->TargetInfo));
    1152           6 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_TargetInfo, 0, r->TargetInfoLen));
    1153             :                                 }
    1154           6 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_TargetInfo_0, 0);
    1155           6 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    1156           6 :                                         ndr->relative_highest_offset = ndr->offset;
    1157             :                                 }
    1158           6 :                                 ndr->offset = _relative_save_offset;
    1159             :                         }
    1160           7 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
    1161           7 :                         NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_BUFFERS, &r->Version));
    1162             :                 }
    1163           7 :                 ndr->flags = _flags_save_STRUCT;
    1164             :         }
    1165           7 :         return NDR_ERR_SUCCESS;
    1166             : }
    1167             : 
    1168           1 : static void ndr_print_flags_CHALLENGE_MESSAGE(struct ndr_print *ndr, const char *name, int unused, const struct CHALLENGE_MESSAGE *r)
    1169             : {
    1170           1 :         ndr_print_CHALLENGE_MESSAGE(ndr, name, r);
    1171           1 : }
    1172             : 
    1173           7 : _PUBLIC_ void ndr_print_CHALLENGE_MESSAGE(struct ndr_print *ndr, const char *name, const struct CHALLENGE_MESSAGE *r)
    1174             : {
    1175           7 :         ndr_print_struct(ndr, name, "CHALLENGE_MESSAGE");
    1176           7 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1177             :         {
    1178           7 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1179           7 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1180           7 :                 ndr->depth++;
    1181           7 :                 ndr_print_string(ndr, "Signature", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?"NTLMSSP":r->Signature);
    1182           7 :                 ndr_print_ntlmssp_MessageType(ndr, "MessageType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NtLmChallenge:r->MessageType);
    1183           7 :                 ndr_print_uint16(ndr, "TargetNameLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_ntlmssp_string_length(r->NegotiateFlags, r->TargetName):r->TargetNameLen);
    1184           7 :                 ndr_print_uint16(ndr, "TargetNameMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->TargetNameLen:r->TargetNameMaxLen);
    1185             :                 {
    1186           7 :                         uint32_t _flags_save_string = ndr->flags;
    1187           7 :                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1188           7 :                         ndr_print_ptr(ndr, "TargetName", r->TargetName);
    1189           7 :                         ndr->depth++;
    1190           7 :                         if (r->TargetName) {
    1191           7 :                                 ndr_print_string(ndr, "TargetName", r->TargetName);
    1192             :                         }
    1193           7 :                         ndr->depth--;
    1194           7 :                         ndr->flags = _flags_save_string;
    1195             :                 }
    1196           7 :                 ndr_print_NEGOTIATE(ndr, "NegotiateFlags", r->NegotiateFlags);
    1197           7 :                 ndr_print_array_uint8(ndr, "ServerChallenge", r->ServerChallenge, 8);
    1198           7 :                 ndr_print_array_uint8(ndr, "Reserved", r->Reserved, 8);
    1199           7 :                 ndr_print_uint16(ndr, "TargetInfoLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_AV_PAIR_LIST(r->TargetInfo, ndr->flags):r->TargetInfoLen);
    1200           7 :                 ndr_print_uint16(ndr, "TargetInfoMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->TargetInfoLen:r->TargetInfoMaxLen);
    1201           7 :                 ndr_print_ptr(ndr, "TargetInfo", r->TargetInfo);
    1202           7 :                 ndr->depth++;
    1203           7 :                 if (r->TargetInfo) {
    1204           6 :                         ndr_print_AV_PAIR_LIST(ndr, "TargetInfo", r->TargetInfo);
    1205             :                 }
    1206           7 :                 ndr->depth--;
    1207           7 :                 ndr_print_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION);
    1208           7 :                 ndr_print_ntlmssp_Version(ndr, "Version", &r->Version);
    1209           7 :                 ndr->depth--;
    1210           7 :                 ndr->flags = _flags_save_STRUCT;
    1211             :         }
    1212             : }
    1213             : 
    1214           0 : _PUBLIC_ enum ndr_err_code ndr_push_LM_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct LM_RESPONSE *r)
    1215             : {
    1216             :         {
    1217           0 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1218           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1219           0 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1220           0 :                 if (ndr_flags & NDR_SCALARS) {
    1221           0 :                         NDR_CHECK(ndr_push_align(ndr, 1));
    1222           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Response, 24));
    1223           0 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 1));
    1224             :                 }
    1225           0 :                 if (ndr_flags & NDR_BUFFERS) {
    1226             :                 }
    1227           0 :                 ndr->flags = _flags_save_STRUCT;
    1228             :         }
    1229           0 :         return NDR_ERR_SUCCESS;
    1230             : }
    1231             : 
    1232           4 : _PUBLIC_ enum ndr_err_code ndr_pull_LM_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct LM_RESPONSE *r)
    1233             : {
    1234           4 :         uint32_t size_Response_0 = 0;
    1235             :         {
    1236           4 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1237           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1238           4 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1239           4 :                 if (ndr_flags & NDR_SCALARS) {
    1240           4 :                         NDR_CHECK(ndr_pull_align(ndr, 1));
    1241           4 :                         size_Response_0 = 24;
    1242           4 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Response, size_Response_0));
    1243           4 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
    1244             :                 }
    1245           2 :                 if (ndr_flags & NDR_BUFFERS) {
    1246             :                 }
    1247           4 :                 ndr->flags = _flags_save_STRUCT;
    1248             :         }
    1249           4 :         return NDR_ERR_SUCCESS;
    1250             : }
    1251             : 
    1252           0 : static void ndr_print_flags_LM_RESPONSE(struct ndr_print *ndr, const char *name, int unused, const struct LM_RESPONSE *r)
    1253             : {
    1254           0 :         ndr_print_LM_RESPONSE(ndr, name, r);
    1255           0 : }
    1256             : 
    1257           4 : _PUBLIC_ void ndr_print_LM_RESPONSE(struct ndr_print *ndr, const char *name, const struct LM_RESPONSE *r)
    1258             : {
    1259           4 :         ndr_print_struct(ndr, name, "LM_RESPONSE");
    1260           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1261             :         {
    1262           4 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1263           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1264           4 :                 ndr->depth++;
    1265           4 :                 ndr_print_array_uint8(ndr, "Response", r->Response, 24);
    1266           4 :                 ndr->depth--;
    1267           4 :                 ndr->flags = _flags_save_STRUCT;
    1268             :         }
    1269             : }
    1270             : 
    1271           0 : _PUBLIC_ enum ndr_err_code ndr_push_LMv2_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct LMv2_RESPONSE *r)
    1272             : {
    1273             :         {
    1274           0 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1275           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1276           0 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1277           0 :                 if (ndr_flags & NDR_SCALARS) {
    1278           0 :                         NDR_CHECK(ndr_push_align(ndr, 1));
    1279           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Response, 16));
    1280           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->ChallengeFromClient, 8));
    1281           0 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 1));
    1282             :                 }
    1283           0 :                 if (ndr_flags & NDR_BUFFERS) {
    1284             :                 }
    1285           0 :                 ndr->flags = _flags_save_STRUCT;
    1286             :         }
    1287           0 :         return NDR_ERR_SUCCESS;
    1288             : }
    1289             : 
    1290           0 : _PUBLIC_ enum ndr_err_code ndr_pull_LMv2_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct LMv2_RESPONSE *r)
    1291             : {
    1292           0 :         uint32_t size_Response_0 = 0;
    1293           0 :         uint32_t size_ChallengeFromClient_0 = 0;
    1294             :         {
    1295           0 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1296           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1297           0 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1298           0 :                 if (ndr_flags & NDR_SCALARS) {
    1299           0 :                         NDR_CHECK(ndr_pull_align(ndr, 1));
    1300           0 :                         size_Response_0 = 16;
    1301           0 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Response, size_Response_0));
    1302           0 :                         size_ChallengeFromClient_0 = 8;
    1303           0 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->ChallengeFromClient, size_ChallengeFromClient_0));
    1304           0 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
    1305             :                 }
    1306           0 :                 if (ndr_flags & NDR_BUFFERS) {
    1307             :                 }
    1308           0 :                 ndr->flags = _flags_save_STRUCT;
    1309             :         }
    1310           0 :         return NDR_ERR_SUCCESS;
    1311             : }
    1312             : 
    1313           0 : static void ndr_print_flags_LMv2_RESPONSE(struct ndr_print *ndr, const char *name, int unused, const struct LMv2_RESPONSE *r)
    1314             : {
    1315           0 :         ndr_print_LMv2_RESPONSE(ndr, name, r);
    1316           0 : }
    1317             : 
    1318           0 : _PUBLIC_ void ndr_print_LMv2_RESPONSE(struct ndr_print *ndr, const char *name, const struct LMv2_RESPONSE *r)
    1319             : {
    1320           0 :         ndr_print_struct(ndr, name, "LMv2_RESPONSE");
    1321           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1322             :         {
    1323           0 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1324           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1325           0 :                 ndr->depth++;
    1326           0 :                 ndr_print_array_uint8(ndr, "Response", r->Response, 16);
    1327           0 :                 ndr_print_array_uint8(ndr, "ChallengeFromClient", r->ChallengeFromClient, 8);
    1328           0 :                 ndr->depth--;
    1329           0 :                 ndr->flags = _flags_save_STRUCT;
    1330             :         }
    1331             : }
    1332             : 
    1333           0 : static enum ndr_err_code ndr_push_ntlmssp_LM_RESPONSE_with_len(struct ndr_push *ndr, int ndr_flags, const union ntlmssp_LM_RESPONSE_with_len *r)
    1334             : {
    1335             :         uint32_t level;
    1336           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1337           0 :         if (ndr_flags & NDR_SCALARS) {
    1338             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    1339           0 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    1340           0 :                 NDR_CHECK(ndr_push_union_align(ndr, 1));
    1341           0 :                 switch (level) {
    1342           0 :                         case 24: {
    1343           0 :                                 NDR_CHECK(ndr_push_LM_RESPONSE(ndr, NDR_SCALARS, &r->v1));
    1344           0 :                         break; }
    1345             : 
    1346           0 :                         default: {
    1347           0 :                         break; }
    1348             : 
    1349             :                 }
    1350           0 :         }
    1351           0 :         return NDR_ERR_SUCCESS;
    1352             : }
    1353             : 
    1354           4 : static enum ndr_err_code ndr_pull_ntlmssp_LM_RESPONSE_with_len(struct ndr_pull *ndr, int ndr_flags, union ntlmssp_LM_RESPONSE_with_len *r)
    1355             : {
    1356             :         uint32_t level;
    1357           4 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1358           4 :         if (ndr_flags & NDR_SCALARS) {
    1359             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    1360           4 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    1361           4 :                 NDR_CHECK(ndr_pull_union_align(ndr, 1));
    1362           4 :                 switch (level) {
    1363           4 :                         case 24: {
    1364           4 :                                 NDR_CHECK(ndr_pull_LM_RESPONSE(ndr, NDR_SCALARS, &r->v1));
    1365           2 :                         break; }
    1366             : 
    1367           0 :                         default: {
    1368           0 :                         break; }
    1369             : 
    1370             :                 }
    1371           0 :         }
    1372           2 :         return NDR_ERR_SUCCESS;
    1373             : }
    1374             : 
    1375           4 : _PUBLIC_ void ndr_print_ntlmssp_LM_RESPONSE_with_len(struct ndr_print *ndr, const char *name, const union ntlmssp_LM_RESPONSE_with_len *r)
    1376             : {
    1377             :         uint32_t level;
    1378           4 :         level = ndr_print_steal_switch_value(ndr, r);
    1379           4 :         ndr_print_union(ndr, name, level, "ntlmssp_LM_RESPONSE_with_len");
    1380           4 :         switch (level) {
    1381           4 :                 case 24:
    1382           4 :                         ndr_print_LM_RESPONSE(ndr, "v1", &r->v1);
    1383           4 :                 break;
    1384             : 
    1385           0 :                 default:
    1386           0 :                 break;
    1387             : 
    1388             :         }
    1389           4 : }
    1390             : 
    1391           0 : _PUBLIC_ enum ndr_err_code ndr_push_NTLM_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct NTLM_RESPONSE *r)
    1392             : {
    1393             :         {
    1394           0 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1395           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1396           0 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1397           0 :                 if (ndr_flags & NDR_SCALARS) {
    1398           0 :                         NDR_CHECK(ndr_push_align(ndr, 1));
    1399           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Response, 24));
    1400           0 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 1));
    1401             :                 }
    1402           0 :                 if (ndr_flags & NDR_BUFFERS) {
    1403             :                 }
    1404           0 :                 ndr->flags = _flags_save_STRUCT;
    1405             :         }
    1406           0 :         return NDR_ERR_SUCCESS;
    1407             : }
    1408             : 
    1409           0 : _PUBLIC_ enum ndr_err_code ndr_pull_NTLM_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct NTLM_RESPONSE *r)
    1410             : {
    1411           0 :         uint32_t size_Response_0 = 0;
    1412             :         {
    1413           0 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1414           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1415           0 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1416           0 :                 if (ndr_flags & NDR_SCALARS) {
    1417           0 :                         NDR_CHECK(ndr_pull_align(ndr, 1));
    1418           0 :                         size_Response_0 = 24;
    1419           0 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Response, size_Response_0));
    1420           0 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
    1421             :                 }
    1422           0 :                 if (ndr_flags & NDR_BUFFERS) {
    1423             :                 }
    1424           0 :                 ndr->flags = _flags_save_STRUCT;
    1425             :         }
    1426           0 :         return NDR_ERR_SUCCESS;
    1427             : }
    1428             : 
    1429           0 : static void ndr_print_flags_NTLM_RESPONSE(struct ndr_print *ndr, const char *name, int unused, const struct NTLM_RESPONSE *r)
    1430             : {
    1431           0 :         ndr_print_NTLM_RESPONSE(ndr, name, r);
    1432           0 : }
    1433             : 
    1434           0 : _PUBLIC_ void ndr_print_NTLM_RESPONSE(struct ndr_print *ndr, const char *name, const struct NTLM_RESPONSE *r)
    1435             : {
    1436           0 :         ndr_print_struct(ndr, name, "NTLM_RESPONSE");
    1437           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1438             :         {
    1439           0 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1440           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1441           0 :                 ndr->depth++;
    1442           0 :                 ndr_print_array_uint8(ndr, "Response", r->Response, 24);
    1443           0 :                 ndr->depth--;
    1444           0 :                 ndr->flags = _flags_save_STRUCT;
    1445             :         }
    1446             : }
    1447             : 
    1448           0 : static enum ndr_err_code ndr_push_NTLMv2_CLIENT_CHALLENGE(struct ndr_push *ndr, int ndr_flags, const struct NTLMv2_CLIENT_CHALLENGE *r)
    1449             : {
    1450             :         {
    1451           0 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1452           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1453           0 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1454           0 :                 if (ndr_flags & NDR_SCALARS) {
    1455           0 :                         NDR_CHECK(ndr_push_align(ndr, 4));
    1456           0 :                         NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 1));
    1457           0 :                         NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, 1));
    1458           0 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->Reserved1));
    1459           0 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Reserved2));
    1460           0 :                         NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->TimeStamp));
    1461           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->ChallengeFromClient, 8));
    1462           0 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Reserved3));
    1463             :                         {
    1464           0 :                                 uint32_t _flags_save_AV_PAIR_LIST = ndr->flags;
    1465           0 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1466             :                                 {
    1467             :                                         struct ndr_push *_ndr_AvPairs;
    1468           0 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_AvPairs, 0, -1));
    1469           0 :                                         NDR_CHECK(ndr_push_AV_PAIR_LIST(_ndr_AvPairs, NDR_SCALARS|NDR_BUFFERS, &r->AvPairs));
    1470           0 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_AvPairs, 0, -1));
    1471             :                                 }
    1472           0 :                                 ndr->flags = _flags_save_AV_PAIR_LIST;
    1473             :                         }
    1474           0 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    1475             :                 }
    1476           0 :                 if (ndr_flags & NDR_BUFFERS) {
    1477             :                         {
    1478           0 :                                 uint32_t _flags_save_AV_PAIR_LIST = ndr->flags;
    1479           0 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1480           0 :                                 ndr->flags = _flags_save_AV_PAIR_LIST;
    1481             :                         }
    1482             :                 }
    1483           0 :                 ndr->flags = _flags_save_STRUCT;
    1484             :         }
    1485           0 :         return NDR_ERR_SUCCESS;
    1486             : }
    1487             : 
    1488       73186 : static enum ndr_err_code ndr_pull_NTLMv2_CLIENT_CHALLENGE(struct ndr_pull *ndr, int ndr_flags, struct NTLMv2_CLIENT_CHALLENGE *r)
    1489             : {
    1490       73186 :         uint32_t size_ChallengeFromClient_0 = 0;
    1491             :         {
    1492       73186 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1493       73186 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1494       73186 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1495       73186 :                 if (ndr_flags & NDR_SCALARS) {
    1496       36593 :                         NDR_CHECK(ndr_pull_align(ndr, 4));
    1497       36593 :                         NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->RespType));
    1498       36593 :                         NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->HiRespType));
    1499       36593 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->Reserved1));
    1500       36593 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Reserved2));
    1501       36593 :                         NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->TimeStamp));
    1502       36593 :                         size_ChallengeFromClient_0 = 8;
    1503       36593 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->ChallengeFromClient, size_ChallengeFromClient_0));
    1504       36593 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Reserved3));
    1505             :                         {
    1506       36593 :                                 uint32_t _flags_save_AV_PAIR_LIST = ndr->flags;
    1507       36593 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1508             :                                 {
    1509             :                                         struct ndr_pull *_ndr_AvPairs;
    1510       36593 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_AvPairs, 0, -1));
    1511       36593 :                                         NDR_CHECK(ndr_pull_AV_PAIR_LIST(_ndr_AvPairs, NDR_SCALARS|NDR_BUFFERS, &r->AvPairs));
    1512       36593 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_AvPairs, 0, -1));
    1513             :                                 }
    1514       36593 :                                 ndr->flags = _flags_save_AV_PAIR_LIST;
    1515             :                         }
    1516       36593 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    1517             :                 }
    1518       73186 :                 if (ndr_flags & NDR_BUFFERS) {
    1519             :                         {
    1520       36593 :                                 uint32_t _flags_save_AV_PAIR_LIST = ndr->flags;
    1521       36593 :                                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1522       35437 :                                 ndr->flags = _flags_save_AV_PAIR_LIST;
    1523             :                         }
    1524             :                 }
    1525       73186 :                 ndr->flags = _flags_save_STRUCT;
    1526             :         }
    1527       73186 :         return NDR_ERR_SUCCESS;
    1528             : }
    1529             : 
    1530           4 : _PUBLIC_ void ndr_print_NTLMv2_CLIENT_CHALLENGE(struct ndr_print *ndr, const char *name, const struct NTLMv2_CLIENT_CHALLENGE *r)
    1531             : {
    1532           4 :         ndr_print_struct(ndr, name, "NTLMv2_CLIENT_CHALLENGE");
    1533           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1534             :         {
    1535           4 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1536           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1537           4 :                 ndr->depth++;
    1538           4 :                 ndr_print_uint8(ndr, "RespType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->RespType);
    1539           4 :                 ndr_print_uint8(ndr, "HiRespType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->HiRespType);
    1540           4 :                 ndr_print_uint16(ndr, "Reserved1", r->Reserved1);
    1541           4 :                 ndr_print_uint32(ndr, "Reserved2", r->Reserved2);
    1542           4 :                 ndr_print_NTTIME(ndr, "TimeStamp", r->TimeStamp);
    1543           4 :                 ndr_print_array_uint8(ndr, "ChallengeFromClient", r->ChallengeFromClient, 8);
    1544           4 :                 ndr_print_uint32(ndr, "Reserved3", r->Reserved3);
    1545             :                 {
    1546           4 :                         uint32_t _flags_save_AV_PAIR_LIST = ndr->flags;
    1547           4 :                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1548           4 :                         ndr_print_AV_PAIR_LIST(ndr, "AvPairs", &r->AvPairs);
    1549           2 :                         ndr->flags = _flags_save_AV_PAIR_LIST;
    1550             :                 }
    1551           4 :                 ndr->depth--;
    1552           4 :                 ndr->flags = _flags_save_STRUCT;
    1553             :         }
    1554             : }
    1555             : 
    1556           0 : _PUBLIC_ enum ndr_err_code ndr_push_NTLMv2_RESPONSE(struct ndr_push *ndr, int ndr_flags, const struct NTLMv2_RESPONSE *r)
    1557             : {
    1558             :         {
    1559           0 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1560           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1561           0 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1562           0 :                 if (ndr_flags & NDR_SCALARS) {
    1563           0 :                         NDR_CHECK(ndr_push_align(ndr, 4));
    1564           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Response, 16));
    1565           0 :                         NDR_CHECK(ndr_push_NTLMv2_CLIENT_CHALLENGE(ndr, NDR_SCALARS, &r->Challenge));
    1566           0 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    1567             :                 }
    1568           0 :                 if (ndr_flags & NDR_BUFFERS) {
    1569           0 :                         NDR_CHECK(ndr_push_NTLMv2_CLIENT_CHALLENGE(ndr, NDR_BUFFERS, &r->Challenge));
    1570             :                 }
    1571           0 :                 ndr->flags = _flags_save_STRUCT;
    1572             :         }
    1573           0 :         return NDR_ERR_SUCCESS;
    1574             : }
    1575             : 
    1576       36597 : _PUBLIC_ enum ndr_err_code ndr_pull_NTLMv2_RESPONSE(struct ndr_pull *ndr, int ndr_flags, struct NTLMv2_RESPONSE *r)
    1577             : {
    1578       36597 :         uint32_t size_Response_0 = 0;
    1579             :         {
    1580       36597 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1581       36597 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1582       36597 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1583       36597 :                 if (ndr_flags & NDR_SCALARS) {
    1584       36593 :                         NDR_CHECK(ndr_pull_align(ndr, 4));
    1585       36593 :                         size_Response_0 = 16;
    1586       36593 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Response, size_Response_0));
    1587       36593 :                         NDR_CHECK(ndr_pull_NTLMv2_CLIENT_CHALLENGE(ndr, NDR_SCALARS, &r->Challenge));
    1588       36593 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    1589             :                 }
    1590       36597 :                 if (ndr_flags & NDR_BUFFERS) {
    1591       36593 :                         NDR_CHECK(ndr_pull_NTLMv2_CLIENT_CHALLENGE(ndr, NDR_BUFFERS, &r->Challenge));
    1592             :                 }
    1593       36597 :                 ndr->flags = _flags_save_STRUCT;
    1594             :         }
    1595       36597 :         return NDR_ERR_SUCCESS;
    1596             : }
    1597             : 
    1598           0 : static void ndr_print_flags_NTLMv2_RESPONSE(struct ndr_print *ndr, const char *name, int unused, const struct NTLMv2_RESPONSE *r)
    1599             : {
    1600           0 :         ndr_print_NTLMv2_RESPONSE(ndr, name, r);
    1601           0 : }
    1602             : 
    1603           4 : _PUBLIC_ void ndr_print_NTLMv2_RESPONSE(struct ndr_print *ndr, const char *name, const struct NTLMv2_RESPONSE *r)
    1604             : {
    1605           4 :         ndr_print_struct(ndr, name, "NTLMv2_RESPONSE");
    1606           4 :         if (r == NULL) { ndr_print_null(ndr); return; }
    1607             :         {
    1608           4 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1609           4 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    1610           4 :                 ndr->depth++;
    1611           4 :                 ndr_print_array_uint8(ndr, "Response", r->Response, 16);
    1612           4 :                 ndr_print_NTLMv2_CLIENT_CHALLENGE(ndr, "Challenge", &r->Challenge);
    1613           4 :                 ndr->depth--;
    1614           4 :                 ndr->flags = _flags_save_STRUCT;
    1615             :         }
    1616             : }
    1617             : 
    1618           0 : _PUBLIC_ enum ndr_err_code ndr_push_ntlmssp_NTLM_RESPONSE_with_len(struct ndr_push *ndr, int ndr_flags, const union ntlmssp_NTLM_RESPONSE_with_len *r)
    1619             : {
    1620             :         uint32_t level;
    1621           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1622           0 :         if (ndr_flags & NDR_SCALARS) {
    1623             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    1624           0 :                 NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    1625           0 :                 NDR_CHECK(ndr_push_union_align(ndr, 4));
    1626           0 :                 switch (level) {
    1627           0 :                         case 0: {
    1628           0 :                         break; }
    1629             : 
    1630           0 :                         case 0x18: {
    1631           0 :                                 NDR_CHECK(ndr_push_NTLM_RESPONSE(ndr, NDR_SCALARS, &r->v1));
    1632           0 :                         break; }
    1633             : 
    1634           0 :                         default: {
    1635           0 :                                 NDR_CHECK(ndr_push_NTLMv2_RESPONSE(ndr, NDR_SCALARS, &r->v2));
    1636           0 :                         break; }
    1637             : 
    1638             :                 }
    1639           0 :         }
    1640           0 :         if (ndr_flags & NDR_BUFFERS) {
    1641           0 :                 if (!(ndr_flags & NDR_SCALARS)) {
    1642             :                         /* We didn't get it above, and the token is not needed after this. */
    1643           0 :                         NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
    1644             :                 }
    1645           0 :                 switch (level) {
    1646           0 :                         case 0:
    1647           0 :                         break;
    1648             : 
    1649           0 :                         case 0x18:
    1650           0 :                         break;
    1651             : 
    1652           0 :                         default:
    1653           0 :                                 NDR_CHECK(ndr_push_NTLMv2_RESPONSE(ndr, NDR_BUFFERS, &r->v2));
    1654           0 :                         break;
    1655             : 
    1656             :                 }
    1657           0 :         }
    1658           0 :         return NDR_ERR_SUCCESS;
    1659             : }
    1660             : 
    1661           4 : _PUBLIC_ enum ndr_err_code ndr_pull_ntlmssp_NTLM_RESPONSE_with_len(struct ndr_pull *ndr, int ndr_flags, union ntlmssp_NTLM_RESPONSE_with_len *r)
    1662             : {
    1663             :         uint32_t level;
    1664           4 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1665           4 :         if (ndr_flags & NDR_SCALARS) {
    1666             :                 /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
    1667           4 :                 NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    1668           4 :                 NDR_CHECK(ndr_pull_union_align(ndr, 4));
    1669           4 :                 switch (level) {
    1670           0 :                         case 0: {
    1671           0 :                         break; }
    1672             : 
    1673           0 :                         case 0x18: {
    1674           0 :                                 NDR_CHECK(ndr_pull_NTLM_RESPONSE(ndr, NDR_SCALARS, &r->v1));
    1675           0 :                         break; }
    1676             : 
    1677           4 :                         default: {
    1678           4 :                                 NDR_CHECK(ndr_pull_NTLMv2_RESPONSE(ndr, NDR_SCALARS, &r->v2));
    1679           2 :                         break; }
    1680             : 
    1681             :                 }
    1682           0 :         }
    1683           4 :         if (ndr_flags & NDR_BUFFERS) {
    1684           4 :                 if (!(ndr_flags & NDR_SCALARS)) {
    1685             :                         /* We didn't get it above, and the token is not needed after this. */
    1686           0 :                         NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
    1687             :                 }
    1688           4 :                 switch (level) {
    1689           0 :                         case 0:
    1690           0 :                         break;
    1691             : 
    1692           0 :                         case 0x18:
    1693           0 :                         break;
    1694             : 
    1695           4 :                         default:
    1696           4 :                                 NDR_CHECK(ndr_pull_NTLMv2_RESPONSE(ndr, NDR_BUFFERS, &r->v2));
    1697           2 :                         break;
    1698             : 
    1699             :                 }
    1700           0 :         }
    1701           2 :         return NDR_ERR_SUCCESS;
    1702             : }
    1703             : 
    1704           4 : _PUBLIC_ void ndr_print_ntlmssp_NTLM_RESPONSE_with_len(struct ndr_print *ndr, const char *name, const union ntlmssp_NTLM_RESPONSE_with_len *r)
    1705             : {
    1706             :         uint32_t level;
    1707           4 :         level = ndr_print_steal_switch_value(ndr, r);
    1708           4 :         ndr_print_union(ndr, name, level, "ntlmssp_NTLM_RESPONSE_with_len");
    1709           4 :         switch (level) {
    1710           0 :                 case 0:
    1711           0 :                 break;
    1712             : 
    1713           0 :                 case 0x18:
    1714           0 :                         ndr_print_NTLM_RESPONSE(ndr, "v1", &r->v1);
    1715           0 :                 break;
    1716             : 
    1717           4 :                 default:
    1718           4 :                         ndr_print_NTLMv2_RESPONSE(ndr, "v2", &r->v2);
    1719           4 :                 break;
    1720             : 
    1721             :         }
    1722           4 : }
    1723             : 
    1724           1 : _PUBLIC_ enum ndr_err_code ndr_push_AUTHENTICATE_MESSAGE(struct ndr_push *ndr, int ndr_flags, const struct AUTHENTICATE_MESSAGE *r)
    1725             : {
    1726             :         {
    1727           1 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1728           1 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1729           1 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    1730           1 :                 if (ndr_flags & NDR_SCALARS) {
    1731           1 :                         NDR_CHECK(ndr_push_align(ndr, 5));
    1732           1 :                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, "NTLMSSP", 8, sizeof(uint8_t), CH_DOS));
    1733           2 :                         NDR_CHECK(ndr_push_ntlmssp_MessageType(ndr, NDR_SCALARS, NtLmAuthenticate));
    1734           1 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->LmChallengeResponseLen));
    1735           1 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->LmChallengeResponseLen));
    1736           1 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->LmChallengeResponse));
    1737           1 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->NtChallengeResponseLen));
    1738           1 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->NtChallengeResponseLen));
    1739           1 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->NtChallengeResponse));
    1740           1 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->DomainName)));
    1741           1 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->DomainName)));
    1742             :                         {
    1743           1 :                                 uint32_t _flags_save_string = ndr->flags;
    1744           1 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1745           1 :                                 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->DomainName));
    1746           1 :                                 ndr->flags = _flags_save_string;
    1747             :                         }
    1748           1 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->UserName)));
    1749           1 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->UserName)));
    1750             :                         {
    1751           1 :                                 uint32_t _flags_save_string = ndr->flags;
    1752           1 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1753           1 :                                 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->UserName));
    1754           1 :                                 ndr->flags = _flags_save_string;
    1755             :                         }
    1756           1 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->Workstation)));
    1757           1 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_ntlmssp_string_length(r->NegotiateFlags, r->Workstation)));
    1758             :                         {
    1759           1 :                                 uint32_t _flags_save_string = ndr->flags;
    1760           1 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1761           1 :                                 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->Workstation));
    1762           1 :                                 ndr->flags = _flags_save_string;
    1763             :                         }
    1764           1 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->EncryptedRandomSessionKey == NULL?0:r->EncryptedRandomSessionKey->length));
    1765           1 :                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->EncryptedRandomSessionKey == NULL?0:r->EncryptedRandomSessionKey->length));
    1766           1 :                         NDR_CHECK(ndr_push_relative_ptr1(ndr, r->EncryptedRandomSessionKey));
    1767           2 :                         NDR_CHECK(ndr_push_NEGOTIATE(ndr, NDR_SCALARS, r->NegotiateFlags));
    1768           1 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
    1769           1 :                         NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_SCALARS, &r->Version));
    1770           1 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 5));
    1771             :                 }
    1772           1 :                 if (ndr_flags & NDR_BUFFERS) {
    1773           1 :                         if (r->LmChallengeResponse) {
    1774           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->LmChallengeResponse));
    1775             :                                 {
    1776             :                                         struct ndr_push *_ndr_LmChallengeResponse;
    1777           0 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_LmChallengeResponse, 0, r->LmChallengeResponseLen));
    1778           0 :                                         NDR_CHECK(ndr_push_set_switch_value(_ndr_LmChallengeResponse, r->LmChallengeResponse, r->LmChallengeResponseLen));
    1779           0 :                                         NDR_CHECK(ndr_push_ntlmssp_LM_RESPONSE_with_len(_ndr_LmChallengeResponse, NDR_SCALARS|NDR_BUFFERS, r->LmChallengeResponse));
    1780           0 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_LmChallengeResponse, 0, r->LmChallengeResponseLen));
    1781             :                                 }
    1782           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->LmChallengeResponse));
    1783             :                         }
    1784           1 :                         if (r->NtChallengeResponse) {
    1785           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->NtChallengeResponse));
    1786             :                                 {
    1787             :                                         struct ndr_push *_ndr_NtChallengeResponse;
    1788           0 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_NtChallengeResponse, 0, r->NtChallengeResponseLen));
    1789           0 :                                         NDR_CHECK(ndr_push_set_switch_value(_ndr_NtChallengeResponse, r->NtChallengeResponse, r->NtChallengeResponseLen));
    1790           0 :                                         NDR_CHECK(ndr_push_ntlmssp_NTLM_RESPONSE_with_len(_ndr_NtChallengeResponse, NDR_SCALARS|NDR_BUFFERS, r->NtChallengeResponse));
    1791           0 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_NtChallengeResponse, 0, r->NtChallengeResponseLen));
    1792             :                                 }
    1793           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->NtChallengeResponse));
    1794             :                         }
    1795             :                         {
    1796           1 :                                 uint32_t _flags_save_string = ndr->flags;
    1797           1 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1798           1 :                                 if (r->DomainName) {
    1799           0 :                                         NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->DomainName));
    1800             :                                         {
    1801             :                                                 struct ndr_push *_ndr_DomainName;
    1802           0 :                                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_DomainName, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->DomainName)));
    1803           0 :                                                 NDR_CHECK(ndr_push_string(_ndr_DomainName, NDR_SCALARS, r->DomainName));
    1804           0 :                                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_DomainName, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->DomainName)));
    1805             :                                         }
    1806           0 :                                         NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->DomainName));
    1807             :                                 }
    1808           1 :                                 ndr->flags = _flags_save_string;
    1809             :                         }
    1810             :                         {
    1811           1 :                                 uint32_t _flags_save_string = ndr->flags;
    1812           1 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1813           1 :                                 if (r->UserName) {
    1814           0 :                                         NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->UserName));
    1815             :                                         {
    1816             :                                                 struct ndr_push *_ndr_UserName;
    1817           0 :                                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_UserName, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->UserName)));
    1818           0 :                                                 NDR_CHECK(ndr_push_string(_ndr_UserName, NDR_SCALARS, r->UserName));
    1819           0 :                                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_UserName, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->UserName)));
    1820             :                                         }
    1821           0 :                                         NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->UserName));
    1822             :                                 }
    1823           1 :                                 ndr->flags = _flags_save_string;
    1824             :                         }
    1825             :                         {
    1826           1 :                                 uint32_t _flags_save_string = ndr->flags;
    1827           1 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1828           1 :                                 if (r->Workstation) {
    1829           0 :                                         NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->Workstation));
    1830             :                                         {
    1831             :                                                 struct ndr_push *_ndr_Workstation;
    1832           0 :                                                 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_Workstation, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->Workstation)));
    1833           0 :                                                 NDR_CHECK(ndr_push_string(_ndr_Workstation, NDR_SCALARS, r->Workstation));
    1834           0 :                                                 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_Workstation, 0, ndr_ntlmssp_string_length(r->NegotiateFlags, r->Workstation)));
    1835             :                                         }
    1836           0 :                                         NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->Workstation));
    1837             :                                 }
    1838           1 :                                 ndr->flags = _flags_save_string;
    1839             :                         }
    1840           1 :                         if (r->EncryptedRandomSessionKey) {
    1841           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->EncryptedRandomSessionKey));
    1842             :                                 {
    1843             :                                         struct ndr_push *_ndr_EncryptedRandomSessionKey;
    1844           0 :                                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_EncryptedRandomSessionKey, 0, r->EncryptedRandomSessionKey == NULL?0:r->EncryptedRandomSessionKey->length));
    1845           0 :                                         NDR_CHECK(ndr_push_DATA_BLOB(_ndr_EncryptedRandomSessionKey, NDR_SCALARS, *r->EncryptedRandomSessionKey));
    1846           0 :                                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_EncryptedRandomSessionKey, 0, r->EncryptedRandomSessionKey == NULL?0:r->EncryptedRandomSessionKey->length));
    1847             :                                 }
    1848           0 :                                 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->EncryptedRandomSessionKey));
    1849             :                         }
    1850           1 :                         NDR_CHECK(ndr_push_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
    1851           1 :                         NDR_CHECK(ndr_push_ntlmssp_Version(ndr, NDR_BUFFERS, &r->Version));
    1852             :                 }
    1853           1 :                 ndr->flags = _flags_save_STRUCT;
    1854             :         }
    1855           1 :         return NDR_ERR_SUCCESS;
    1856             : }
    1857             : 
    1858           6 : _PUBLIC_ enum ndr_err_code ndr_pull_AUTHENTICATE_MESSAGE(struct ndr_pull *ndr, int ndr_flags, struct AUTHENTICATE_MESSAGE *r)
    1859             : {
    1860           6 :         uint32_t size_Signature_0 = 0;
    1861             :         uint32_t _ptr_LmChallengeResponse;
    1862           6 :         TALLOC_CTX *_mem_save_LmChallengeResponse_0 = NULL;
    1863             :         uint32_t _ptr_NtChallengeResponse;
    1864           6 :         TALLOC_CTX *_mem_save_NtChallengeResponse_0 = NULL;
    1865             :         uint32_t _ptr_DomainName;
    1866           6 :         TALLOC_CTX *_mem_save_DomainName_0 = NULL;
    1867             :         uint32_t _ptr_UserName;
    1868           6 :         TALLOC_CTX *_mem_save_UserName_0 = NULL;
    1869             :         uint32_t _ptr_Workstation;
    1870           6 :         TALLOC_CTX *_mem_save_Workstation_0 = NULL;
    1871             :         uint32_t _ptr_EncryptedRandomSessionKey;
    1872           6 :         TALLOC_CTX *_mem_save_EncryptedRandomSessionKey_0 = NULL;
    1873             :         {
    1874           6 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    1875           6 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    1876           6 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    1877           6 :                 if (ndr_flags & NDR_SCALARS) {
    1878           6 :                         NDR_CHECK(ndr_pull_align(ndr, 5));
    1879           6 :                         size_Signature_0 = 8;
    1880           6 :                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->Signature, size_Signature_0, sizeof(uint8_t), CH_DOS));
    1881          10 :                         NDR_CHECK(ndr_pull_ntlmssp_MessageType(ndr, NDR_SCALARS, &r->MessageType));
    1882           6 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->LmChallengeResponseLen));
    1883           6 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->LmChallengeResponseMaxLen));
    1884           6 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_LmChallengeResponse));
    1885           6 :                         if (_ptr_LmChallengeResponse) {
    1886           4 :                                 NDR_PULL_ALLOC(ndr, r->LmChallengeResponse);
    1887           4 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->LmChallengeResponse, _ptr_LmChallengeResponse));
    1888             :                         } else {
    1889           2 :                                 r->LmChallengeResponse = NULL;
    1890             :                         }
    1891           6 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->NtChallengeResponseLen));
    1892           6 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->NtChallengeResponseMaxLen));
    1893           6 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_NtChallengeResponse));
    1894           6 :                         if (_ptr_NtChallengeResponse) {
    1895           4 :                                 NDR_PULL_ALLOC(ndr, r->NtChallengeResponse);
    1896           4 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->NtChallengeResponse, _ptr_NtChallengeResponse));
    1897             :                         } else {
    1898           2 :                                 r->NtChallengeResponse = NULL;
    1899             :                         }
    1900           6 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DomainNameLen));
    1901           6 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->DomainNameMaxLen));
    1902             :                         {
    1903           6 :                                 uint32_t _flags_save_string = ndr->flags;
    1904           6 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1905           6 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_DomainName));
    1906           6 :                                 if (_ptr_DomainName) {
    1907           4 :                                         NDR_PULL_ALLOC(ndr, r->DomainName);
    1908           4 :                                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DomainName, _ptr_DomainName));
    1909             :                                 } else {
    1910           2 :                                         r->DomainName = NULL;
    1911             :                                 }
    1912           6 :                                 ndr->flags = _flags_save_string;
    1913             :                         }
    1914           6 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UserNameLen));
    1915           6 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->UserNameMaxLen));
    1916             :                         {
    1917           6 :                                 uint32_t _flags_save_string = ndr->flags;
    1918           6 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1919           6 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_UserName));
    1920           6 :                                 if (_ptr_UserName) {
    1921           4 :                                         NDR_PULL_ALLOC(ndr, r->UserName);
    1922           4 :                                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->UserName, _ptr_UserName));
    1923             :                                 } else {
    1924           2 :                                         r->UserName = NULL;
    1925             :                                 }
    1926           6 :                                 ndr->flags = _flags_save_string;
    1927             :                         }
    1928           6 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->WorkstationLen));
    1929           6 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->WorkstationMaxLen));
    1930             :                         {
    1931           6 :                                 uint32_t _flags_save_string = ndr->flags;
    1932           6 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1933           6 :                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_Workstation));
    1934           6 :                                 if (_ptr_Workstation) {
    1935           4 :                                         NDR_PULL_ALLOC(ndr, r->Workstation);
    1936           4 :                                         NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->Workstation, _ptr_Workstation));
    1937             :                                 } else {
    1938           2 :                                         r->Workstation = NULL;
    1939             :                                 }
    1940           6 :                                 ndr->flags = _flags_save_string;
    1941             :                         }
    1942           6 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->EncryptedRandomSessionKeyLen));
    1943           6 :                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->EncryptedRandomSessionKeyMaxLen));
    1944           6 :                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_EncryptedRandomSessionKey));
    1945           6 :                         if (_ptr_EncryptedRandomSessionKey) {
    1946           4 :                                 NDR_PULL_ALLOC(ndr, r->EncryptedRandomSessionKey);
    1947           4 :                                 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->EncryptedRandomSessionKey, _ptr_EncryptedRandomSessionKey));
    1948             :                         } else {
    1949           2 :                                 r->EncryptedRandomSessionKey = NULL;
    1950             :                         }
    1951          10 :                         NDR_CHECK(ndr_pull_NEGOTIATE(ndr, NDR_SCALARS, &r->NegotiateFlags));
    1952           6 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
    1953           6 :                         NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_SCALARS, &r->Version));
    1954           6 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
    1955             :                 }
    1956           6 :                 if (ndr_flags & NDR_BUFFERS) {
    1957           6 :                         if (r->LmChallengeResponse) {
    1958             :                                 uint32_t _relative_save_offset;
    1959           4 :                                 _relative_save_offset = ndr->offset;
    1960           4 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->LmChallengeResponse));
    1961           4 :                                 _mem_save_LmChallengeResponse_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1962           4 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->LmChallengeResponse, 0);
    1963             :                                 {
    1964             :                                         struct ndr_pull *_ndr_LmChallengeResponse;
    1965           4 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_LmChallengeResponse, 0, r->LmChallengeResponseLen));
    1966           4 :                                         NDR_CHECK(ndr_pull_set_switch_value(_ndr_LmChallengeResponse, r->LmChallengeResponse, r->LmChallengeResponseLen));
    1967           4 :                                         NDR_CHECK(ndr_pull_ntlmssp_LM_RESPONSE_with_len(_ndr_LmChallengeResponse, NDR_SCALARS|NDR_BUFFERS, r->LmChallengeResponse));
    1968           4 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_LmChallengeResponse, 0, r->LmChallengeResponseLen));
    1969             :                                 }
    1970           4 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_LmChallengeResponse_0, 0);
    1971           4 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    1972           4 :                                         ndr->relative_highest_offset = ndr->offset;
    1973             :                                 }
    1974           4 :                                 ndr->offset = _relative_save_offset;
    1975             :                         }
    1976           6 :                         if (r->NtChallengeResponse) {
    1977             :                                 uint32_t _relative_save_offset;
    1978           4 :                                 _relative_save_offset = ndr->offset;
    1979           4 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->NtChallengeResponse));
    1980           4 :                                 _mem_save_NtChallengeResponse_0 = NDR_PULL_GET_MEM_CTX(ndr);
    1981           4 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->NtChallengeResponse, 0);
    1982             :                                 {
    1983             :                                         struct ndr_pull *_ndr_NtChallengeResponse;
    1984           4 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_NtChallengeResponse, 0, r->NtChallengeResponseMaxLen));
    1985           4 :                                         NDR_CHECK(ndr_pull_set_switch_value(_ndr_NtChallengeResponse, r->NtChallengeResponse, r->NtChallengeResponseLen));
    1986           4 :                                         NDR_CHECK(ndr_pull_ntlmssp_NTLM_RESPONSE_with_len(_ndr_NtChallengeResponse, NDR_SCALARS|NDR_BUFFERS, r->NtChallengeResponse));
    1987           4 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_NtChallengeResponse, 0, r->NtChallengeResponseMaxLen));
    1988             :                                 }
    1989           4 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_NtChallengeResponse_0, 0);
    1990           4 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    1991           4 :                                         ndr->relative_highest_offset = ndr->offset;
    1992             :                                 }
    1993           4 :                                 ndr->offset = _relative_save_offset;
    1994             :                         }
    1995             :                         {
    1996           6 :                                 uint32_t _flags_save_string = ndr->flags;
    1997           6 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    1998           6 :                                 if (r->DomainName) {
    1999             :                                         uint32_t _relative_save_offset;
    2000           4 :                                         _relative_save_offset = ndr->offset;
    2001           4 :                                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DomainName));
    2002           4 :                                         _mem_save_DomainName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2003           4 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->DomainName, 0);
    2004             :                                         {
    2005             :                                                 struct ndr_pull *_ndr_DomainName;
    2006           4 :                                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_DomainName, 0, r->DomainNameLen));
    2007           4 :                                                 NDR_CHECK(ndr_pull_string(_ndr_DomainName, NDR_SCALARS, &r->DomainName));
    2008           4 :                                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_DomainName, 0, r->DomainNameLen));
    2009             :                                         }
    2010           4 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DomainName_0, 0);
    2011           4 :                                         if (ndr->offset > ndr->relative_highest_offset) {
    2012           2 :                                                 ndr->relative_highest_offset = ndr->offset;
    2013             :                                         }
    2014           4 :                                         ndr->offset = _relative_save_offset;
    2015             :                                 }
    2016           6 :                                 ndr->flags = _flags_save_string;
    2017             :                         }
    2018             :                         {
    2019           6 :                                 uint32_t _flags_save_string = ndr->flags;
    2020           6 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    2021           6 :                                 if (r->UserName) {
    2022             :                                         uint32_t _relative_save_offset;
    2023           4 :                                         _relative_save_offset = ndr->offset;
    2024           4 :                                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->UserName));
    2025           4 :                                         _mem_save_UserName_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2026           4 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->UserName, 0);
    2027             :                                         {
    2028             :                                                 struct ndr_pull *_ndr_UserName;
    2029           4 :                                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_UserName, 0, r->UserNameLen));
    2030           4 :                                                 NDR_CHECK(ndr_pull_string(_ndr_UserName, NDR_SCALARS, &r->UserName));
    2031           4 :                                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_UserName, 0, r->UserNameLen));
    2032             :                                         }
    2033           4 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_UserName_0, 0);
    2034           4 :                                         if (ndr->offset > ndr->relative_highest_offset) {
    2035           2 :                                                 ndr->relative_highest_offset = ndr->offset;
    2036             :                                         }
    2037           4 :                                         ndr->offset = _relative_save_offset;
    2038             :                                 }
    2039           6 :                                 ndr->flags = _flags_save_string;
    2040             :                         }
    2041             :                         {
    2042           6 :                                 uint32_t _flags_save_string = ndr->flags;
    2043           6 :                                 ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    2044           6 :                                 if (r->Workstation) {
    2045             :                                         uint32_t _relative_save_offset;
    2046           4 :                                         _relative_save_offset = ndr->offset;
    2047           4 :                                         NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->Workstation));
    2048           4 :                                         _mem_save_Workstation_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2049           4 :                                         NDR_PULL_SET_MEM_CTX(ndr, r->Workstation, 0);
    2050             :                                         {
    2051             :                                                 struct ndr_pull *_ndr_Workstation;
    2052           4 :                                                 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_Workstation, 0, r->WorkstationLen));
    2053           4 :                                                 NDR_CHECK(ndr_pull_string(_ndr_Workstation, NDR_SCALARS, &r->Workstation));
    2054           4 :                                                 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_Workstation, 0, r->WorkstationLen));
    2055             :                                         }
    2056           4 :                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_Workstation_0, 0);
    2057           4 :                                         if (ndr->offset > ndr->relative_highest_offset) {
    2058           2 :                                                 ndr->relative_highest_offset = ndr->offset;
    2059             :                                         }
    2060           4 :                                         ndr->offset = _relative_save_offset;
    2061             :                                 }
    2062           6 :                                 ndr->flags = _flags_save_string;
    2063             :                         }
    2064           6 :                         if (r->EncryptedRandomSessionKey) {
    2065             :                                 uint32_t _relative_save_offset;
    2066           4 :                                 _relative_save_offset = ndr->offset;
    2067           4 :                                 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->EncryptedRandomSessionKey));
    2068           4 :                                 _mem_save_EncryptedRandomSessionKey_0 = NDR_PULL_GET_MEM_CTX(ndr);
    2069           4 :                                 NDR_PULL_SET_MEM_CTX(ndr, r->EncryptedRandomSessionKey, 0);
    2070             :                                 {
    2071             :                                         struct ndr_pull *_ndr_EncryptedRandomSessionKey;
    2072           4 :                                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_EncryptedRandomSessionKey, 0, r->EncryptedRandomSessionKeyLen));
    2073           4 :                                         NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_EncryptedRandomSessionKey, NDR_SCALARS, r->EncryptedRandomSessionKey));
    2074           4 :                                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_EncryptedRandomSessionKey, 0, r->EncryptedRandomSessionKeyLen));
    2075             :                                 }
    2076           4 :                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_EncryptedRandomSessionKey_0, 0);
    2077           4 :                                 if (ndr->offset > ndr->relative_highest_offset) {
    2078           4 :                                         ndr->relative_highest_offset = ndr->offset;
    2079             :                                 }
    2080           4 :                                 ndr->offset = _relative_save_offset;
    2081             :                         }
    2082           6 :                         NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION));
    2083           6 :                         NDR_CHECK(ndr_pull_ntlmssp_Version(ndr, NDR_BUFFERS, &r->Version));
    2084             :                 }
    2085           6 :                 ndr->flags = _flags_save_STRUCT;
    2086             :         }
    2087           6 :         return NDR_ERR_SUCCESS;
    2088             : }
    2089             : 
    2090           2 : static void ndr_print_flags_AUTHENTICATE_MESSAGE(struct ndr_print *ndr, const char *name, int unused, const struct AUTHENTICATE_MESSAGE *r)
    2091             : {
    2092           2 :         ndr_print_AUTHENTICATE_MESSAGE(ndr, name, r);
    2093           2 : }
    2094             : 
    2095           6 : _PUBLIC_ void ndr_print_AUTHENTICATE_MESSAGE(struct ndr_print *ndr, const char *name, const struct AUTHENTICATE_MESSAGE *r)
    2096             : {
    2097           6 :         ndr_print_struct(ndr, name, "AUTHENTICATE_MESSAGE");
    2098           6 :         if (r == NULL) { ndr_print_null(ndr); return; }
    2099             :         {
    2100           6 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    2101           6 :                 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
    2102           6 :                 ndr->depth++;
    2103           6 :                 ndr_print_string(ndr, "Signature", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?"NTLMSSP":r->Signature);
    2104           6 :                 ndr_print_ntlmssp_MessageType(ndr, "MessageType", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NtLmAuthenticate:r->MessageType);
    2105           6 :                 ndr_print_uint16(ndr, "LmChallengeResponseLen", r->LmChallengeResponseLen);
    2106           6 :                 ndr_print_uint16(ndr, "LmChallengeResponseMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->LmChallengeResponseLen:r->LmChallengeResponseMaxLen);
    2107           6 :                 ndr_print_ptr(ndr, "LmChallengeResponse", r->LmChallengeResponse);
    2108           6 :                 ndr->depth++;
    2109           6 :                 if (r->LmChallengeResponse) {
    2110           4 :                         ndr_print_set_switch_value(ndr, r->LmChallengeResponse, r->LmChallengeResponseLen);
    2111           4 :                         ndr_print_ntlmssp_LM_RESPONSE_with_len(ndr, "LmChallengeResponse", r->LmChallengeResponse);
    2112             :                 }
    2113           6 :                 ndr->depth--;
    2114           6 :                 ndr_print_uint16(ndr, "NtChallengeResponseLen", r->NtChallengeResponseLen);
    2115           6 :                 ndr_print_uint16(ndr, "NtChallengeResponseMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->NtChallengeResponseLen:r->NtChallengeResponseMaxLen);
    2116           6 :                 ndr_print_ptr(ndr, "NtChallengeResponse", r->NtChallengeResponse);
    2117           6 :                 ndr->depth++;
    2118           6 :                 if (r->NtChallengeResponse) {
    2119           4 :                         ndr_print_set_switch_value(ndr, r->NtChallengeResponse, r->NtChallengeResponseLen);
    2120           4 :                         ndr_print_ntlmssp_NTLM_RESPONSE_with_len(ndr, "NtChallengeResponse", r->NtChallengeResponse);
    2121             :                 }
    2122           6 :                 ndr->depth--;
    2123           6 :                 ndr_print_uint16(ndr, "DomainNameLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_ntlmssp_string_length(r->NegotiateFlags, r->DomainName):r->DomainNameLen);
    2124           6 :                 ndr_print_uint16(ndr, "DomainNameMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->DomainNameLen:r->DomainNameMaxLen);
    2125             :                 {
    2126           6 :                         uint32_t _flags_save_string = ndr->flags;
    2127           6 :                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    2128           6 :                         ndr_print_ptr(ndr, "DomainName", r->DomainName);
    2129           6 :                         ndr->depth++;
    2130           6 :                         if (r->DomainName) {
    2131           4 :                                 ndr_print_string(ndr, "DomainName", r->DomainName);
    2132             :                         }
    2133           6 :                         ndr->depth--;
    2134           6 :                         ndr->flags = _flags_save_string;
    2135             :                 }
    2136           6 :                 ndr_print_uint16(ndr, "UserNameLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_ntlmssp_string_length(r->NegotiateFlags, r->UserName):r->UserNameLen);
    2137           6 :                 ndr_print_uint16(ndr, "UserNameMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->UserNameLen:r->UserNameMaxLen);
    2138             :                 {
    2139           6 :                         uint32_t _flags_save_string = ndr->flags;
    2140           6 :                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    2141           6 :                         ndr_print_ptr(ndr, "UserName", r->UserName);
    2142           6 :                         ndr->depth++;
    2143           6 :                         if (r->UserName) {
    2144           4 :                                 ndr_print_string(ndr, "UserName", r->UserName);
    2145             :                         }
    2146           6 :                         ndr->depth--;
    2147           6 :                         ndr->flags = _flags_save_string;
    2148             :                 }
    2149           6 :                 ndr_print_uint16(ndr, "WorkstationLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_ntlmssp_string_length(r->NegotiateFlags, r->Workstation):r->WorkstationLen);
    2150           6 :                 ndr_print_uint16(ndr, "WorkstationMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->WorkstationLen:r->WorkstationMaxLen);
    2151             :                 {
    2152           6 :                         uint32_t _flags_save_string = ndr->flags;
    2153           6 :                         ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(r->NegotiateFlags));
    2154           6 :                         ndr_print_ptr(ndr, "Workstation", r->Workstation);
    2155           6 :                         ndr->depth++;
    2156           6 :                         if (r->Workstation) {
    2157           4 :                                 ndr_print_string(ndr, "Workstation", r->Workstation);
    2158             :                         }
    2159           6 :                         ndr->depth--;
    2160           6 :                         ndr->flags = _flags_save_string;
    2161             :                 }
    2162           6 :                 ndr_print_uint16(ndr, "EncryptedRandomSessionKeyLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->EncryptedRandomSessionKey == NULL?0:r->EncryptedRandomSessionKey->length:r->EncryptedRandomSessionKeyLen);
    2163           6 :                 ndr_print_uint16(ndr, "EncryptedRandomSessionKeyMaxLen", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->EncryptedRandomSessionKeyLen:r->EncryptedRandomSessionKeyMaxLen);
    2164           6 :                 ndr_print_ptr(ndr, "EncryptedRandomSessionKey", r->EncryptedRandomSessionKey);
    2165           6 :                 ndr->depth++;
    2166           6 :                 if (r->EncryptedRandomSessionKey) {
    2167           4 :                         ndr_print_DATA_BLOB(ndr, "EncryptedRandomSessionKey", *r->EncryptedRandomSessionKey);
    2168             :                 }
    2169           6 :                 ndr->depth--;
    2170           6 :                 ndr_print_NEGOTIATE(ndr, "NegotiateFlags", r->NegotiateFlags);
    2171           6 :                 ndr_print_set_switch_value(ndr, &r->Version, r->NegotiateFlags & NTLMSSP_NEGOTIATE_VERSION);
    2172           6 :                 ndr_print_ntlmssp_Version(ndr, "Version", &r->Version);
    2173           6 :                 ndr->depth--;
    2174           6 :                 ndr->flags = _flags_save_STRUCT;
    2175             :         }
    2176             : }
    2177             : 
    2178           0 : _PUBLIC_ enum ndr_err_code ndr_push_NTLMSSP_MESSAGE_SIGNATURE(struct ndr_push *ndr, int ndr_flags, const struct NTLMSSP_MESSAGE_SIGNATURE *r)
    2179             : {
    2180           0 :         NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    2181           0 :         if (ndr_flags & NDR_SCALARS) {
    2182           0 :                 NDR_CHECK(ndr_push_align(ndr, 4));
    2183           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, NTLMSSP_SIGN_VERSION));
    2184           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->RandomPad));
    2185           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Checksum));
    2186           0 :                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SeqNum));
    2187           0 :                 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    2188             :         }
    2189           0 :         if (ndr_flags & NDR_BUFFERS) {
    2190             :         }
    2191           0 :         return NDR_ERR_SUCCESS;
    2192             : }
    2193             : 
    2194           0 : _PUBLIC_ enum ndr_err_code ndr_pull_NTLMSSP_MESSAGE_SIGNATURE(struct ndr_pull *ndr, int ndr_flags, struct NTLMSSP_MESSAGE_SIGNATURE *r)
    2195             : {
    2196           0 :         NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    2197           0 :         if (ndr_flags & NDR_SCALARS) {
    2198           0 :                 NDR_CHECK(ndr_pull_align(ndr, 4));
    2199           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Version));
    2200           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->RandomPad));
    2201           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Checksum));
    2202           0 :                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SeqNum));
    2203           0 :                 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    2204             :         }
    2205           0 :         if (ndr_flags & NDR_BUFFERS) {
    2206             :         }
    2207           0 :         return NDR_ERR_SUCCESS;
    2208             : }
    2209             : 
    2210           0 : static void ndr_print_flags_NTLMSSP_MESSAGE_SIGNATURE(struct ndr_print *ndr, const char *name, int unused, const struct NTLMSSP_MESSAGE_SIGNATURE *r)
    2211             : {
    2212           0 :         ndr_print_NTLMSSP_MESSAGE_SIGNATURE(ndr, name, r);
    2213           0 : }
    2214             : 
    2215           0 : _PUBLIC_ void ndr_print_NTLMSSP_MESSAGE_SIGNATURE(struct ndr_print *ndr, const char *name, const struct NTLMSSP_MESSAGE_SIGNATURE *r)
    2216             : {
    2217           0 :         ndr_print_struct(ndr, name, "NTLMSSP_MESSAGE_SIGNATURE");
    2218           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    2219           0 :         ndr->depth++;
    2220           0 :         ndr_print_uint32(ndr, "Version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NTLMSSP_SIGN_VERSION:r->Version);
    2221           0 :         ndr_print_uint32(ndr, "RandomPad", r->RandomPad);
    2222           0 :         ndr_print_uint32(ndr, "Checksum", r->Checksum);
    2223           0 :         ndr_print_uint32(ndr, "SeqNum", r->SeqNum);
    2224           0 :         ndr->depth--;
    2225             : }
    2226             : 
    2227           0 : _PUBLIC_ enum ndr_err_code ndr_push_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2(struct ndr_push *ndr, int ndr_flags, const struct NTLMSSP_MESSAGE_SIGNATURE_NTLMv2 *r)
    2228             : {
    2229             :         {
    2230           0 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    2231           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    2232           0 :                 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
    2233           0 :                 if (ndr_flags & NDR_SCALARS) {
    2234           0 :                         NDR_CHECK(ndr_push_align(ndr, 4));
    2235           0 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, NTLMSSP_SIGN_VERSION));
    2236           0 :                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->Checksum, 8));
    2237           0 :                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SeqNum));
    2238           0 :                         NDR_CHECK(ndr_push_trailer_align(ndr, 4));
    2239             :                 }
    2240           0 :                 if (ndr_flags & NDR_BUFFERS) {
    2241             :                 }
    2242           0 :                 ndr->flags = _flags_save_STRUCT;
    2243             :         }
    2244           0 :         return NDR_ERR_SUCCESS;
    2245             : }
    2246             : 
    2247           0 : _PUBLIC_ enum ndr_err_code ndr_pull_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2(struct ndr_pull *ndr, int ndr_flags, struct NTLMSSP_MESSAGE_SIGNATURE_NTLMv2 *r)
    2248             : {
    2249           0 :         uint32_t size_Checksum_0 = 0;
    2250             :         {
    2251           0 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    2252           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    2253           0 :                 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
    2254           0 :                 if (ndr_flags & NDR_SCALARS) {
    2255           0 :                         NDR_CHECK(ndr_pull_align(ndr, 4));
    2256           0 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Version));
    2257           0 :                         size_Checksum_0 = 8;
    2258           0 :                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->Checksum, size_Checksum_0));
    2259           0 :                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SeqNum));
    2260           0 :                         NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
    2261             :                 }
    2262           0 :                 if (ndr_flags & NDR_BUFFERS) {
    2263             :                 }
    2264           0 :                 ndr->flags = _flags_save_STRUCT;
    2265             :         }
    2266           0 :         return NDR_ERR_SUCCESS;
    2267             : }
    2268             : 
    2269           0 : static void ndr_print_flags_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2(struct ndr_print *ndr, const char *name, int unused, const struct NTLMSSP_MESSAGE_SIGNATURE_NTLMv2 *r)
    2270             : {
    2271           0 :         ndr_print_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2(ndr, name, r);
    2272           0 : }
    2273             : 
    2274           0 : _PUBLIC_ void ndr_print_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2(struct ndr_print *ndr, const char *name, const struct NTLMSSP_MESSAGE_SIGNATURE_NTLMv2 *r)
    2275             : {
    2276           0 :         ndr_print_struct(ndr, name, "NTLMSSP_MESSAGE_SIGNATURE_NTLMv2");
    2277           0 :         if (r == NULL) { ndr_print_null(ndr); return; }
    2278             :         {
    2279           0 :                 uint32_t _flags_save_STRUCT = ndr->flags;
    2280           0 :                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
    2281           0 :                 ndr->depth++;
    2282           0 :                 ndr_print_uint32(ndr, "Version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NTLMSSP_SIGN_VERSION:r->Version);
    2283           0 :                 ndr_print_array_uint8(ndr, "Checksum", r->Checksum, 8);
    2284           0 :                 ndr_print_uint32(ndr, "SeqNum", r->SeqNum);
    2285           0 :                 ndr->depth--;
    2286           0 :                 ndr->flags = _flags_save_STRUCT;
    2287             :         }
    2288             : }
    2289             : 
    2290             : #ifndef SKIP_NDR_TABLE_ntlmssp
    2291             : static const struct ndr_interface_public_struct ntlmssp_public_structs[] = {
    2292             :         {
    2293             :                 .name = "ntlmssp_VERSION",
    2294             :                 .struct_size = sizeof(struct ntlmssp_VERSION ),
    2295             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_ntlmssp_VERSION,
    2296             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_ntlmssp_VERSION,
    2297             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_ntlmssp_VERSION,
    2298             :         },
    2299             :         {
    2300             :                 .name = "NEGOTIATE_MESSAGE",
    2301             :                 .struct_size = sizeof(struct NEGOTIATE_MESSAGE ),
    2302             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_NEGOTIATE_MESSAGE,
    2303             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_NEGOTIATE_MESSAGE,
    2304             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_NEGOTIATE_MESSAGE,
    2305             :         },
    2306             :         {
    2307             :                 .name = "AV_PAIR",
    2308             :                 .struct_size = sizeof(struct AV_PAIR ),
    2309             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_AV_PAIR,
    2310             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_AV_PAIR,
    2311             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_AV_PAIR,
    2312             :         },
    2313             :         {
    2314             :                 .name = "AV_PAIR_LIST",
    2315             :                 .struct_size = sizeof(struct AV_PAIR_LIST ),
    2316             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_AV_PAIR_LIST,
    2317             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_AV_PAIR_LIST,
    2318             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_AV_PAIR_LIST,
    2319             :         },
    2320             :         {
    2321             :                 .name = "CHALLENGE_MESSAGE",
    2322             :                 .struct_size = sizeof(struct CHALLENGE_MESSAGE ),
    2323             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_CHALLENGE_MESSAGE,
    2324             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_CHALLENGE_MESSAGE,
    2325             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_CHALLENGE_MESSAGE,
    2326             :         },
    2327             :         {
    2328             :                 .name = "LM_RESPONSE",
    2329             :                 .struct_size = sizeof(struct LM_RESPONSE ),
    2330             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_LM_RESPONSE,
    2331             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_LM_RESPONSE,
    2332             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_LM_RESPONSE,
    2333             :         },
    2334             :         {
    2335             :                 .name = "LMv2_RESPONSE",
    2336             :                 .struct_size = sizeof(struct LMv2_RESPONSE ),
    2337             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_LMv2_RESPONSE,
    2338             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_LMv2_RESPONSE,
    2339             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_LMv2_RESPONSE,
    2340             :         },
    2341             :         {
    2342             :                 .name = "NTLM_RESPONSE",
    2343             :                 .struct_size = sizeof(struct NTLM_RESPONSE ),
    2344             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_NTLM_RESPONSE,
    2345             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_NTLM_RESPONSE,
    2346             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_NTLM_RESPONSE,
    2347             :         },
    2348             :         {
    2349             :                 .name = "NTLMv2_RESPONSE",
    2350             :                 .struct_size = sizeof(struct NTLMv2_RESPONSE ),
    2351             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_NTLMv2_RESPONSE,
    2352             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_NTLMv2_RESPONSE,
    2353             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_NTLMv2_RESPONSE,
    2354             :         },
    2355             :         {
    2356             :                 .name = "AUTHENTICATE_MESSAGE",
    2357             :                 .struct_size = sizeof(struct AUTHENTICATE_MESSAGE ),
    2358             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_AUTHENTICATE_MESSAGE,
    2359             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_AUTHENTICATE_MESSAGE,
    2360             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_AUTHENTICATE_MESSAGE,
    2361             :         },
    2362             :         {
    2363             :                 .name = "NTLMSSP_MESSAGE_SIGNATURE",
    2364             :                 .struct_size = sizeof(struct NTLMSSP_MESSAGE_SIGNATURE ),
    2365             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_NTLMSSP_MESSAGE_SIGNATURE,
    2366             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_NTLMSSP_MESSAGE_SIGNATURE,
    2367             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_NTLMSSP_MESSAGE_SIGNATURE,
    2368             :         },
    2369             :         {
    2370             :                 .name = "NTLMSSP_MESSAGE_SIGNATURE_NTLMv2",
    2371             :                 .struct_size = sizeof(struct NTLMSSP_MESSAGE_SIGNATURE_NTLMv2 ),
    2372             :                 .ndr_push = (ndr_push_flags_fn_t) ndr_push_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2,
    2373             :                 .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2,
    2374             :                 .ndr_print = (ndr_print_function_t) ndr_print_flags_NTLMSSP_MESSAGE_SIGNATURE_NTLMv2,
    2375             :         },
    2376             :         { .name = NULL }
    2377             : };
    2378             : 
    2379             : static const struct ndr_interface_call ntlmssp_calls[] = {
    2380             :         { .name = NULL }
    2381             : };
    2382             : 
    2383             : static const char * const ntlmssp_endpoint_strings[] = {
    2384             :         "ncacn_np:[\\pipe\\ntlmssp]", 
    2385             : };
    2386             : 
    2387             : static const struct ndr_interface_string_array ntlmssp_endpoints = {
    2388             :         .count  = 1,
    2389             :         .names  = ntlmssp_endpoint_strings
    2390             : };
    2391             : 
    2392             : static const char * const ntlmssp_authservice_strings[] = {
    2393             :         "host", 
    2394             : };
    2395             : 
    2396             : static const struct ndr_interface_string_array ntlmssp_authservices = {
    2397             :         .count  = 1,
    2398             :         .names  = ntlmssp_authservice_strings
    2399             : };
    2400             : 
    2401             : 
    2402             : const struct ndr_interface_table ndr_table_ntlmssp = {
    2403             :         .name           = "ntlmssp",
    2404             :         .syntax_id      = {
    2405             :                 {0x6e746c6d,0x7373,0x700a,{0x00,0x00},{0x00,0x00,0x00,0x00}},
    2406             :                 NDR_NTLMSSP_VERSION
    2407             :         },
    2408             :         .helpstring     = NDR_NTLMSSP_HELPSTRING,
    2409             :         .num_calls      = 0,
    2410             :         .calls          = ntlmssp_calls,
    2411             :         .num_public_structs     = 12,
    2412             :         .public_structs         = ntlmssp_public_structs,
    2413             :         .endpoints      = &ntlmssp_endpoints,
    2414             :         .authservices   = &ntlmssp_authservices
    2415             : };
    2416             : 
    2417             : #endif /* SKIP_NDR_TABLE_ntlmssp */

Generated by: LCOV version 1.13