package mstypesimport ()// RPCSID implements https://msdn.microsoft.com/en-us/library/cc230364.aspxtypeRPCSIDstruct { Revision uint8// An 8-bit unsigned integer that specifies the revision level of the SID. This value MUST be set to 0x01. SubAuthorityCount uint8// An 8-bit unsigned integer that specifies the number of elements in the SubAuthority array. The maximum number of elements allowed is 15. IdentifierAuthority [6]byte// An RPC_SID_IDENTIFIER_AUTHORITY structure that indicates the authority under which the SID was created. It describes the entity that created the SID. The Identifier Authority value {0,0,0,0,0,5} denotes SIDs created by the NT SID authority. SubAuthority []uint32`ndr:"conformant"`// A variable length array of unsigned 32-bit integers that uniquely identifies a principal relative to the IdentifierAuthority. Its length is determined by SubAuthorityCount.}// String returns the string representation of the RPC_SID.func ( *RPCSID) () string {varstrings.Builder .WriteString("S-1-") := append(make([]byte, 2, 2), .IdentifierAuthority[:]...)// For a strange reason this is read big endian: https://msdn.microsoft.com/en-us/library/dd302645.aspx := binary.BigEndian.Uint64()if > math.MaxUint32 {fmt.Fprintf(&, "0x%s", hex.EncodeToString(.IdentifierAuthority[:])) } else {fmt.Fprintf(&, "%d", ) }for , := range .SubAuthority {fmt.Fprintf(&, "-%d", ) }return .String()}
The pages are generated with Goldsv0.6.7. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds.