Documentation ¶
Overview ¶
Package guid provides a GUID type. The backing structure for a GUID is identical to that used by the golang.org/x/sys/windows GUID type. There are two main binary encodings used for a GUID, the big-endian encoding, and the Windows (mixed-endian) encoding. See here for details: https://en.wikipedia.org/wiki/Universally_unique_identifier#Encoding
Code mostly taken from https://github.com/Velocidex/velociraptor/blob/eced6fc858e659281d80749661340ba42e8e099e/vql/parsers/ese/sid.go
Index ¶
- Constants
- func FormatSID(hexencoded string) string
- func FormatUtf16String(hexencoded string) string
- func ParseArray_uint32(reader io.ReaderAt, offset int64, count int) []uint32
- func ParseUint16(reader io.ReaderAt, offset int64) uint16
- func ParseUint32(reader io.ReaderAt, offset int64) uint32
- func ParseUint8(reader io.ReaderAt, offset int64) byte
- func UTF16BytesToUTF8(b []byte, o binary.ByteOrder) string
- type BufferReaderAt
- type GUID
- type SID
- type Variant
- type Version
Constants ¶
const ( // RevisionLevelOffset int64 = 0 SubAuthorityCountOffset int64 = 1 AuthorityOffset int64 = 2 Authority2Offset int64 = 4 )
Variables ¶
This section is empty.
Functions ¶
func FormatUtf16String ¶
func ParseArray_uint32 ¶
Types ¶
type BufferReaderAt ¶
type BufferReaderAt struct {
Buffer []byte
}
type GUID ¶
func FromString ¶
FromString parses a string containing a GUID and returns the GUID. The only format currently supported is the `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` format.
func FromWindowsArray ¶
FromWindowsArray constructs a GUID from a Windows encoding array of bytes.
func NewV5 ¶
NewV5 returns a new version 5 (generated from a string via SHA-1 hashing) GUID, as defined by RFC 4122. The RFC is unclear on the encoding of the name, and the sample code treats it as a series of bytes, so we do the same here.
Some implementations, such as those found on Windows, treat the name as a big-endian UTF16 stream of bytes. If that is desired, the string can be encoded as such before being passed to this function.
func (GUID) MarshalText ¶
MarshalText returns the textual representation of the GUID.
func (GUID) ToArray ¶
ToArray returns an array of 16 bytes representing the GUID in big-endian encoding.
func (GUID) ToWindowsArray ¶
ToWindowsArray returns an array of 16 bytes representing the GUID in Windows encoding.
func (*GUID) UnmarshalText ¶
UnmarshalText takes the textual representation of a GUID, and unmarhals it into this GUID.
type Variant ¶
type Variant uint8
Variant specifies which GUID variant (or "type") of the GUID. It determines how the entirety of the rest of the GUID is interpreted.
const ( // VariantUnknown specifies a GUID variant which does not conform to one of // the variant encodings specified in RFC 4122. VariantUnknown Variant = iota VariantNCS VariantRFC4122 // RFC 4122 VariantMicrosoft VariantFuture )
The variants specified by RFC 4122 section 4.1.1.