3 import
"misc.idl", "samr.idl", "lsa.idl", "netlogon.idl", "security.idl";
6 IDL structures for secrets code
10 pointer_default(unique)
16 * s3 on-disc storage structure for trusted domains, do not change !
19 typedef [flag
(NDR_NOALIGN
),public] struct {
20 [value
(strlen_m_term
(uni_name
))] uint32 uni_name_len
;
21 [charset
(UTF16
)] uint16 uni_name
[32]; /* unicode domain name */
22 [value
(strlen
(pass
))] uint32 pass_len
;
23 astring pass
; /* trust relationship's password */
25 dom_sid domain_sid
; /* remote domain's sid */
29 * s3 on-disc storage structure for lsa secrets, do not change !
32 typedef [public] struct {
33 DATA_BLOB
*secret_current
;
34 NTTIME secret_current_lastchange
;
35 DATA_BLOB
*secret_old
;
36 NTTIME secret_old_lastchange
;
37 security_descriptor
*sd
;
41 * This is the on-disc format the workstation trust.
44 * without changing secrets_domain_info_version
45 * and adding glue code. Discuss on samba-technical
50 uint32 iteration_count
;
51 [flag
(NDR_SECRET
)] DATA_BLOB value
;
52 } secrets_domain_info1_kerberos_key
;
56 [string,charset
(UTF16
)] uint16 change_server
[];
58 [flag
(NDR_SECRET
)] DATA_BLOB cleartext_blob
;
59 [flag
(NDR_SECRET
)] samr_Password nt_hash
;
61 [string,charset
(UTF16
)] uint16
*salt_data
;
62 uint32 default_iteration_count
;
64 secrets_domain_info1_kerberos_key keys
[num_keys
];
65 } secrets_domain_info1_password
;
68 NTSTATUS local_status
;
69 NTSTATUS remote_status
;
71 [string,charset
(UTF16
)] uint16 change_server
[];
72 [ref] secrets_domain_info1_password
*password
;
73 } secrets_domain_info1_change
;
75 typedef [public] struct {
76 [value
(0)] hyper reserved_flags
;
80 [string,charset
(UTF16
)] uint16 computer_name
[];
81 [string,charset
(UTF16
)] uint16 account_name
[];
82 netr_SchannelType secure_channel_type
;
84 lsa_DnsDomainInfo domain_info
;
85 netr_TrustFlags trust_flags
;
86 lsa_TrustType trust_type
;
87 lsa_TrustAttributes trust_attributes
;
90 * This is unused currently, it might
91 * be useful to implement multi-tenancy (joining multiple domains)
94 * Or we could use it to do other filtering of domains.
96 [value
(NULL
)] lsa_ForestTrustInformation
*reserved_routing
;
98 kerb_EncTypes supported_enc_types
;
99 [string,charset
(UTF16
)] uint16
*salt_principal
;
101 NTTIME password_last_change
;
102 hyper password_changes
;
103 secrets_domain_info1_change
*next_change
;
105 [ref] secrets_domain_info1_password
*password
;
106 secrets_domain_info1_password
*old_password
;
107 secrets_domain_info1_password
*older_password
;
108 } secrets_domain_info1
;
110 typedef [v1_enum] enum {
111 SECRETS_DOMAIN_INFO_VERSION_1
= 0x00000001
112 } secrets_domain_info_version
;
115 * If we ever need to change this we need to
116 * change secrets_domain_info into
117 * secrets_domain_info_v1
120 [case(SECRETS_DOMAIN_INFO_VERSION_1
)]
121 secrets_domain_info1
*info1
;
123 } secrets_domain_infoU
;
125 typedef [public] struct {
126 secrets_domain_info_version
version;
127 [value
(0)] uint32 reserved
;
128 [switch_is(version)] secrets_domain_infoU info
;
129 } secrets_domain_infoB
;