Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CreateFromBinaryForm()

void System.Security.Principal.SecurityIdentifier.CreateFromBinaryForm ( byte[] binaryForm,
int offset )
inlineprivate

Definition at line 83 of file SecurityIdentifier.cs.

84 {
85 if (binaryForm == null)
86 {
87 throw new ArgumentNullException("binaryForm");
88 }
89 if (offset < 0)
90 {
91 throw new ArgumentOutOfRangeException("offset", offset, System.SR.ArgumentOutOfRange_NeedNonNegNum);
92 }
93 if (binaryForm.Length - offset < MinBinaryLength)
94 {
95 throw new ArgumentOutOfRangeException("binaryForm", System.SR.ArgumentOutOfRange_ArrayTooSmall);
96 }
97 if (binaryForm[offset] != Revision)
98 {
100 }
101 int num = binaryForm[offset + 1];
102 if (num > 15)
103 {
105 }
106 int num2 = 8 + 4 * num;
107 if (binaryForm.Length - offset < num2)
108 {
110 }
111 Span<int> span = stackalloc int[15];
112 IdentifierAuthority identifierAuthority = (IdentifierAuthority)(((ulong)binaryForm[offset + 2] << 40) + ((ulong)binaryForm[offset + 3] << 32) + ((ulong)binaryForm[offset + 4] << 24) + ((ulong)binaryForm[offset + 5] << 16) + ((ulong)binaryForm[offset + 6] << 8) + binaryForm[offset + 7]);
113 for (int i = 0; i < num; i++)
114 {
115 span[i] = binaryForm[offset + 8 + 4 * i] + (binaryForm[offset + 8 + 4 * i + 1] << 8) + (binaryForm[offset + 8 + 4 * i + 2] << 16) + (binaryForm[offset + 8 + 4 * i + 3] << 24);
116 }
117 CreateFromParts(identifierAuthority, span.Slice(0, num));
118 }
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string IdentityReference_InvalidNumberOfSubauthorities
Definition SR.cs:46
static string ArgumentOutOfRange_ArrayTooSmall
Definition SR.cs:74
static string ArgumentOutOfRange_NeedNonNegNum
Definition SR.cs:32
static string IdentityReference_InvalidSidRevision
Definition SR.cs:48
Definition SR.cs:7
void CreateFromParts(IdentifierAuthority identifierAuthority, ReadOnlySpan< int > subAuthorities)

References System.SR.ArgumentOutOfRange_ArrayTooSmall, System.SR.ArgumentOutOfRange_NeedNonNegNum, System.Security.Principal.SecurityIdentifier.CreateFromParts(), System.SR.Format(), System.Security.Principal.SecurityIdentifier.IdentifierAuthority, System.SR.IdentityReference_InvalidNumberOfSubauthorities, System.SR.IdentityReference_InvalidSidRevision, System.Security.Principal.SecurityIdentifier.MinBinaryLength, System.offset, System.Security.Principal.SecurityIdentifier.Revision, and System.Span< T >.Slice().

Referenced by System.Security.Principal.SecurityIdentifier.SecurityIdentifier(), System.Security.Principal.SecurityIdentifier.SecurityIdentifier(), and System.Security.Principal.SecurityIdentifier.SecurityIdentifier().