From 960bd9df1f4c7bec95be5362fa7fa66d5ac591e9 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Wed, 27 Aug 2008 21:36:27 +1000 Subject: Add a test to explore Netlogon PAC validation However, I have still not figured out this protocol yet, and the docs are rather unclear... :-( Andrew Bartlett (This used to be commit d878643071a1477435a267e2944461d367cdfa79) --- source4/librpc/idl/krb5pac.idl | 14 ++++++++++++++ source4/librpc/idl/netlogon.idl | 18 +++++++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) (limited to 'source4/librpc') diff --git a/source4/librpc/idl/krb5pac.idl b/source4/librpc/idl/krb5pac.idl index ca0efaed3e..07f747a0c4 100644 --- a/source4/librpc/idl/krb5pac.idl +++ b/source4/librpc/idl/krb5pac.idl @@ -100,6 +100,14 @@ interface krb5pac PAC_BUFFER_RAW buffers[num_buffers]; } PAC_DATA_RAW; + typedef [public] struct { + uint32 MessageType; + uint32 ChecksumLength; + uint32 SignatureType; + uint32 SignatureLength; + [size_is(ChecksumLength),length_is(ChecksumLength)] uint8 *data; + } PAC_Validate; + void decode_pac( [in] PAC_DATA pac ); @@ -111,4 +119,10 @@ interface krb5pac void decode_login_info( [in] PAC_LOGON_INFO logon_info ); + + void decode_pac_validate( + [in] PAC_Validate pac_validate + ); + + } diff --git a/source4/librpc/idl/netlogon.idl b/source4/librpc/idl/netlogon.idl index 62f1b8843a..006411dfbf 100644 --- a/source4/librpc/idl/netlogon.idl +++ b/source4/librpc/idl/netlogon.idl @@ -127,7 +127,7 @@ interface netlogon netr_IdentityInfo identity_info; lsa_String package_name; uint32 length; - [size_is(length),length_is(length)] uint8 *data; + [size_is(length)] uint8 *data; } netr_GenericInfo; typedef enum { @@ -240,12 +240,20 @@ interface netlogon lsa_String unknown4; } netr_PacInfo; + typedef enum { + NetlogonValidationUasInfo = 1, + NetlogonValidationSamInfo = 2, + NetlogonValidationSamInfo2 = 3, + NetlogonValidationGenericInfo2 = 5, + NetlogonValidationSamInfo4 = 6 + } netr_ValidationInfoClass; + typedef [public,switch_type(uint16)] union { - [case(2)] netr_SamInfo2 *sam2; - [case(3)] netr_SamInfo3 *sam3; + [case(NetlogonValidationSamInfo)] netr_SamInfo2 *sam2; + [case(NetlogonValidationSamInfo2)] netr_SamInfo3 *sam3; [case(4)] netr_PacInfo *pac; - [case(5)] netr_PacInfo *pac; - [case(6)] netr_SamInfo6 *sam6; + [case(NetlogonValidationGenericInfo2)] netr_PacInfo *pac; + [case(NetlogonValidationSamInfo4)] netr_SamInfo6 *sam6; } netr_Validation; typedef [public, flag(NDR_PAHEX)] struct { -- cgit