tcg

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 22, 2024 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IO_BUFFER_ALIGNMENT = 1024
	MAX_BUFFER_LENGTH   = 61440
	MIN_BUFFER_LENGTH   = 2048
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Discovery0BasicFeature

type Discovery0BasicFeature struct {
	FeatureCode FeatureCode `struc:"uint16,big"`
	VersionField
	//ReservedV   uint8  `struc:"uint8,big"`
	//Version     uint8  `struc:"uint8,big"`
	Length uint8 `struc:"uint8,big"`
}

type Discovery0DataStoreTableFeature

type Discovery0DataStoreTableFeature struct {
	FeatureCode uint16 `struc:"uint16,big"` // 0x0203
	VersionField
	Length             uint8  `struc:"uint8"`
	Reserved01         uint16 `struc:"uint16,big"`
	MaxTables          uint16 `struc:"uint16,big"`
	MaxSizeTables      uint32 `struc:"uint32,big"`
	TableSizeAlignment uint32 `struc:"uint32,big"`
}

Discovery0DataStoreTableFeature is the Discovery 0 - DataStore Table Feature https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage-Opal_Feature_Set-Additional_DataStore_Tables_v1_00_r1_00_Final.pdf 4.1.1

type Discovery0EnterpriseSSCFeature

type Discovery0EnterpriseSSCFeature struct {
	FeatureCode uint16 `struc:"uint16,big"` // 0x0100
	VersionField
	Length       uint8  `struc:"uint8"`
	BaseComID    uint16 `struc:"uint16,big"`
	NumberComIDs uint16 `struc:"uint16,big"`
	B08          uint8  `struc:"uint8"`
	Reserved02   uint8  `struc:"uint8"`
	Reserved03   uint16 `struc:"uint16,big"`
	Reserved04   uint32 `struc:"uint32,big"`
	Reserved05   uint32 `struc:"uint32,big"`
}

Discovery0EnterpriseSSCFeature is the Discovery 0 - Enterprise SSC Feature https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage-SSC_Enterprise-v1.01_r1.00.pdf 3.6.2.7

type Discovery0FeatureUnion

type Discovery0FeatureUnion struct {
	Buffer [16]byte
}

func (*Discovery0FeatureUnion) ToBasic

func (*Discovery0FeatureUnion) ToDataStoreTable

func (*Discovery0FeatureUnion) ToEnterpriseSSC

func (*Discovery0FeatureUnion) ToGeometry

func (*Discovery0FeatureUnion) ToLocking

func (*Discovery0FeatureUnion) ToOpalSscV100

func (*Discovery0FeatureUnion) ToOpalSscV200

func (*Discovery0FeatureUnion) ToSingleUserMode

func (*Discovery0FeatureUnion) ToTper

type Discovery0GeometryReportingFeature

type Discovery0GeometryReportingFeature struct {
	FeatureCode uint16 `struc:"uint16,big"`
	VersionField
	Length uint8 `struc:"uint8,big"`
	//uint8_t align: 1
	//uint8_t reserved01: 7
	B04                  uint8    `struc:"uint8,big"`
	Reserved02           [7]uint8 `struc:"[7]uint8,big"`
	LogicalBlockSize     uint32   `struc:"uint32,big"`
	AlignmentGranularity uint64   `struc:"uint64,big"`
	LowestAlignedLba     uint64   `struc:"uint64,big"`
}

Discovery0GeometryReportingFeature The Discovery 0 - Geometry Reporting Feature https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage-Opal_SSC_v2.01_rev1.00.pdf 3.1.1.4

type Discovery0Header

type Discovery0Header struct {
	Length     uint32   `struc:"uint32,big"` // the length of the header 48 in 2.00.100
	Revision   uint32   `struc:"uint32,big"` // revision of the header 1 in 2.00.100
	Reserved01 uint32   `struc:"uint32,big"`
	Reserved02 uint32   `struc:"uint32,big"`
	Reserved03 [16]byte `struc:"[16]byte"`
}

The Discovery 0 Header https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage-Opal_SSC_v2.01_rev1.00.pdf 3.1.1.1

type Discovery0LockingFeature

