>From cb1276debb122aaffe554edf74adf53b9c66bd47 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Thu, 27 Sep 2012 14:12:06 -0400 Subject: [PATCH] Support UPN_DNS_INFO in the PAC Previously marked as UNKNOWN_12 the UPN_DNS_INFO is defined in MS-PAC --- librpc/idl/krb5pac.idl | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/librpc/idl/krb5pac.idl b/librpc/idl/krb5pac.idl index 8a6540c13b1e24128ce268e54ff3f75917fb8d49..0fce16baaa38c3b7a86eae58616ba51d0d0ae542 100644 --- a/librpc/idl/krb5pac.idl +++ b/librpc/idl/krb5pac.idl @@ -37,18 +37,20 @@ interface krb5pac [size_is(num_transited_services)] lsa_String *transited_services; } PAC_CONSTRAINED_DELEGATION; + typedef [public,bitmap32bit] bitmap { + UDI_ACCT_HAS_NO_UPN = 0x00000001 /* 1= User account has no UPN */ + } upn_dns_info_flags; + typedef struct { [value(2*strlen_m(upn_name))] uint16 upn_size; uint16 upn_offset; [value(2*strlen_m(domain_name))] uint16 domain_size; uint16 domain_offset; - uint16 unknown3; /* 0x01 */ - uint16 unknown4; - uint32 unknown5; + upn_dns_info_flags flags; + uint32 padding; [charset(UTF16)] uint8 upn_name[upn_size+2]; [charset(UTF16)] uint8 domain_name[domain_size+2]; - uint32 unknown6; /* padding */ - } PAC_UNKNOWN_12; + } PAC_UPN_DNS_INFO; typedef [public] struct { PAC_LOGON_INFO *info; @@ -64,7 +66,7 @@ interface krb5pac PAC_TYPE_KDC_CHECKSUM = 7, PAC_TYPE_LOGON_NAME = 10, PAC_TYPE_CONSTRAINED_DELEGATION = 11, - PAC_TYPE_UNKNOWN_12 = 12 + PAC_TYPE_UPN_DNS_INFO = 12 } PAC_TYPE; typedef struct { @@ -78,12 +80,12 @@ interface krb5pac [case(PAC_TYPE_LOGON_NAME)] PAC_LOGON_NAME logon_name; [case(PAC_TYPE_CONSTRAINED_DELEGATION)][subcontext(0xFFFFFC01)] PAC_CONSTRAINED_DELEGATION_CTR constrained_delegation; + [case(PAC_TYPE_UPN_DNS_INFO)] PAC_UPN_DNS_INFO upn_dns_info; /* when new PAC info types are added they are supposed to be done in such a way that they are backwards compatible with existing servers. This makes it safe to just use a [default] for unknown types, which lets us ignore the data */ [default] [subcontext(0)] DATA_BLOB_REM unknown; - /* [case(PAC_TYPE_UNKNOWN_12)] PAC_UNKNOWN_12 unknown; */ } PAC_INFO; typedef [public,nopush,nopull,noprint] struct { -- 1.7.11.4