summaryrefslogtreecommitdiffstats
path: root/librpc/idl/gmsa.idl
diff options
context:
space:
mode:
Diffstat (limited to 'librpc/idl/gmsa.idl')
-rw-r--r--librpc/idl/gmsa.idl44
1 files changed, 44 insertions, 0 deletions
diff --git a/librpc/idl/gmsa.idl b/librpc/idl/gmsa.idl
new file mode 100644
index 0000000..bad9030
--- /dev/null
+++ b/librpc/idl/gmsa.idl
@@ -0,0 +1,44 @@
+/*
+ * Type definitions for Group Managed Service Accounts
+ *
+ * Derived from [MS-ADTS] 2.2.19 MSDS-MANAGEDPASSWORD_BLOB.
+ */
+
+#include "idl_types.h"
+
+[
+ uuid("e43b8cf6-1ead-11ee-aed1-e3597136ce70"),
+ version(0.0),
+ pointer_default(unique),
+ helpstring("Active Directory Group Managed Service Accounts")
+]
+interface gmsa
+{
+ /* Public structures. */
+
+ typedef [gensize] struct {
+ [relative_short] secret_u16string *current;
+ [relative_short] secret_u16string *previous;
+ /*
+ * MS-ADTS states that these fields must be placed on a 64‐bit
+ * boundary, but samples obtained from Windows are found not to
+ * be so. In practice, they’re offset by two bytes. That’s why
+ * we need NOALIGN.
+ */
+ [relative_short, flag(NDR_NOALIGN)] hyper *query_interval;
+ [relative_short, flag(NDR_NOALIGN)] hyper *unchanged_interval;
+ } MANAGEDPASSWORD_BLOB_PASSWORDS;
+
+ typedef [public] struct {
+ [value(1)] uint16 version;
+ [value(0)] uint16 reserved;
+ /*
+ * The size of the entire blob. 8 bytes account for the
+ * ‘version’ field, the ‘reserved’ field, and the ‘length’ field
+ * itself.
+ */
+ [value(8 + ndr_size_MANAGEDPASSWORD_BLOB_PASSWORDS(&passwords,
+ ndr->flags))] uint32 length;
+ MANAGEDPASSWORD_BLOB_PASSWORDS passwords;
+ } MANAGEDPASSWORD_BLOB;
+}