summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2008-08-27 21:36:27 +1000
committerAndrew Bartlett <abartlet@samba.org>2008-08-27 21:36:27 +1000
commit960bd9df1f4c7bec95be5362fa7fa66d5ac591e9 (patch)
tree5c51a4927ff1875eb06d43abce8b50a5b36924d0 /source4/librpc
parent031d145e382fd545f43fa1cd72c10e1469034659 (diff)
downloadsamba-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.idl14
-rw-r--r--source4/librpc/idl/netlogon.idl18
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 {