type Discovery0LockingFeature struct {
	FeatureCode uint16 `struc:"uint16,big"`
	VersionField
	Length uint8 `struc:"uint8,big"`
	//Reserved01       uint8  `struc:"uint8,big"`
	//Reserved02       uint8  `struc:"uint8,big"`
	//MBRDone          uint8  `struc:"uint8,big"`
	//MBREnabled       uint8  `struc:"uint8,big"`
	//MediaEncryption  uint8  `struc:"uint8,big"`
	//Locked           uint8  `struc:"uint8,big"`
	//LockingEnabled   uint8  `struc:"uint8,big"`
	//LockingSupported uint8  `struc:"uint8,big"`
	B04        uint8  `struc:"uint8,big"`
	Reserved03 uint32 `struc:"uint32,big"`
	Reserved04 uint32 `struc:"uint32,big"`
	Reserved05 uint32 `struc:"uint32,big"`
}

Discovery0LockingFeature The Discovery 0 - Locking Feature https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage-Opal_SSC_v2.01_rev1.00.pdf 3.1.1.3

type Discovery0OpalSSCFeatureV100

type Discovery0OpalSSCFeatureV100 struct {
	FeatureCode uint16 `struc:"uint16,big"` // 0x0200
	VersionField
	Length    uint8  `struc:"uint8"`
	BaseComID uint16 `struc:"uint16,big"`
	NumComIDs uint16 `struc:"uint16,big"`
}

Discovery0OpalSSCFeatureV100 is the Discovery 0 - Opal SSC Feature https://trustedcomputinggroup.org/wp-content/uploads/Opal_SSC_1.00_rev3.00-Final.pdf 3.1.1.4

type Discovery0OpalSSCFeatureV200

type Discovery0OpalSSCFeatureV200 struct {
	FeatureCode uint16 `struc:"uint16,big"` // 0x0203
	VersionField
	Length          uint8  `struc:"uint8"`
	BaseComID       uint16 `struc:"uint16,big"`
	NumComIDs       uint16 `struc:"uint16,big"`
	B08             uint8  `struc:"uint8"`
	NumLockingAdmin uint16 `struc:"uint16,big"`
	NumLockingUser  uint16 `struc:"uint16,big"`
	InitialPin      uint8  `struc:"uint8"`
	RevetedPin      uint8  `struc:"uint8"`
	Reserved02      uint8  `struc:"uint8"`
	Reserved03      uint32 `struc:"uint32,big"`
}

Discovery0OpalSSCFeatureV200 is the Discovery 0 - Opal SSC V2.00 Feature https://trustedcomputinggroup.org/wp-content/uploads/Opal_SSC_1.00_rev3.00-Final.pdf 3.1.1.4

type Discovery0SingleUserModeFeature

type Discovery0SingleUserModeFeature struct {
	FeatureCode uint16 `struc:"uint16,big"` // 0x0201
	VersionField
	Length           uint8  `struc:"uint8"`
	NumberLockingObj uint32 `struc:"uint32,big"`
	B08              uint8  `struc:"uint8"`
	Reserved02       uint8  `struc:"uint8"`
	Reserved03       uint16 `struc:"uint16,big"`
	Reserved04       uint32 `struc:"uint32,big"`
}

Discovery0SingleUserModeFeature is the Discovery 0 - Single User Mode Feature https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage-Opal_Feature_Set_Single_User_Mode_v1-00_r1-00-Final.pdf 4.2.1

type Discovery0TPerFeature

type Discovery0TPerFeature struct {
	FeatureCode uint16 `struc:"uint16,big"`
	VersionField
	Length uint8 `struc:"uint8,big"`
	//Reserved01       uint8  `struc:"uint8,big"`
	//ComIDManagement  uint8  `struc:"uint8,big"`
	//Reserved02       uint8  `struc:"uint8,big"`
	//Streaming        uint8  `struc:"uint8,big"`
	//BufferManagement uint8  `struc:"uint8,big"`
	//Acknack          uint8  `struc:"uint8,big"`
	//Async            uint8  `struc:"uint8,big"`
	//Sync             uint8  `struc:"uint8,big"`
	B04        uint8  `struc:"uint8,big"`
	Reserved03 uint32 `struc:"uint32,big"`
	Reserved04 uint32 `struc:"uint32,big"`
	Reserved05 uint32 `struc:"uint32,big"`
}

Discovery0TPerFeature The Discovery 0 - TPer Feature https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage-Opal_SSC_v2.01_rev1.00.pdf 3.1.1.2

type FeatureCode

