diff options
author | Stefan Metzmacher <metze@samba.org> | 2007-02-16 12:38:08 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:48:23 -0500 |
commit | f2d9c313c6649eeca3634c1808ca57f42b534e56 (patch) | |
tree | d89f7271ada1284551ada79b5c715c17204e173c /source4 | |
parent | 3a93b655dd0d29ad9227d4530dde1996061f7116 (diff) | |
download | samba-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)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/librpc/idl/drsblobs.idl | 29 |
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; |