diff options
author | Andrew Bartlett <abartlet@samba.org> | 2008-07-31 23:17:20 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2008-07-31 23:17:20 +1000 |
commit | 43d2329da6195d9102de7a687954c2a87ad3bfd4 (patch) | |
tree | db18c2cce30be162a19404d5915878034fe7a341 /source4 | |
parent | 358a11c6f3c8d063b1f25bf27191811ff82d91ec (diff) | |
download | samba-43d2329da6195d9102de7a687954c2a87ad3bfd4.tar.gz samba-43d2329da6195d9102de7a687954c2a87ad3bfd4.tar.bz2 samba-43d2329da6195d9102de7a687954c2a87ad3bfd4.zip |
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
(This used to be commit 816bb64a56a75d1eb5e879b4abf211af27243686)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/librpc/idl/drsblobs.idl | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/source4/librpc/idl/drsblobs.idl b/source4/librpc/idl/drsblobs.idl index 401f5e40bb..b0cddfcdf9 100644 --- a/source4/librpc/idl/drsblobs.idl +++ b/source4/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( |