type FeatureCode uint16
const (
	FcTPer              FeatureCode = 0x0001
	FcLocking           FeatureCode = 0x0002
	FcGeometryReporting FeatureCode = 0x0003
	FcEnterprise        FeatureCode = 0x0100
	FcDataStore         FeatureCode = 0x0202
	FcSingleUser        FeatureCode = 0x0201
	FcOpalSscV100       FeatureCode = 0x0200
	FcOpalSscV200       FeatureCode = 0x0203
)

type OpalComPacket

type OpalComPacket struct {
	Reserved0     uint32 `struc:"uint32,big"`
	ExtendedComID [4]byte
	Outstanding   uint32 `struc:"uint32,big"`
	MinTransfer   uint32 `struc:"uint32,big"`
	Length        uint32 `struc:"uint32,big"`
}

OpalComPacket is Reference: https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage_Opal_SSC_Application_Note_1-00_1-00-Final.pdf

type OpalDataSubPacket

type OpalDataSubPacket struct {
	Reserved00 [6]byte `struc:"[6]byte,big"`
	Kind       uint16  `struc:"uint16,big"`
	Length     uint32  `struc:"uint32,big"`
}

type OpalHeader

type OpalHeader struct {
	Cp     OpalComPacket
	Pkt    OpalPacket
	Subpkt OpalDataSubPacket
}

type OpalLockingState

type OpalLockingState int
const (
	READWRITE       OpalLockingState = 0x01
	READONLY        OpalLockingState = 0x02
	LOCKED          OpalLockingState = 0x03
	ARCHIVELOCKED   OpalLockingState = 0x04
	ARCHIVEUNLOCKED OpalLockingState = 0x05
)

type OpalMethod

type OpalMethod = [8]byte
var (
	PROPERTIES    OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01}
	STARTSESSION  OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x02}
	REVERT        OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x02}
	ACTIVATE      OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x02, 0x03}
	EGET          OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06}
	ESET          OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07}
	NEXT          OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08}
	EAUTHENTICATE OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0c}
	GETACL        OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0d}
	GENKEY        OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x10}
	REVERTSP      OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11}
	GET           OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x16}
	SET           OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x17}
	AUTHENTICATE  OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1c}
	RANDOM        OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x01}
	ERASE         OpalMethod = [8]byte{0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x08, 0x03}
)

type OpalPacket

type OpalPacket struct {
	Tsn        uint32 `struc:"uint32,big"`
	Hsn        uint32 `struc:"uint32,big"`
	SeqNumber  uint32 `struc:"uint32,big"`
	Reserved00 uint16 `struc:"uint16,big"`
	AckType    uint16 `struc:"uint16,big"`
	Ack        uint32 `struc:"uint32,big"`
	Length     uint32 `struc:"uint32,big"`
}

type OpalShortAtom

type OpalShortAtom int
const (
	UINT_3      OpalShortAtom = 0x83
	BYTESTRING4 OpalShortAtom = 0xa4
	BYTESTRING8 OpalShortAtom = 0xa8
)

type OpalStatusCode

type OpalStatusCode int
const (
	SUCCESS               OpalStatusCode = 0x00
	NOT_AUTHORIZED        OpalStatusCode = 0x01
	SP_BUSY               OpalStatusCode = 0x03
	SP_FAILED             OpalStatusCode = 0x04
	SP_DISABLED           OpalStatusCode = 0x05
	SP_FROZEN             OpalStatusCode = 0x06
	NO_SESSIONS_AVAILABLE OpalStatusCode = 0x07
	UNIQUENESS_CONFLICT   OpalStatusCode = 0x08
	INSUFFICIENT_SPACE    OpalStatusCode = 0x09
	INSUFFICIENT_ROWS     OpalStatusCode = 0x0A
	INVALID_FUNCTION      OpalStatusCode = 0x0B // defined in early specs, still used in some firmware
	INVALID_PARAMETER     OpalStatusCode = 0x0C
	INVALID_REFERENCE     OpalStatusCode = 0x0D
	TPER_MALFUNCTION      OpalStatusCode = 0x0F
	TRANSACTION_FAILURE   OpalStatusCode = 0x10
	RESPONSE_OVERFLOW     OpalStatusCode = 0x11
	AUTHORITY_LOCKED_OUT  OpalStatusCode = 0x12
	FAIL                  OpalStatusCode = 0x3F
)

