summaryrefslogtreecommitdiff
path: root/source4/librpc
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc')
-rw-r--r--source4/librpc/idl/drsblobs.idl24
1 files changed, 16 insertions, 8 deletions
diff --git a/source4/librpc/idl/drsblobs.idl b/source4/librpc/idl/drsblobs.idl
index ec2e2163f1..3b912548a2 100644
--- a/source4/librpc/idl/drsblobs.idl
+++ b/source4/librpc/idl/drsblobs.idl
@@ -270,17 +270,25 @@ interface drsblobs {
[value(0)] uint32 unknown2;
} package_PrimaryKerberosKey;
- typedef [public] struct {
- [value(3)] uint32 version;
- uint16 num_keys1;
- uint16 num_keys2;
+ typedef struct {
+ uint16 num_keys;
+ uint16 num_old_keys;
package_PrimaryKerberosString salt;
[value(0)] uint32 unknown1;
[value(0)] uint32 unknown2;
- package_PrimaryKerberosKey keys1[num_keys1];
- package_PrimaryKerberosKey keys2[num_keys2];
- udlong unknown3_1[num_keys1];
- udlong unknown3_2[num_keys2];
+ package_PrimaryKerberosKey keys[num_keys];
+ package_PrimaryKerberosKey old_keys[num_old_keys];
+ udlong unknown3[num_keys];
+ udlong unknown3_old[num_old_keys];
+ } package_PrimaryKerberosCtr3;
+
+ typedef [nodiscriminant] union {
+ [case(3)] package_PrimaryKerberosCtr3 ctr3;
+ } package_PrimaryKerberosCtr;
+
+ typedef [public] struct {
+ [value(3)] uint32 version;
+ [switch_is(version)] package_PrimaryKerberosCtr ctr;
} package_PrimaryKerberosBlob;
void decode_PrimaryKerberos(