summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2007-02-16 12:38:08 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:48:23 -0500
commitf2d9c313c6649eeca3634c1808ca57f42b534e56 (patch)
treed89f7271ada1284551ada79b5c715c17204e173c
parent3a93b655dd0d29ad9227d4530dde1996061f7116 (diff)
downloadsamba-f2d9c313c6649eeca3634c1808ca57f42b534e56.tar.gz
samba-f2d9c313c6649eeca3634c1808ca57f42b534e56.tar.bz2
samba-f2d9c313c6649eeca3634c1808ca57f42b534e56.zip
r21380: add idl for parsing the Primary:Kerberos blobs
inside the supplementalCredentials attribute w2k uses keys1 and keys2 where both seem identical w2k3 only uses keys1 and num_keys2 = 0 the Salt is only stored once for all keys the following keys are stored: ENTYPE_DES_CBC_MD5 = 3 ENTYPE_DES_CBC_CRC = 1 metze (This used to be commit 03d7d05e4fa607271f84878bc238e7cf0560bc67)
-rw-r--r--source4/librpc/idl/drsblobs.idl29
1 files changed, 29 insertions, 0 deletions
diff --git a/source4/librpc/idl/drsblobs.idl b/source4/librpc/idl/drsblobs.idl
index 177ad5bc2d..3389308b2c 100644
--- a/source4/librpc/idl/drsblobs.idl
+++ b/source4/librpc/idl/drsblobs.idl
@@ -254,6 +254,35 @@ interface drsblobs {
[in] supplementalCredentialsBlob blob
);
+ typedef struct {
+ [value((string?string->length:0))] uint16 length;
+ [value((string?string->length:0))] uint16 size;
+ [relative,subcontext(0),subcontext_size(size),flag(NDR_REMAINING)] DATA_BLOB *string;
+ } package_PrimaryKerberosString;
+
+ typedef struct {
+ uint32 keytype;
+ [value((value?value->length:0))] uint32 value_len;
+ [relative,subcontext(0),subcontext_size(value_len),flag(NDR_REMAINING)] DATA_BLOB *value;
+ uint32 unknown1;
+ uint32 unknown2;
+ } package_PrimaryKerberosKey;
+
+ typedef [public] struct {
+ [value(3)] uint32 version;
+ uint16 num_keys1;
+ uint16 num_keys2;
+ package_PrimaryKerberosString salt;
+ uint32 unknown1;
+ uint32 unknown2;
+ package_PrimaryKerberosKey keys1[num_keys1];
+ package_PrimaryKerberosKey keys2[num_keys2];
+ udlong unknown3[4];
+ } package_PrimaryKerberosBlob;
+
+ void decode_PrimaryKerberos(
+ [in] package_PrimaryKerberosBlob blob
+ );
typedef struct {
NTTIME time1;