24
24
#include "includes.h"
25
25
#include "librpc/gen_ndr/ndr_security.h"
26
#if _SAMBA_BUILD_ == 4
27
#include "libcli/security/security.h"
26
#include "../libcli/security/security.h"
31
29
return the wire size of a security_ace
33
size_t ndr_size_security_ace(const struct security_ace *ace, struct smb_iconv_convenience *ic, int flags)
31
size_t ndr_size_security_ace(const struct security_ace *ace, int flags)
37
35
if (!ace) return 0;
39
ret = 8 + ndr_size_dom_sid(&ace->trustee, ic, flags);
37
ret = 8 + ndr_size_dom_sid(&ace->trustee, flags);
41
39
switch (ace->type) {
42
40
case SEC_ACE_TYPE_ACCESS_ALLOWED_OBJECT:
92
90
return the wire size of a security_acl
94
size_t ndr_size_security_acl(const struct security_acl *theacl, struct smb_iconv_convenience *ic, int flags)
92
size_t ndr_size_security_acl(const struct security_acl *theacl, int flags)
98
96
if (!theacl) return 0;
100
98
for (i=0;i<theacl->num_aces;i++) {
101
ret += ndr_size_security_ace(&theacl->aces[i], ic, flags);
99
ret += ndr_size_security_ace(&theacl->aces[i], flags);
107
105
return the wire size of a security descriptor
109
size_t ndr_size_security_descriptor(const struct security_descriptor *sd, struct smb_iconv_convenience *ic, int flags)
107
size_t ndr_size_security_descriptor(const struct security_descriptor *sd, int flags)
112
110
if (!sd) return 0;
115
ret += ndr_size_dom_sid(sd->owner_sid, ic, flags);
116
ret += ndr_size_dom_sid(sd->group_sid, ic, flags);
117
ret += ndr_size_security_acl(sd->dacl, ic, flags);
118
ret += ndr_size_security_acl(sd->sacl, ic, flags);
113
ret += ndr_size_dom_sid(sd->owner_sid, flags);
114
ret += ndr_size_dom_sid(sd->group_sid, flags);
115
ret += ndr_size_security_acl(sd->dacl, flags);
116
ret += ndr_size_security_acl(sd->sacl, flags);
123
121
return the wire size of a dom_sid
125
size_t ndr_size_dom_sid(const struct dom_sid *sid, struct smb_iconv_convenience *ic, int flags)
123
size_t ndr_size_dom_sid(const struct dom_sid *sid, int flags)
127
125
if (!sid) return 0;
128
126
return 8 + 4*sid->num_auths;