diff options
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r-- | source4/librpc/idl/krb5pac.idl | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/source4/librpc/idl/krb5pac.idl b/source4/librpc/idl/krb5pac.idl index 4de5453478..a0df6f3822 100644 --- a/source4/librpc/idl/krb5pac.idl +++ b/source4/librpc/idl/krb5pac.idl @@ -5,7 +5,7 @@ #include "idl_types.h" [ - uuid("46746756-7567-7567-5677-756756756756"), + uuid("1-2-3-4"), version(0.0), pointer_default(unique), pointer_default_top(unique), @@ -24,29 +24,35 @@ interface krb5pac } PAC_SIGNATURE_DATA; typedef struct { - uint32 unknown[5]; netr_SamInfo3 info3; dom_sid2 *res_group_dom_sid; samr_RidWithAttributeArray res_groups; } PAC_LOGON_INFO; - const uint8 PAC_TYPE_LOGON_INFO = 1; - const uint8 PAC_TYPE_SRV_CHECKSUM = 6; - const uint8 PAC_TYPE_KDC_CHECKSUM = 7; - const uint8 PAC_TYPE_LOGON_NAME = 10; + typedef struct { + uint32 unknown[4]; + PAC_LOGON_INFO *i; + } PAC_LOGON_INFO_CTR; + + typedef [public,v1_enum] enum { + PAC_TYPE_LOGON_INFO = 1, + PAC_TYPE_SRV_CHECKSUM = 6, + PAC_TYPE_KDC_CHECKSUM = 7, + PAC_TYPE_LOGON_NAME = 10 + } PAC_TYPE; - typedef [nodiscriminant,gensize] union { - [case(PAC_TYPE_LOGON_INFO)] PAC_LOGON_INFO logon_info; + typedef [public,nodiscriminant,gensize] union { + [case(PAC_TYPE_LOGON_INFO)] PAC_LOGON_INFO_CTR logon_info; [case(PAC_TYPE_SRV_CHECKSUM)] PAC_SIGNATURE_DATA srv_cksum; [case(PAC_TYPE_KDC_CHECKSUM)] PAC_SIGNATURE_DATA kdc_cksum; [case(PAC_TYPE_LOGON_NAME)] PAC_LOGON_NAME logon_name; } PAC_INFO; - typedef struct { - uint32 type; - uint32 size; - [relative,switch_is(type),subcontext(0),subcontext_size(size),pad8] PAC_INFO *info; - uint32 _pad; /* Top half of a 64 bit pointer? */ + typedef [public,nopush,nopull,noprint] struct { + PAC_TYPE type; + [value(_ndr_size_PAC_INFO(info, type, 0))] uint32 _ndr_size; + [relative,switch_is(type),subcontext(0),subcontext_size(_subcontext_size_PAC_INFO(r, ndr->flags)),flag(NDR_ALIGN8)] PAC_INFO *info; + [value(0)] uint32 _pad; /* Top half of a 64 bit pointer? */ } PAC_BUFFER; typedef [public] struct { |