1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00

Share IDL between the LSA and drsblob representations of trusts

(This used to be commit e5520706c88911c66b3ce5817e371900212ca083)
This commit is contained in:
Andrew Bartlett 2008-09-02 11:31:17 +10:00
parent 35c8899949
commit 279ca74493
2 changed files with 51 additions and 41 deletions

View File

@ -1,6 +1,6 @@
#include "idl_types.h"
import "drsuapi.idl", "misc.idl", "samr.idl";
import "drsuapi.idl", "misc.idl", "samr.idl", "lsa.idl";
[
uuid("12345778-1234-abcd-0001-00000001"),
@ -12,7 +12,7 @@ interface drsblobs {
typedef bitmap drsuapi_DsReplicaSyncOptions drsuapi_DsReplicaSyncOptions;
typedef bitmap drsuapi_DsReplicaNeighbourFlags drsuapi_DsReplicaNeighbourFlags;
typedef [v1_enum] enum drsuapi_DsAttributeId drsuapi_DsAttributeId;
typedef [v1_enum] enum lsa_TrustAuthType lsa_TrustAuthType;
/*
* replPropertyMetaData
* w2k uses version 1
@ -356,25 +356,6 @@ interface drsblobs {
[in] package_PrimaryWDigestBlob blob
);
typedef struct {
NTTIME time1;
uint32 unknown1;
DATA_BLOB value;
[flag(NDR_ALIGN4)] DATA_BLOB _pad;
} trustAuthInOutSecret1;
typedef struct {
[relative] trustAuthInOutSecret1 *value1;
[relative] trustAuthInOutSecret1 *value2;
} trustAuthInOutCtr1;
typedef [v1_enum] enum {
TRUST_AUTH_TYPE_NONE = 0,
TRUST_AUTH_TYPE_NT4OWF = 1,
TRUST_AUTH_TYPE_CLEAR = 2,
TRUST_AUTH_TYPE_VERSION = 3
} trustAuthType;
typedef struct {
[value(0)] uint32 size;
} AuthInfoNone;
@ -384,6 +365,20 @@ interface drsblobs {
samr_Password password;
} AuthInfoNT4Owf;
/*
* the secret value is encoded as UTF16 if it's a string
* but depending the AuthType, it might also be krb5 trusts have random bytes here, so converting to UTF16
* mayfail...
*
* TODO: We should try handle the case of a random buffer in all places
* we deal with cleartext passwords from windows
*
* so we don't use this:
*
* uint32 value_len;
* [charset(UTF16)] uint8 value[value_len];
*/
typedef struct {
uint32 size;
uint8 password[size];
@ -403,21 +398,8 @@ interface drsblobs {
typedef [public] struct {
NTTIME LastUpdateTime;
trustAuthType AuthType;
lsa_TrustAuthType AuthType;
/*
* the secret value is encoded as UTF16 if it's a string
* but depending the AuthType, it might also be krb5 trusts have random bytes here, so converting to UTF16
* mayfail...
*
* TODO: We should try handle the case of a random buffer in all places
* we deal with cleartext passwords from windows
*
* so we don't use this:
*
* uint32 value_len;
* [charset(UTF16)] uint8 value[value_len];
*/
[switch_is(AuthType)] AuthInfo AuthInfo;
[flag(NDR_ALIGN4)] DATA_BLOB _pad;
} AuthenticationInformation;

View File

@ -578,9 +578,16 @@ import "misc.idl", "security.idl";
lsa_TrustAttributes trust_attributes;
} lsa_TrustDomainInfoInfoEx;
typedef [public,v1_enum] enum {
TRUST_AUTH_TYPE_NONE = 0,
TRUST_AUTH_TYPE_NT4OWF = 1,
TRUST_AUTH_TYPE_CLEAR = 2,
TRUST_AUTH_TYPE_VERSION = 3
} lsa_TrustAuthType;
typedef struct {
NTTIME_hyper last_update_time;
uint32 secret_type;
lsa_TrustAuthType AuthType;
lsa_DATA_BUF2 data;
} lsa_TrustDomainInfoBuffer;
@ -652,7 +659,11 @@ import "misc.idl", "security.idl";
);
/* Function: 0x1b */
[todo] NTSTATUS lsa_SetInformationTrustedDomain();
NTSTATUS lsa_SetInformationTrustedDomain(
[in] policy_handle *trustdom_handle,
[in] lsa_TrustDomInfoEnum level,
[in,switch_is(level)] lsa_TrustedDomainInfo *info
);
/* Function: 0x1c */
[public] NTSTATUS lsa_OpenSecret(
@ -770,7 +781,12 @@ import "misc.idl", "security.idl";
);
/* Function: 0x28 */
[todo] NTSTATUS lsa_SetTrustedDomainInfo();
NTSTATUS lsa_SetTrustedDomainInfo(
[in] policy_handle *handle,
[in] dom_sid2 *dom_sid,
[in] lsa_TrustDomInfoEnum level,
[in,switch_is(level)] lsa_TrustedDomainInfo *info
);
/* Function: 0x29 */
NTSTATUS lsa_DeleteTrustedDomain(
[in] policy_handle *handle,
@ -855,9 +871,15 @@ import "misc.idl", "security.idl";
[in] uint32 max_size
);
/* Function 0x33 */
[todo] NTSTATUS lsa_CreateTrustedDomainEx();
NTSTATUS lsa_CreateTrustedDomainEx(
[in] policy_handle *policy_handle,
[in] lsa_TrustDomainInfoInfoEx *info,
[in] lsa_TrustDomainInfoAuthInfo *auth_info,
[in] uint32 access_mask,
[out] policy_handle *trustdom_handle
);
/* Function 0x34 */
NTSTATUS lsa_CloseTrustedDomainEx(
@ -971,7 +993,13 @@ import "misc.idl", "security.idl";
);
/* Function 0x3b */
[todo] NTSTATUS lsa_CreateTrustedDomainEx2();
NTSTATUS lsa_CreateTrustedDomainEx2(
[in] policy_handle *policy_handle,
[in] lsa_TrustDomainInfoInfoEx *info,
[in] lsa_TrustDomainInfoAuthInfo *auth_info,
[in] uint32 access_mask,
[out] policy_handle *trustdom_handle
);
/* Function 0x3c */
[todo] NTSTATUS lsa_CREDRWRITE();