type OpalTinyAtom

type OpalTinyAtom int
const (
	UINT_00 OpalTinyAtom = 0x00
	UINT_01 OpalTinyAtom = 0x01
	UINT_02 OpalTinyAtom = 0x02
	UINT_03 OpalTinyAtom = 0x03
	UINT_04 OpalTinyAtom = 0x04
	UINT_05 OpalTinyAtom = 0x05
	UINT_06 OpalTinyAtom = 0x06
	UINT_07 OpalTinyAtom = 0x07
	UINT_08 OpalTinyAtom = 0x08
	UINT_09 OpalTinyAtom = 0x09
	UINT_10 OpalTinyAtom = 0x0a
	UINT_11 OpalTinyAtom = 0x0b
	UINT_12 OpalTinyAtom = 0x0c
	UINT_13 OpalTinyAtom = 0x0d
	UINT_14 OpalTinyAtom = 0x0e
	UINT_15 OpalTinyAtom = 0x0f
)

type OpalToken

type OpalToken int

* Reference: https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage_Opal_SSC_Application_Note_1-00_1-00-Final.pdf

const (
	// Boolean
	OPAL_TRUE         OpalToken = 0x01
	OPAL_FALSE        OpalToken = 0x00
	OPAL_BOOLEAN_EXPR OpalToken = 0x03

	/**
	 * Opal: Cell Blocks
	 */
	TABLE       OpalToken = 0x00
	STARTROW    OpalToken = 0x01
	ENDROW      OpalToken = 0x02
	STARTCOLUMN OpalToken = 0x03
	ENDCOLUMN   OpalToken = 0x04
	VALUES      OpalToken = 0x01

	/*
	 * Opal: Credential Table Group
	 *
	 * Reference: https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage_Architecture_Core_Spec_v2.01_r1.00.pdf
	 * Table 181. C_PIN Table Description
	 * */
	CREDENTIAL_UID         OpalToken = 0x00
	CREDENTIAL_NAME        OpalToken = 0x01
	CREDENTIAL_COMMON_NAME OpalToken = 0x02
	CREDENTIAL_PIN         OpalToken = 0x03
	CREDENTIAL_CHAR_SET    OpalToken = 0x04
	CREDENTIAL_TRY_LIMIT   OpalToken = 0x05
	CREDENTIAL_TRIES       OpalToken = 0x06
	CREDENTIAL_PERSISTENCE OpalToken = 0x07

	/*
	 * Opal: Locking Table
	 *
	 * Reference: https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage_Architecture_Core_Spec_v2.01_r1.00.pdf
	 * Table 226. Locking Table Description
	 * */
	LOCKING_UID                OpalToken = 0x00
	LOCKING_NAME               OpalToken = 0x01
	LOCKING_COMMON_NAME        OpalToken = 0x02
	LOCKING_RANGE_START        OpalToken = 0x03
	LOCKING_RANGE_LENGTH       OpalToken = 0x04
	LOCKING_READ_LOCK_ENABLED  OpalToken = 0x05
	LOCKING_WRITE_LOCK_ENABLED OpalToken = 0x06
	LOCKING_READ_LOCKED        OpalToken = 0x07
	LOCKING_WRITE_LOCKED       OpalToken = 0x08
	LOCKING_LOCK_ON_RESET      OpalToken = 0x09
	LOCKING_ACTIVE_KEY         OpalToken = 0x0A
	LOCKING_NEXT_KEY           OpalToken = 0x0B
	LOCKING_GENERAL_STATUS     OpalToken = 0x13

	/*
	 * Opal: LockingInfo Table
	 *
	 * Reference: https://trustedcomputinggroup.org/wp-content/uploads/TCG_Storage_Architecture_Core_Spec_v2.01_r1.00.pdf
	 * Table 225. LockingInfo Table Description
	 * */
	LOCKINGINFO_UID             OpalToken = 0x00
	LOCKINGINFO_NAME            OpalToken = 0x01
	LOCKINGINFO_COMMON_NAME     OpalToken = 0x02
	LOCKINGINFO_ENCRYPT_SUPPORT OpalToken = 0x03
	LOCKINGINFO_MAXRANGES       OpalToken = 0x04

	/* mbr control */
	MBRENABLE OpalToken = 0x01
	MBRDONE   OpalToken = 0x02

	/* properties */
	HOSTPROPERTIES OpalToken = 0x00

	/* response tokenis() returned values */
	DTA_TOKENID_BYTESTRING OpalToken = 0xe0
	DTA_TOKENID_SINT       OpalToken = 0xe1
	DTA_TOKENID_UINT       OpalToken = 0xe2
	DTA_TOKENID_TOKEN      OpalToken = 0xe3 // actual token is returned

	STARTLIST       OpalToken = 0xf0
	ENDLIST         OpalToken = 0xf1
	STARTNAME       OpalToken = 0xf2
	ENDNAME         OpalToken = 0xf3
	CALL            OpalToken = 0xf8
	ENDOFDATA       OpalToken = 0xf9
	ENDOFSESSION    OpalToken = 0xfa
	STARTTRANSACTON OpalToken = 0xfb
	ENDTRANSACTON   OpalToken = 0xfc
	EMPTYATOM       OpalToken = 0xff
	WHERE           OpalToken = 0x00
)

