summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2008-07-31 23:17:20 +1000
committerAndrew Bartlett <abartlet@samba.org>2008-07-31 23:17:20 +1000
commit43d2329da6195d9102de7a687954c2a87ad3bfd4 (patch)
treedb18c2cce30be162a19404d5915878034fe7a341 /source4/librpc
parent358a11c6f3c8d063b1f25bf27191811ff82d91ec (diff)
downloadsamba-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/librpc')
-rw-r--r--source4/librpc/idl/drsblobs.idl29
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(