diff options
author | Andrew Bartlett <abartlet@samba.org> | 2008-08-27 21:36:27 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2008-08-27 21:36:27 +1000 |
commit | 960bd9df1f4c7bec95be5362fa7fa66d5ac591e9 (patch) | |
tree | 5c51a4927ff1875eb06d43abce8b50a5b36924d0 /source4/librpc | |
parent | 031d145e382fd545f43fa1cd72c10e1469034659 (diff) | |
download | samba-960bd9df1f4c7bec95be5362fa7fa66d5ac591e9.tar.gz samba-960bd9df1f4c7bec95be5362fa7fa66d5ac591e9.tar.bz2 samba-960bd9df1f4c7bec95be5362fa7fa66d5ac591e9.zip |
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)
Diffstat (limited to 'source4/librpc')
-rw-r--r-- | source4/librpc/idl/krb5pac.idl | 14 | ||||
-rw-r--r-- | source4/librpc/idl/netlogon.idl | 18 |
2 files changed, 27 insertions, 5 deletions
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 { |