type OpalUID

type OpalUID = [8]byte
var (
	SMUID_UID                  OpalUID = [8]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff}
	THISSP_UID                 OpalUID = [8]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}
	ADMINSP_UID                OpalUID = [8]byte{0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x01}
	LOCKINGSP_UID              OpalUID = [8]byte{0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x02}
	ENTERPRISE_LOCKINGSP_UID   OpalUID = [8]byte{0x00, 0x00, 0x02, 0x05, 0x00, 0x01, 0x00, 0x01}
	ANYBODY_UID                OpalUID = [8]byte{0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01}
	SID_UID                    OpalUID = [8]byte{0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06}
	ADMIN1_UID                 OpalUID = [8]byte{0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x01}
	USER1_UID                  OpalUID = [8]byte{0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x01}
	USER2_UID                  OpalUID = [8]byte{0x00, 0x00, 0x00, 0x09, 0x00, 0x03, 0x00, 0x02}
	PSID_UID                   OpalUID = [8]byte{0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0xff, 0x01}
	ENTERPRISE_BANDMASTER0_UID OpalUID = [8]byte{0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x80, 0x01}
	ENTERPRISE_ERASEMASTER_UID OpalUID = [8]byte{0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x84, 0x01}

	/* tables */
	LOCKINGRANGE_GLOBAL           OpalUID = [8]byte{0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x00, 0x01}
	LOCKINGRANGE_ACE_RDLOCKED     OpalUID = [8]byte{0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE0, 0x01}
	LOCKINGRANGE_ACE_WRLOCKED     OpalUID = [8]byte{0x00, 0x00, 0x00, 0x08, 0x00, 0x03, 0xE8, 0x01}
	MBRCONTROL                    OpalUID = [8]byte{0x00, 0x00, 0x08, 0x03, 0x00, 0x00, 0x00, 0x01}
	MBR                           OpalUID = [8]byte{0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00}
	AUTHORITY_TABLE               OpalUID = [8]byte{0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00}
	C_PIN_TABLE                   OpalUID = [8]byte{0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00}
	LOCKING_INFO_TABLE            OpalUID = [8]byte{0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x01}
	ENTERPRISE_LOCKING_INFO_TABLE OpalUID = [8]byte{0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00}

	/* C_PIN_TABLE object ID's */
	C_PIN_MSID   OpalUID = [8]byte{0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x84, 0x02}
	C_PIN_SID    OpalUID = [8]byte{0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01}
	C_PIN_ADMIN1 OpalUID = [8]byte{0x00, 0x00, 0x00, 0x0B, 0x00, 0x01, 0x00, 0x01}

	/* half UID's (only first 4 bytes used) */
	HALF_UID_AUTHORITY_OBJ_REF OpalUID = [8]byte{0x00, 0x00, 0x0C, 0x05, 0xff, 0xff, 0xff, 0xff}
	HALF_UID_BOOLEAN_ACE       OpalUID = [8]byte{0x00, 0x00, 0x04, 0x0E, 0xff, 0xff, 0xff, 0xff}

	/* special value for omitted optional parameter */
	UID_HEXFF OpalUID = [8]byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
)

type VersionField

type VersionField struct {
	B02 uint8 `struc:"uint8,big"`
}

func (*VersionField) GetVersion

func (f *VersionField) GetVersion() uint8

func (*VersionField) SetVersion

func (f *VersionField) SetVersion(version uint8)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL