drsblobs.idl: add idl for Primary:Kerberos-Newer-Keys blob in supplementalCredentials
authorStefan Metzmacher <metze@samba.org>
Tue, 22 Jul 2008 10:28:07 +0000 (12:28 +0200)
committerMichael Adam <obnox@samba.org>
Wed, 23 Jul 2008 21:10:05 +0000 (23:10 +0200)
metze
(cherry picked from commit 97b7901afbccc9647ad2958d4cf12300de2655d1)
(This used to be commit 5db983d1538453f0ba35d67a099396a18c7ab736)

source3/librpc/idl/drsblobs.idl

index b6d444ff0d34d7188f34196f4c09c03002771062..2d82976f4d6a0cfab7353a5ba10179e7c625f144 100644 (file)
@@ -215,6 +215,9 @@ interface drsblobs {
                 *   as non termiated UTF16 strings with
                 *   a UTF16 NULL byte as separator
                 *
+                * 'Primary:Kerberos-Newer-Keys':
+                *    ...
+                *
                 * 'Primary:Kerberos':
                 *    ...
                 *
@@ -303,6 +306,40 @@ interface drsblobs {
                [in] package_PrimaryKerberosBlob blob
                );
 
+       typedef struct {
+               [value(0)] uint32 unknown1;
+               [value(0)] uint32 unknown2;
+               [value(0x00001000)] uint32 unknown3; /* could the the iterator for the AES key creation */
+               uint32 keytype;
+               [value((value?value->length:0))] uint32 value_len;
+               [relative,subcontext(0),subcontext_size(value_len),flag(NDR_REMAINING)] DATA_BLOB *value;
+       } package_PrimaryKerberosNewerKey;
+
+       typedef struct {
+               uint16 num_keys;
+               [value(0)] uint16 unknown1;
+               uint16 num_old_keys1;
+               uint16 num_old_keys2;
+               package_PrimaryKerberosString salt;
+               [value(0x00001000)] uint32 unknown2; /* could the the iterator for the AES key creation */
+               package_PrimaryKerberosNewerKey keys[num_keys];
+               package_PrimaryKerberosNewerKey old_keys1[num_old_keys1];
+               package_PrimaryKerberosNewerKey old_keys2[num_old_keys2];
+       } package_PrimaryKerberosNewerCtr4;
+
+       typedef [nodiscriminant] union {
+               [case(4)] package_PrimaryKerberosNewerCtr4 ctr4;
+       } package_PrimaryKerberosNewerCtr;
+
+       typedef [public] struct {
+               [value(4)] uint32 version;
+               [switch_is(version)] package_PrimaryKerberosNewerCtr ctr;
+       } package_PrimaryKerberosNewerBlob;
+
+       void decode_PrimaryKerberosNewer(
+               [in] package_PrimaryKerberosNewerBlob blob
+               );
+
        typedef [public] struct {
                [flag(STR_NOTERM|NDR_REMAINING)] string cleartext;
        } package_PrimaryCLEARTEXTBlob;