summaryrefslogtreecommitdiffstats
path: root/source/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
commitd878643071a1477435a267e2944461d367cdfa79 (patch)
tree7b7ebf772979d13d34b78eee968ae9d36ce96405 /source/librpc
parent9701149ef75f9771f42000e2b6f44963abfee938 (diff)
downloadsamba-d878643071a1477435a267e2944461d367cdfa79.tar.gz
samba-d878643071a1477435a267e2944461d367cdfa79.tar.xz
samba-d878643071a1477435a267e2944461d367cdfa79.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
Diffstat (limited to 'source/librpc')
-rw-r--r--source/librpc/idl/krb5pac.idl14
-rw-r--r--source/librpc/idl/netlogon.idl18
2 files changed, 27 insertions, 5 deletions
diff --git a/source/librpc/idl/krb5pac.idl b/source/librpc/idl/krb5pac.idl
index ca0efaed3e6..07f747a0c4b 100644
--- a/source/librpc/idl/krb5pac.idl
+++ b/source/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/source/librpc/idl/netlogon.idl b/source/librpc/idl/netlogon.idl
index 62f1b8843a0..006411dfbf7 100644
--- a/source/librpc/idl/netlogon.idl
+++ b/source/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 {