From 816bb64a56a75d1eb5e879b4abf211af27243686 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Thu, 31 Jul 2008 23:17:20 +1000 Subject: [PATCH] Update to a working trustAuthIncoming and trustAuthOutgoing parser. This is based on the docs, as well as testing against a domain trust in windows. Clearly it needs to be more general - perhaps a non IDL parser? Andrew Bartlett --- source/librpc/idl/drsblobs.idl | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/source/librpc/idl/drsblobs.idl b/source/librpc/idl/drsblobs.idl index 401f5e40bb0..b0cddfcdf9c 100644 --- a/source/librpc/idl/drsblobs.idl +++ b/source/librpc/idl/drsblobs.idl @@ -386,7 +386,7 @@ interface drsblobs { typedef struct { uint32 size; - [charset(UTF16)] uint8 password[size]; + uint8 password[size]; } AuthInfoClear; typedef struct { @@ -422,11 +422,32 @@ interface drsblobs { [flag(NDR_ALIGN4)] DATA_BLOB _pad; } AuthenticationInformation; + typedef struct { + AuthenticationInformation info[1]; + } AuthenticationInformation1; + + typedef struct { + AuthenticationInformation info[2]; + } AuthenticationInformation2; + + typedef struct { + [relative] AuthenticationInformation1 *current; + [relative] AuthenticationInformation1 *previous; + } AuthenticationInformationCtr1; + + typedef struct { + [relative] AuthenticationInformation2 *current; + [relative] AuthenticationInformation2 *previous; + } AuthenticationInformationCtr2; + + typedef [nodiscriminant] union { + [case(1)] AuthenticationInformationCtr1 info1; + [case(2)] AuthenticationInformationCtr2 info2; + } AuthenticationInformationCtr; + typedef [public] struct { uint32 count; - [relative] AuthenticationInformation *authinfo[count]; - [relative] AuthenticationInformation *previous_authinfo[count]; - + [switch_is(count)] AuthenticationInformationCtr auth; } trustAuthInOutBlob; void decode_trustAuthInOut( -- 2.34.1