diff options
author | Andrew Bartlett <abartlet@samba.org> | 2005-07-04 02:36:16 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:19:09 -0500 |
commit | dbd2688c9042faaa44f4d89068a8351523233875 (patch) | |
tree | 31cc633ae8f0f6a2437b3f726455548d9a6a051e /source4/librpc | |
parent | 06348629b921adb6262e0f3d9a9c244568e2a78f (diff) | |
download | samba-dbd2688c9042faaa44f4d89068a8351523233875.tar.gz samba-dbd2688c9042faaa44f4d89068a8351523233875.tar.bz2 samba-dbd2688c9042faaa44f4d89068a8351523233875.zip |
r8110: More PAC work. I still can't get WinXP to accept the PAC, but we are
much closer.
This changes PIDL to allow a subcontext to have a pad8 flag, saying to
pad behind to an 8 byte boundary. This is the only way I can explain
the 4 trainling zeros in the signature struct.
Far more importantly, the PAC code is now under self-test, both in
creating/parsing our own PAC, but also a PAC from my win2k3 server.
This required changing auth_anonymous, because I wanted to reuse the
anonymous 'server_info' generation code.
I'm still having trouble with PIDL, particulary as surrounds value(),
but I'll follow up on the list.
Andrew Bartlett
(This used to be commit 50a54bf4e9bf04d2a8e0aebb3482a2ff655c8bbb)
Diffstat (limited to 'source4/librpc')
-rw-r--r-- | source4/librpc/idl/krb5pac.idl | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/source4/librpc/idl/krb5pac.idl b/source4/librpc/idl/krb5pac.idl index 71acfd79bd..4de5453478 100644 --- a/source4/librpc/idl/krb5pac.idl +++ b/source4/librpc/idl/krb5pac.idl @@ -16,13 +16,11 @@ interface krb5pac typedef struct { NTTIME logon_time; [flag(STR_SIZE2|STR_NOTERM|STR_BYTESIZE)] string account_name; - [value(0)] uint32 _pad; } PAC_LOGON_NAME; typedef [public,flag(NDR_PAHEX)] struct { uint32 type; uint8 signature[16]; - [value(0)] uint32 _pad; } PAC_SIGNATURE_DATA; typedef struct { @@ -37,7 +35,7 @@ interface krb5pac const uint8 PAC_TYPE_KDC_CHECKSUM = 7; const uint8 PAC_TYPE_LOGON_NAME = 10; - typedef [nodiscriminant,gensize,flag(NDR_ALIGN8)] union { + typedef [nodiscriminant,gensize] union { [case(PAC_TYPE_LOGON_INFO)] PAC_LOGON_INFO logon_info; [case(PAC_TYPE_SRV_CHECKSUM)] PAC_SIGNATURE_DATA srv_cksum; [case(PAC_TYPE_KDC_CHECKSUM)] PAC_SIGNATURE_DATA kdc_cksum; @@ -46,12 +44,12 @@ interface krb5pac typedef struct { uint32 type; - [value(ndr_size_PAC_INFO(info,type,ndr->flags))] uint32 size; - [relative,switch_is(type)] PAC_INFO *info; - [value(0)] uint32 _pad; /* Top half of a 64 bit pointer? */ + uint32 size; + [relative,switch_is(type),subcontext(0),subcontext_size(size),pad8] PAC_INFO *info; + uint32 _pad; /* Top half of a 64 bit pointer? */ } PAC_BUFFER; - typedef [public,flag(NDR_ALIGN8)] struct { + typedef [public] struct { uint32 num_buffers; uint32 version; PAC_BUFFER buffers[num_buffers]; |