Lines Matching defs:sid

46  * Returns the number of bytes required to hold the sid.
49 sid_len(sid_t *sid)
51 if (sid == NULL)
55 + (sid->sid_subauthcnt * sizeof (uint32_t)));
62 * binary sid.
65 sid_tostr(sid_t *sid, char *strsid)
70 if (sid == NULL || strsid == NULL)
73 (void) sprintf(p, "S-%d-", sid->sid_revision);
78 if (sid->sid_authority[i] != 0 || i == NT_SID_AUTH_MAX - 1) {
79 (void) sprintf(p, "%d", sid->sid_authority[i]);
85 for (i = 0; i < sid->sid_subauthcnt && i < NT_SID_SUBAUTH_MAX; ++i) {
86 (void) sprintf(p, "-%u", sid->sid_subauth[i]);
109 sid_t *sid;
122 if ((sid = malloc(size)) == NULL)
125 bzero(sid, size);
126 sid->sid_revision = NT_SID_REVISION;
127 sid->sid_authority[5] = atoi(&sidstr[4]);
134 free(sid);
138 sid->sid_subauth[i] = strtoul(p, NULL, 10);
144 sid->sid_subauthcnt = i;
145 return (sid);
149 sid_free(sid_t *sid)
152 if (sid == NULL)
155 kmem_free(sid, sid_len(sid));
157 free(sid);
162 sid_to_le(sid_t *sid)
166 for (i = 0; i < sid->sid_subauthcnt && i < NT_SID_SUBAUTH_MAX; ++i) {
167 uint32_t v = sid->sid_subauth[i];
168 uint8_t *p = (uint8_t *)&sid->sid_subauth[i];
178 sid_from_le(sid_t *sid)
182 for (i = 0; i < sid->sid_subauthcnt && i < NT_SID_SUBAUTH_MAX; ++i) {
184 uint8_t *p = (uint8_t *)&sid->sid_subauth[i];
188 sid->sid_subauth[i] = v;
227 const char *sid)
231 p = strrchr(sid, '-');
233 str_limited_cpy(sidprefix, buflen, sid, p-sid);
247 is_sidstr(const char *sid)
249 const char * const sid0 = sid;
253 if (memcmp(sid, "S-1-", 4) != 0)
255 sid += 4;
258 if (!isdigit(*sid++))
260 while (isdigit(*sid))
261 sid++;
269 if (*sid++ != '-')
271 if (!isdigit(*sid++))
273 while (isdigit(*sid))
274 sid++;
275 } while (*sid != '\0');
278 if (sid - sid0 > SID_STRSZ)