Lines Matching refs:sid
47 smb_sid_isvalid(smb_sid_t *sid) in smb_sid_isvalid() argument
49 if (sid == NULL) in smb_sid_isvalid()
52 return ((sid->sid_revision == NT_SID_REVISION) && in smb_sid_isvalid()
53 (sid->sid_subauthcnt < NT_SID_SUBAUTH_MAX)); in smb_sid_isvalid()
62 smb_sid_len(smb_sid_t *sid) in smb_sid_len() argument
64 if (sid == NULL) in smb_sid_len()
68 + (sid->sid_subauthcnt * sizeof (uint32_t))); in smb_sid_len()
79 smb_sid_dup(smb_sid_t *sid) in smb_sid_dup() argument
84 if (sid == NULL) in smb_sid_dup()
87 size = smb_sid_len(sid); in smb_sid_dup()
91 bcopy(sid, new_sid, size); in smb_sid_dup()
106 smb_sid_t *sid; in smb_sid_splice() local
113 if ((sid = smb_sid_alloc(size + sizeof (rid))) == NULL) in smb_sid_splice()
116 bcopy(domain_sid, sid, size); in smb_sid_splice()
118 sid->sid_subauth[domain_sid->sid_subauthcnt] = rid; in smb_sid_splice()
119 ++sid->sid_subauthcnt; in smb_sid_splice()
121 return (sid); in smb_sid_splice()
132 smb_sid_getrid(smb_sid_t *sid, uint32_t *rid) in smb_sid_getrid() argument
134 if (!smb_sid_isvalid(sid) || (rid == NULL) || in smb_sid_getrid()
135 (sid->sid_subauthcnt == 0)) in smb_sid_getrid()
138 *rid = sid->sid_subauth[sid->sid_subauthcnt - 1]; in smb_sid_getrid()
151 smb_sid_split(smb_sid_t *sid, uint32_t *rid) in smb_sid_split() argument
156 if (!smb_sid_isvalid(sid) || (sid->sid_subauthcnt == 0)) in smb_sid_split()
160 size = smb_sid_len(sid) - sizeof (uint32_t); in smb_sid_split()
164 bcopy(sid, domsid, size); in smb_sid_split()
165 domsid->sid_subauthcnt = sid->sid_subauthcnt - 1; in smb_sid_split()
242 smb_sid_indomain(smb_sid_t *domain_sid, smb_sid_t *sid) in smb_sid_indomain() argument
246 if (sid == NULL || domain_sid == NULL) in smb_sid_indomain()
249 if (domain_sid->sid_revision != sid->sid_revision || in smb_sid_indomain()
250 sid->sid_subauthcnt < domain_sid->sid_subauthcnt) in smb_sid_indomain()
254 if (domain_sid->sid_subauth[i] != sid->sid_subauth[i]) in smb_sid_indomain()
257 if (bcmp(&domain_sid->sid_authority, &sid->sid_authority, in smb_sid_indomain()
271 smb_sid_tostr(const smb_sid_t *sid, char *strsid) in smb_sid_tostr() argument
276 if (sid == NULL || strsid == NULL) in smb_sid_tostr()
279 (void) sprintf(p, "S-%d-", sid->sid_revision); in smb_sid_tostr()
284 if (sid->sid_authority[i] != 0 || i == NT_SID_AUTH_MAX - 1) { in smb_sid_tostr()
285 (void) sprintf(p, "%d", sid->sid_authority[i]); in smb_sid_tostr()
291 for (i = 0; i < sid->sid_subauthcnt && i < NT_SID_SUBAUTH_MAX; ++i) { in smb_sid_tostr()
292 (void) sprintf(p, "-%u", sid->sid_subauth[i]); in smb_sid_tostr()
316 smb_sid_t *sid; in smb_sid_fromstr() local
330 sid = kmem_zalloc(size, KM_SLEEP); in smb_sid_fromstr()
332 sid->sid_revision = NT_SID_REVISION; in smb_sid_fromstr()
335 sid->sid_authority[5] = (uint8_t)sua; in smb_sid_fromstr()
342 kmem_free(sid, size); in smb_sid_fromstr()
348 sid->sid_subauth[i] = (uint32_t)sua; in smb_sid_fromstr()
354 sid->sid_subauthcnt = i; in smb_sid_fromstr()
355 retsid = smb_sid_dup(sid); in smb_sid_fromstr()
356 kmem_free(sid, size); in smb_sid_fromstr()
364 smb_sid_t *sid; in smb_sid_fromstr() local
377 if ((sid = malloc(size)) == NULL) in smb_sid_fromstr()
380 bzero(sid, size); in smb_sid_fromstr()
381 sid->sid_revision = NT_SID_REVISION; in smb_sid_fromstr()
382 sid->sid_authority[5] = atoi(&sidstr[4]); in smb_sid_fromstr()
389 free(sid); in smb_sid_fromstr()
393 sid->sid_subauth[i] = strtoul(p, NULL, 10); in smb_sid_fromstr()
399 sid->sid_subauthcnt = i; in smb_sid_fromstr()
400 return (sid); in smb_sid_fromstr()
437 smb_sid_t *sid; in smb_sid_alloc() local
439 sid = kmem_alloc(size, KM_SLEEP); in smb_sid_alloc()
441 sid = malloc(size); in smb_sid_alloc()
443 return (sid); in smb_sid_alloc()
447 smb_sid_free(smb_sid_t *sid) in smb_sid_free() argument
450 if (sid == NULL) in smb_sid_free()
453 kmem_free(sid, smb_sid_len(sid)); in smb_sid_free()
455 free(sid); in smb_sid_free()