S
P
E
C
I
F
I
C
A
T
I
O
N

TCG Storage Security
Subsystem Class:
Opal
Version 2.02
Revision 1.0
Jan 24, 2022

Contact: admin@trustedcomputinggroup.org

PUBLISHEDTCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published© TCG 2022

TCG Storage Security Subsystem Class: OpalDISCLAIMERS, NOTICES, AND LICENSE TERMS
THIS SPECIFICATION IS PROVIDED “AS IS” WITH NO WARRANTIES WHATSOEVER, INCLUDING ANYWARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR ANY PARTICULAR PURPOSE, OR
ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION OR SAMPLE.
Without limitation, TCG disclaims all liability, including liability for infringement of any proprietary rights, relating to useof information in this specification and to the implementation of this specification, and TCG disclaims all liability forcost of procurement of substitute goods or services, lost profits, loss of use, loss of data or any incidental,
consequential, direct, indirect, or special damages, whether under contract, tort, warranty or otherwise, arising in any
way out of use or reliance upon this specification or any information herein.
This document is copyrighted by Trusted Computing Group (TCG), and no license, express or implied, is granted
herein other than as follows: You may not copy or reproduce the document or distribute it to others without written
permission from TCG, except that you may freely do so for the purposes of (a) examining or implementing TCG
specifications or (b) developing, testing, or promoting information technology standards and best practices, so longas you distribute the document with these disclaimers, notices, and license terms.
Contact the Trusted Computing Group at www.trustedcomputinggroup.org for information on specification licensing
through membership agreements.
Any marks and brands contained herein are the property of their respective owners.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 1© TCG 2022

TCG Storage Security Subsystem Class: Opal

CONTENTSDISCLAIMERS, NOTICES, AND LICENSE TERMS ................................................................................................... 1
TABLES....................................................................................................................................................................... 5
1

Introduction .......................................................................................................................................................... 6
1.1 Document Purpose ...................................................................................................................................... 6
1.2 Scope and Intended Audience ..................................................................................................................... 6
1.3 Key Words ................................................................................................................................................... 6
1.3.1 Fonts ................................................................................................................................................... 6
1.4 Statement Type ............................................................................................................................................ 6
1.5 Document References ................................................................................................................................. 7
1.6 Document Precedence ................................................................................................................................. 7
1.7 Opal SSC Terminology ................................................................................................................................ 7
1.8 Legend ......................................................................................................................................................... 8

2

Opal SSC Overview ............................................................................................................................................. 9
2.1 Opal SSC Use Cases and Threats............................................................................................................... 9
2.2 Security Providers (SPs) .............................................................................................................................. 9
2.3 Interface Communication Protocol ............................................................................................................... 9
2.4 Cryptographic Features ................................................................................................................................ 9
2.5 Authentication .............................................................................................................................................. 9
2.6 Table Management .................................................................................................................................... 10
2.7 Access Control & Personalization .............................................................................................................. 10
2.8 Issuance ..................................................................................................................................................... 10
2.9 SSC Discovery ........................................................................................................................................... 10
2.10

3

Mandatory Feature Sets ....................................................................................................... 10

Opal SSC Features ............................................................................................................................................ 11
3.1 Security Protocol 1 Support ....................................................................................................................... 11
3.1.1 Level 0 Discovery (M) ....................................................................................................................... 11
3.2 Security Protocol 2 Support ....................................................................................................................... 22
3.2.1 ComID Management ......................................................................................................................... 22
3.2.2 Stack Protocol Reset (M) .................................................................................................................. 22
3.2.3 TPER_RESET command (M) ........................................................................................................... 22
3.3 Communications ........................................................................................................................................ 23
3.3.1 Communication Properties ................................................................................................................ 23
3.3.2 Supported Security Protocols............................................................................................................ 23
3.3.3 ComIDs ............................................................................................................................................. 23
3.3.4 Synchronous Protocol ....................................................................................................................... 24

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 2© TCG 2022

TCG Storage Security Subsystem Class: Opal

3.3.5 Storage Device Resets ..................................................................................................................... 25
3.3.6 Protocol Stack Reset Commands (M) ............................................................................................... 26
4

Opal SSC-compliant Functions and SPs ........................................................................................................... 27
4.1 Session Manager ....................................................................................................................................... 27
4.1.1 Methods ............................................................................................................................................ 27
4.2 Admin SP ................................................................................................................................................... 28
4.2.1 Base Template Tables ...................................................................................................................... 29
4.2.2 Base Template Methods ................................................................................................................... 41
4.2.3 Admin Template Tables .................................................................................................................... 41
4.2.4 Admin Template Methods ................................................................................................................. 43
4.2.5 Opal Additional Column Types.......................................................................................................... 43
4.2.6 Opal Additional Data Structures ........................................................................................................ 43
4.2.7 Opal Additional Tables ...................................................................................................................... 44
4.2.8 Crypto Template Tables .................................................................................................................... 44
4.2.9 Crypto Template Methods ................................................................................................................. 44
4.3 Locking SP ................................................................................................................................................. 44
4.3.1 Base Template Tables ...................................................................................................................... 44
4.3.2 Base Template Methods ................................................................................................................... 76
4.3.3 Crypto Template Tables .................................................................................................................... 76
4.3.4 Crypto Template Methods ................................................................................................................. 76
4.3.5 Locking Template Tables .................................................................................................................. 76
4.3.6 Locking Template Methods ............................................................................................................... 81
4.3.7 SD Read/Write Data Command Locking Behavior Interactions with Range Crossing ...................... 81
4.3.8 Non Template Tables ........................................................................................................................ 81

5

Appendix – SSC Specific Features .................................................................................................................... 82
5.1 Opal SSC-Specific Methods ....................................................................................................................... 82
5.1.1 Activate – Admin Template SP Object Method ................................................................................. 82
5.1.2 Revert – Admin Template SP Object Method ................................................................................... 82
5.1.3 RevertSP – Base Template SP Method ............................................................................................ 84
5.2 Life Cycle ................................................................................................................................................... 86
5.2.1 Issued vs. Manufactured SPs ........................................................................................................... 86
5.2.2 Manufactured SP Life Cycle States .................................................................................................. 86
5.2.3 Type Table Modification .................................................................................................................... 88
5.3 Byte Table Access Granularity ................................................................................................................... 89
5.3.1 Table Table Modification ................................................................................................................... 89
5.4 Examples of Alignment Geometry Reporting ............................................................................................. 91

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 3© TCG 2022

TCG Storage Security Subsystem Class: Opal

TABLES
Table 1 Opal SSC Terminology .............................................................................................................................................. 7
Table 2 SP Tables Legend...................................................................................................................................................... 8
Table 3 Level 0 Discovery Header ........................................................................................................................................ 11
Table 4 Level 0 Discovery - TPer Feature Descriptor ........................................................................................................... 12
Table 5 Level 0 Discovery - Locking Feature Descriptor ...................................................................................................... 13
Table 6 Level 0 Discovery - Geometry Reporting Feature Descriptor .................................................................................. 14
Table 7 Level 0 Discovery - Opal SSC V2 Feature Descriptor ............................................................................................. 16
Table 8 - SSC Minor Versions............................................................................................................................................... 17
Table 9 Level 0 Discovery – Supported Data Removal Mechanism Feature Descriptor...................................................... 18
Table 10 Parameter explanation ........................................................................................................................................... 19
Table 11 Supported Data Removal Mechanism ................................................................................................................... 21
Table 12 Data Removal Time (Data Removal Time Format bit= 0) ..................................................................................... 22
Table 13 Data Removal Time (Data Removal Time Format bit= 1) ..................................................................................... 22
Table 14 TPER_RESET Command ...................................................................................................................................... 23
Table 15 ComID Assignments .............................................................................................................................................. 24
Table 16 Supported Tokens .................................................................................................................................................. 24
Table 17 reset_types ............................................................................................................................................................. 26
Table 18 Properties Requirements ....................................................................................................................................... 27
Table 19 Admin SP - SPInfo Table Preconfiguration ............................................................................................................ 29
Table 20 Admin SP - SPTemplates Table Preconfiguration ................................................................................................. 29
Table 21 Admin SP - Table Table Preconfiguration.............................................................................................................. 29
Table 22 Admin SP - MethodID Table Preconfiguration ....................................................................................................... 31
Table 23 Admin SP - AccessControl Table Preconfiguration ............................................................................................... 32
Table 24 Admin SP - ACE Table Preconfiguration ............................................................................................................... 39
Table 25 Admin SP - Authority Table Preconfiguration ........................................................................................................ 40
Table 26 Admin SP - C_PIN Table Preconfiguration ............................................................................................................ 40
Table 27 Admin SP – TPerInfo Columns .............................................................................................................................. 41
Table 28 Admin SP - TPerInfo Table Preconfiguration ......................................................................................................... 42
Table 29 Admin SP - Template Table Preconfiguration ....................................................................................................... 42
Table 30 Admin SP - SP Table Preconfiguration .................................................................................................................. 42
Table 31 data_removal_mechanism Type Table Addition .................................................................................................... 43
Table 32 data_removal_mechanism Enumeration Values ................................................................................................... 43
Table 33 DataRemovalMechansim Table Description .......................................................................................................... 43
Table 34 Admin SP – DataRemovalMechansim Table Preconfiguration ............................................................................. 44
Table 35 Locking SP - SPInfo Table Preconfiguration ......................................................................................................... 44
Table 36 Locking SP - SPTemplates Table Preconfiguration............................................................................................... 45
Table 37 Locking SP - Table Table Preconfiguration ........................................................................................................... 45
Table 38 Locking SP - MethodID Table Preconfiguration ..................................................................................................... 46
Table 39 Locking SP - AccessControl Table Preconfiguration ............................................................................................. 48
Table 40 Locking SP - ACE Table Preconfiguration ............................................................................................................. 70
Table 41 Locking SP - Authority Table Preconfiguration ...................................................................................................... 74
Table 42 Locking SP - C_PIN Table Preconfiguration .......................................................................................................... 75
Table 43 Locking SP - SecretProtect Table Preconfiguration .............................................................................................. 76
Table 44 Locking SP – LockingInfo Columns ....................................................................................................................... 77
Table 45 Locking SP - LockingInfo Table Preconfiguration .................................................................................................. 77
Table 46 Locking SP - Locking Table Preconfiguration ........................................................................................................ 78
Table 47 Locking SP - MBRControl Table Preconfiguration................................................................................................. 80
Table 48 Locking SP - K_AES_128 Table Preconfiguration................................................................................................. 80
Table 49 Locking SP - K_AES_256 Table Preconfiguration................................................................................................. 81
Table 50 LifeCycle Type Table Modification ......................................................................................................................... 88
Table 51 Table Table Additional Columns ............................................................................................................................ 89

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 5© TCG 2022

TCG Storage Security Subsystem Class: Opal

1 Introduction
1.1 Document Purpose
Storage Workgroup specifications provide a comprehensive architecture for putting Storage Devices under policy
control as determined by the trusted platform host, the capabilities of the Storage Device to conform to the policies of
the trusted platform, and the lifecycle state of the Storage Device as a Trusted Peripheral.

1.2 Scope and Intended Audience
This specification defines the Opal Security Subsystem Class (SSC). Any SD that claims Opal SSC compatibility
SHALL conform to this specification.
The intended audience for this specification is both trusted Storage Device manufacturers and developers that want
to use these Storage Devices in their systems.

1.3 Key Words
Key words are used to signify SSC requirements.
The Key Words “SHALL”, “SHALL NOT”, “SHOULD,” and “MAY” are used in this document. These words are asubset of the RFC 2119 key words used by TCG, and have been chosen since they map to key words used in T10/T13
specifications. These key words are to be interpreted as described in [1].
In addition to the above key words, the following are also used in this document to describe the requirements ofparticular features, including tables, methods, and usages thereof.
•
•
•
•
1.3.1

Mandatory (M): When a feature is Mandatory, the feature SHALL be implemented. A Compliance test
SHALL validate that the feature is operational.
Optional (O): When a feature is Optional, the feature MAY be implemented. If implemented, a Compliancetest SHALL validate that the feature is operational.
Excluded (X): When a feature is Excluded, the feature SHALL NOT be implemented. A Compliance test
SHALL validate that the feature is not operational.
Not Required (N) When a feature is Not Required, the feature MAY be implemented. No Compliance test isrequired.

Fonts
Names of methods and SP tables are in Courier New font (e.g., the Set method, the Locking table). This
convention does not apply to method and table names appearing in headings or captions.

1.4 Statement Type
Please note a very important distinction between different sections of text throughout this document. There are two
distinctive kinds of text: informative comment and normative statements. Because most of the text in this specification
will be of the kind normative statements, the authors have informally defined it as the default and, as such, havespecifically called out text of the kind informative comment. They have done this by flagging the beginning and end ofeach informative comment and highlighting its text in gray. This means that unless text is specifically marked as of
the kind informative comment, it can be considered a kind of normative statements.

EXAMPLE: Start of Informative Comment
This is the first paragraph of 1–n paragraphs containing text of the kind informative comment ...
This is the second paragraph of text of the kind informative comment ...
This is the nth paragraph of text of the kind informative comment ...

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 6© TCG 2022

TCG Storage Security Subsystem Class: Opal

To understand the TCG specification the user must read the specification. (This use of MUST does not require any
action).
End of Informative Comment

1.5 Document References[1]. IETF RFC 2119, 1997, “Key words for use in RFCs to Indicate Requirement Levels”[2]. Trusted Computing Group (TCG), “TCG Storage Architecture Core Specification”, Version 2.01
[3]. NIST, FIPS-197, 2001, “Advanced Encryption Standard (AES)”[4]. Trusted Computing Group (TCG), “TCG Storage Interface Interactions Specification“, Version 1.09
[5]. Trusted Computing Group (TCG), “TCG Storage Security Subsystem Class: Opal”, Versions 1.00, 2.00
[6]. Trusted Computing Group (TCG), “TCG Storage Opal SSC Feature Set: Additional DataStore Tables”, Version 1.00
[7]. Trusted Computing Group (TCG), “TCG Storage Opal SSC Feature Set: PSID”, Version 1.00
[8]. Trusted Computing Group (TCG), “TCG Storage Feature Set: Block SID Authentication”, Version 1.00

1.6 Document Precedence
In the event of conflicting information in this specification and other documents, the precedence for requirements is:
1. This specification
2. Storage Interface Interactions Specification [4]3. TCG Storage Architecture Core Specification [2]1.7 Opal SSC Terminology
Table 1 provides special definitions that are not defined in [2].
Table 1 Opal SSC Terminology

TermDefinition

SD

Storage Device

SP

Security Provider

TPer

Trusted Peripheral

Manufactured SP

A Manufactured SP is an SP that was created and preconfigured
during the SD manufacturing process

N/A
Original Factory State(OFS)

Not Applicable.
The original state of an SP when it was created in manufacturing,
including its table data, access control settings, and life cycle
state. Each Manufactured SP has its own Original Factory State.
Original Factory State applies to Manufactured SPs only.

Vendor Unique (VU)

These values are unique to each SD manufacturer. Typically VU
is used in table cells.

Preconfiguration Data

The default data in the OFS.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 7© TCG 2022

TCG Storage Security Subsystem Class: Opal

Term

Definition

MM MM

The LSBs of a User Authority object’s UID (hexadecimal) as wellas the corresponding C_PIN credential object’s UID(hexadecimal)

NN NN

The LSBs of a Locking object’s UID (hexadecimal) as well as thecorresponding K_AES_128/K_AES_256 object’s UID(hexadecimal)

XX XX

The LSBs of an Admin Authority object’s UID (hexadecimal) as
well as the corresponding C_PIN credential object’s UID(hexadecimal)

1.8 Legend
The legends in Table 2 define SP table cell color coding. This color coding is informative only. The table cell content
is normative.
Table 2 SP Tables Legend

Table
Cell
LegendR-W

Value

Access Control

Arial-Narrow

Readonly

Opal SSC specified

Fixed

Arial Narrowbold-underReadonly

Arial-Narrow

Not
Defined

VU

(N)

Fixed

Not DefinedComment
•
•
•
•
•
•
•
•
•
•

Arial Narrowbold-under

Arial-Narrow

Write

Preconfigured,user (i.e. host)personalizable

Write

Preconfigured,user (i.e. host)personalizable

Preconfigured,user (i.e. host)personalizable

•
•
•

Fixed

•
•
•

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Cell content is Read-Only.
Access control is fixed.
Value is specified by the Opal
SSC
Cell content is Read-Only.
Access Control is fixed.
Values are Vendor Unique (VU).
A minimum or maximum value
may be specified.
Cell content is (N).
Access control is not defined.
Any text in table cell isinformative only.
A Get MAY omit this column
from the method response.
Cell content is writable.
Access control is personalizable
Get Access Control is notdescribed by this color coding
Cell content is writable.
Access control is fixed.
Get Access Control is notdescribed by this color coding

Page 8© TCG 2022

TCG Storage Security Subsystem Class: Opal

2 Opal SSC Overview
2.1 Opal SSC Use Cases and Threats
Start of Informative Comment
The Opal SSC is an implementation profile for Storage Devices built to:••Protect the confidentiality of stored user data against unauthorized access once it leaves the owner’s control(following a power cycle and subsequent deauthentication)
Enable interoperability between multiple SD vendors

An Opal SSC compliant SD:•••

Facilitates feature discoverability
Provides some user definable features (e.g. access control, locking ranges, user passwords, etc.)
Supports Opal SSC unique behaviors (e.g. communication, table management)This specification addresses a limited set of use cases. They are:•Deploy Storage Device & Take Ownership: the Storage Device is integrated into its target system and ownershiptransferred by setting or changing the Storage Device’s owner credential.
•
Activate or Enroll Storage Device: LBA ranges are configured and data encryption and access control credentials(re)generated and/or set on the Storage Device. Access control is configured for LBA range unlocking.
•Lock & Unlock Storage Device: unlocking of one or more LBA ranges by the host and locking of those ranges
under host control via either an explicit lock or implicit lock triggered by a reset event. MBR shadowing provides
a mechanism to boot into a secure pre-boot authentication environment to handle device unlocking.
•
Repurpose & End-of-Life: erasure of data within one or more LBA ranges and reset of locking credential(s) for
Storage Device repurposing or decommissioning.
End of Informative Comment

2.2 Security Providers (SPs)
An Opal SSC compliant SD SHALL support at least two Security Providers (SPs):
1) Admin SP
2) Locking SP
The Locking SP MAY be created by the SD manufacturer.

2.3 Interface Communication Protocol
An Opal SSC compliant SD SHALL implement the synchronous communications protocol as defined in Section 3.3.4.
This communication protocol operates based upon configuration information defined by:1) the values reported via Level 0 Discovery (see section 3.1.1);

The combination of the host's communication properties and the TPer's communication properties (see section
4.1.1.1).

2.4 Cryptographic Features
An Opal SSC compliant SD SHALL implement Full Disk Encryption for all host accessible user data stored on
media. AES-128 or AES-256 SHALL be supported (see [3]).

2.5 Authentication
An Opal SSC compliant SD SHALL support password authorities and authentication.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 9© TCG 2022

TCG Storage Security Subsystem Class: Opal

2.6 Table Management
This specification defines the mandatory tables and mandatory/optional table rows delivered by the SD
manufacturer. The creation or deletion of tables after manufacturing is outside the scope of this specification. The
creation or deletion of table rows post-manufacturing is outside the scope of this specification.

2.7 Access Control & Personalization
Initial access control policies are preconfigured at SD manufacturing time on manufacturer created SPs. An Opal
SSC compliant SD SHALL support personalization of certain Access Control Elements of the Locking SP.

2.8 Issuance
The Locking SP MAY be present in the SD when the SD leaves the manufacturer. The issuance of SPs is outside
the scope of this specification.

2.9 SSC Discovery
Refer to [2] for details (see section 3.1.1).

2.10 Mandatory Feature Sets
An Opal SSC compliant SD SHALL support the following TCG Storage Feature Sets:
1) Additional DataStore Tables, Opal SSC Feature Set (refer to [6]);2) PSID, Opal SSC Feature Set (refer to [6]).
3) Block SID Authentication Feature Set (refer to [8])TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 10© TCG 2022

TCG Storage Security Subsystem Class: Opal

3

Opal SSC Features

3.1 Security Protocol 1 Support
3.1.1 Level 0 Discovery (M)Refer to [2] for more details.
An Opal SSC compliant SD SHALL return the following Level 0 response:••••

Level 0 Discovery Header (see Table 3)TPer Feature Descriptor (see Table 4)
Locking Feature Descriptor (see Table 5)
Opal SSC V2 Feature Descriptor (see Table 7)

Additionally, an Opal SSC compliant SD MAY return the following Level 0 response:••
3.1.1.1

Geometry Reporting Feature (see Table 6)
Supported Data Removal Mechanism Feature Descriptor (see Table 9)
Level 0 Discovery Header
Table 3 Level 0 Discovery Header

Bit

7

6

5

4

3

2

1

0

Byte
0

(MSB)

1

Length of Parameter Data

2
3
4

(LSB)
(MSB)

5

Data structure revision

6
7
8

(LSB)
(MSB)

…

Reserved

15
16
…

(LSB)
(MSB)
Vendor Specific

47

(LSB)

An Opal SSC compliant SD SHALL return the following:• Length of parameter data
= VU
• Data structure revision= 0x00000001 or
any version that supports the defined features in this SSC• Vendor Specific= VU
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 11© TCG 2022

TCG Storage Security Subsystem Class: Opal

3.1.1.2

TPer Feature (Feature Code = 0x0001)
Table 4 Level 0 Discovery - TPer Feature Descriptor

Bit

7

6

5

4

3

2

1

0

Byte
0
1

(MSB)

2

Feature Code (0x0001)
Version3
4

5 - 15(LSB)
Reserved

LengthReserved

ComID
Mgmt
Supported

Reserved

Streaming
Supported

Buffer Mgmt
Supported

ACK/NAKSupported

Async
Supported

Sync
Supported

Reserved

An Opal SSC compliant SD SHALL return the following:• Feature Code= 0x0001• Version= 0x1 or any version that supports the defined features in this SSC• Length= 0x0C• ComID Mgmt Supported= VU• Streaming Supported=1• Buffer Mgmt Supported= VU• ACK/NACK Supported= VU• Async Supported= VU• Sync Supported=1

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 12© TCG 2022

TCG Storage Security Subsystem Class: Opal

3.1.1.3 Locking Feature (Feature Code = 0x0002)** means the present current state of the respective feature
Table 5 Level 0 Discovery - Locking Feature Descriptor

Bit

7

6

5

4

3

2

1

0

Byte
0
1

(MSB)

Feature Code (0x0002)
Version2

5 - 15Reserved
Length34(LSB)

HW Resetfor
LOR/DOR
Supported

MBR
Shadowing
Not
Supported

MBR Done

MBR
EnabledMedia
Encryption

LockedLocking
EnabledLocking
Supported

Reserved

An Opal SSC compliant Storage Device SHALL return the following:• Feature Code= 0x0002• Version= 0x3 or any version that supports the defined features in this SSC• Length= 0x0C• HW Reset for LOR/DOR Supported = VU
• MBR Shadowing Not Supported=0o If MBR Shadowing feature is not absent (i.e., is supported), then this bit SHALL be 0.
o If MBR Shadowing feature is absent (i.e., is not supported), then this bit SHALL be 1.
• MBR Done= **• MBR Enabled= **• Media Encryption=1• Locked= **• Locking Enabled= See section 3.1.1.3.1• Locking Supported=1

3.1.1.3.1 LockingEnabled Definition
The definition of the LockingEnabled bit is changed from [2] as follows:
The LockingEnabled bit SHALL be set to one if an SP that incorporates the Locking template is in any state otherthan Nonexistent or Manufactured-Inactive; otherwise, the LockingEnabled bit SHALL be set to zero.
3.1.1.4

Geometry Reporting Feature (Feature Code = 0x0003)

3.1.1.4.1 Overview
This information indicates support for logical block and physical block geometry. This feature MAY be returned in theLevel 0 Discovery response. See [2] for additional information.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 13© TCG 2022

TCG Storage Security Subsystem Class: Opal

Table 6 Level 0 Discovery - Geometry Reporting Feature Descriptor

Bit
7

6

5

4

3

2

1

0

Byte
0

(MSB)
Feature Code (0x0003)

1

(LSB)

2

Version3

Reserved
Length4

Reserved

ALIGN

5
6
7
8

Reserved

9
10
11
12

(MSB)

13
LogicalBlockSize
14
15
16

(LSB)
(MSB)

17
18
19

AlignmentGranularity

20
21
22
23
24
25

(LSB)
(MSB)
LowestAlignedLBA

26

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 14© TCG 2022

TCG Storage Security Subsystem Class: Opal

Bit
7

6

5

4

3

2

1

0

Byte
27
28
29
30
31

(LSB)

An Opal SSC compliant SD SHALL return the following:• Feature Code = 0x0003• Version= 0x01• Length= 0x1C

3.1.1.4.2 ALIGN
If the value of the AlignmentRequired column of the LockingInfo table is TRUE, then the ALIGN bit shall be set toone. If the value of the AlignmentRequired column of the LockingInfo table is FALSE, then the ALIGN bit shall becleared to zero.
3.1.1.4.3 LogicalBlockSize
LogicalBlockSize SHALL be set to the value of the LogicalBlockSize column in the LockingInfo table.
3.1.1.4.4 AlignmentGranularity
AlignmentGranularity SHALL be set to the value of the AlignmentGranularity column in the LockingInfo table.
3.1.1.4.5 LowestAlignedLBA
LowestAlignedLBA SHALL be set to the value of the LowestAlignedLBA column in the LockingInfo table.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 15© TCG 2022

TCG Storage Security Subsystem Class: Opal

3.1.1.5

Opal SSC V2 Feature (Feature Code = 0x0203)
Table 7 Level 0 Discovery - Opal SSC V2 Feature Descriptor

Bit
7

6

5

4

3

2

1

0

Byte
0
1
2

(MSB)

Feature Code (0x0203)

Feature Descriptor Version Number

3

(LSB)

SSC Minor Version Number
Length

4
5

(MSB)

6
7

(MSB)

8

Base ComID(LSB)

Number of ComIDs

(LSB)
Range
Crossing

Reserved for future common SSC parameters

Behavior
9
10

(MSB)

11
12

(MSB)

Number of Locking SP Admin Authorities Supported

Number of Locking SP User Authorities Supported

13

Initial C_PIN_SID PIN Indicator

14

Behavior of C_PIN_SID PIN upon TPer Revert

15-19

Reserved for future common SSC parameters

(LSB)

(LSB)

An Opal SSC compliant Storage Device SHALL return the following:• Feature Code= 0x0203• Feature Descriptor Version Number = 0x2 or any version that supports the defined features in this SSC• SSC Minor Version Number= As specified in Table 8• Length= 0x10• Base ComID= VU• Number of ComIDs= 0x0001 or larger• Range Crossing Behavior= VU
o 0 = The Storage Device supports commands addressing consecutive LBAs in more than one LBA
range if all the LBA ranges addressed are unlocked. See section 4.3.7.
o 1 = The Storage Device terminates commands addressing consecutive LBAs in more than one LBA
range. See 4.3.7• Number of Locking SP Admin Authorities= 4 or larger• Number of Locking SP User Authorities= 8 or larger• Initial C_PIN_SID PIN Indicator = VU
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 16© TCG 2022

TCG Storage Security Subsystem Class: Opal•o 0x00 = The initial C_PIN_SID PIN value is equal to the C_PIN_MSID PIN value
o 0xFF = The initial C_PIN_SID PIN value is VU, and MAY not be equal to the C_PIN_MSID PIN value
o 0x01 – 0xFE = Reserved
Behavior of C_PIN_SID PIN upon TPer Revert = VU
o 0x00 = The C_PIN_SID PIN value becomes the value of the C_PIN_MSID PIN column after successful
invocation of Revert on the Admin SP’s object in the SP table
o 0xFF = The C_PIN_SID PIN value changes to a VU value after successful invocation of Revert on the
Admin SP’s object in the SP table, and MAY not be equal to the C_PIN_MSID PIN value
o 0x01 – 0xFE = Reserved
Table 8 - SSC Minor Versions

Opal Minor
Version
0x00
0x01
0x02
All others

Standard Referenced
TCG Opal SSC Specification v2.00
TCG Opal SSC Specification v2.01
TCG Opal SSC Specification v2.02
Reserved

If an Opal v2.00 SSC implementation is backward compatible with Opal v1.00, then the SD SHALL also report theOpal SSC Feature Descriptor as defined in [5].
Start of Informative Comment
An Opal v2.00 implementation is backward compatible to Opal v1.00 only if the geometry reported by the Geometry
Reporting Feature does not specify any alignment restrictions (i.e. ALIGN = FALSE, see section 3.1.1.4.2) , and if theTPer does not specify any granularity restrictions for byte tables (i.e. MandatoryWriteGranularity = 1 for all byte tables,see section 5.3.1.1), and if the “Initial C_PIN_SID PIN Indicator” and “Behavior of C_PIN_SID PIN upon TPer Revert”
fields are both 0x00.
End of Informative Comment

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 17© TCG 2022

TCG Storage Security Subsystem Class: Opal

3.1.1.6

Supported Data Removal Mechanism Feature (Feature Code = 0x0404)
Table 9 Level 0 Discovery – Supported Data Removal Mechanism Feature Descriptor

Bit
7

6

5

4

3

2

1

0

Byte
0
1

(MSB)

Feature Code (0x0404)

2

(LSB)

VersionReserved

3

Length4

Reserved
Data
Data
RemovalRemovalOperation Operation
Interrupted Processing

5

Reserved

6

Supported Data Removal Mechanism

7

Reserved

Data
RemovalTime
Format for
Bit 5

Reserved

Data
Data
RemovalRemovalTime
Time
Format for Format for
Bit 2
Bit 1

8-9

Data Removal Time for Supported Data Removal Mechanism Bit 0

10-11

Data Removal Time for Supported Data Removal Mechanism Bit 1

12-13

Data Removal Time for Supported Data Removal Mechanism Bit 2

14-17

Reserved

18-19

Data Removal Time for Supported Data Removal Mechanism Bit 5

20-35

Reserved for future Supported Data Removal Mechanism parameters

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 18

Data
RemovalTime
Format for
Bit 0© TCG 2022

TCG Storage Security Subsystem Class: Opal

An Opal Compliant SD SHALL return the parameters listed in Table 10:
Table 10 Parameter explanation

Parameter

Value

Details

Feature code

0x0404

Feature code value

Version

0x02

Version of the descriptor

Length0x20

Length of the feature descriptor

Data Removal
Operation
Processing

see section 3.1.1.6.1

Data Removal
Operation Interrupted

see section 3.1.1.6.2

Reserved

Return all zeros

Supported Data
RemovalMechanism

see section 3.1.1.6.3

Data Removal Time
Format for each bit

see section 3.1.1.6.4

3.1.1.6.1 Data Removal Operation Processing Definition
The Data Removal Operation Processing bit SHALL be set to one if the TPer is performing any supported data removal
operation including:•••Revert,RevertSP, or
GenKey.

Otherwise, the Data Removal Operation Processing bit SHALL be set to zero. If the operation is in progress, thesecurity transport commands such as the security send, and the security receive SHALL be processed by the SD.
The Data Removal Operation Processing bit SHALL be set to zero upon a successful completion of a data removal
operation.
The Data Removal Operation Processing bit SHALL be set to one if the data removal operation is restarted after aPower Cycle (see Table 17).
3.1.1.6.2 Data Removal Operation Interrupted
The Data Removal Operation Interrupted bit SHALL be set to one if a previously issued data removal operation such
as Revert, RevertSP or GenKey was interrupted for any reason (including, power loss, interface reset, etc.). The Data
Removal Operation Interrupted bit SHALL be set to zero after successful completion of a data removal operation.

Start of Informative Comment
The host can reissue a data removal operation that was interrupted (such as RevertSP, Revert, or GenKey), The SD
can be in a locked state if the operation was interrupted and the SD is now operational.
End of Informative Comment

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 19© TCG 2022

TCG Storage Security Subsystem Class: Opal

3.1.1.6.3 Supported Data Removal Mechanism Definition
Each bit of the Supported Data Removal Mechanism (see Table 11) SHALL be set to one if the TPer supports thecorresponding Data Removal Mechanism; otherwise, each bit SHALL be set to zero. The TPer SHALL support the
Crypto Erase mechanism and MAY support the Overwrite Data Erase or Block Erase or other mechanisms. The
TPer MAY support multiple Data Removal Mechanisms described in Table 11. After a RevertSP method hascompleted without an error, the condition of user data SHALL be indicated as specified in Table 11.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 20© TCG 2022

TCG Storage Security Subsystem Class: Opal

Table 11 Supported Data Removal Mechanism

Bit

Name

Condition of user data after Data Removal

0Overwrite Data
Erase1The Overwrite Data Erase mechanism causes TPer toalter information by writing a vendor specific data pattern
to the medium.

1

Block Erase1

The Block Erase mechanism causes the TPer to alter
information by setting the physical blocks to a vendor
specific value.

2

Cryptographic Erase

The TPer SHALL support this data erasure mechanism.
Further this mechanism SHALL be executed in addition
to any other supported data removal mechanism that isbeing executed.

2This bit MAY be used by the Revert or the RevertSP or
the GenKey (band erase) mechanisms of data removal,
where the cryptographic keys used to encrypt the user
data are changed.
3-4

Reserved

Reserved

5

Vendor Specific
Erase1The Vendor Specific Erase mechanisms cause all user
data to be removed by a vendor specific method. 3

6-7

Reserved

Notes:
1 The cryptographic erase operation SHALL also be performed when any of the other data

removal mechanisms are used.
2 The Cryptographic Erase bit may be used by the Revert or the RevertSP or the GenKey

operations (band erase). Any subsequent operation(s) such as Deallocate, or Unmap, orTrim, that is part of the implementation of the data removal operation SHALL be accounted
for in the time reported for this operation (see section 3.1.1.6.4). The time value reported
SHALL correspond to the estimated completion time of the Cryptographic Erase. For theerase (GenKey) operation, the reported estimated time value will correspond to theestimated completion time of the erase operation, regardless of the extent of the range
being erased.
3 If a SD supports more than one vendor proprietary method of data removal, then theassociated estimated time value will represent the completion time for the longest vendor
specific erase mechanism of data removal, then the associated estimated time value will
represent the completion time for the longest of the vendor specific mechanisms.

3.1.1.6.4 Data Removal Time Format and Data Removal Time Definition
Each Data Removal Time field provides the worst case estimate of the time required to perform the erasurecorresponding to each Data Removal Mechanism defined in the Supported Data Removal Mechanism field. The
Data Removal Time Format bit identifies the format used to express the time as follows:a) if the Data Removal Time Format bit is set to zero, then the estimated time is defined in Table 12; andTCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 21© TCG 2022

TCG Storage Security Subsystem Class: Opalb) if the Data Removal Time Format bit is set to one, then the estimated time is defined in Table 13.
The Data Removal Time Format bit and Data Removal Time Format field are defined in Table 12 and Table 13.

Table 12 Data Removal Time (Data Removal Time Format bit= 0)

Value

Time

0

Not reported

1..65534(Value x 2) seconds

65535>= 131068 seconds

Table 13 Data Removal Time (Data Removal Time Format bit= 1)

Value

Time

0

Not reported

1..65534(Value x 2) minutes

65535>= 131068 minutes

Start of Informative Comment
Each Data Removal Time field gives an estimate of the total time required to perform the erasure for eachcorresponding Data Removal Mechanism. This field is not a dynamic estimate of the remaining time for completion.
When GenKey is performed on a range that’s less than the global range, the time needed for the completion of theoperation can be less than the time reported for the operation. The reported estimated time for the data removal
operation will be for the entire capacity of the SD. The host software can use the ratio of the band size to the entire
capacity of the SD, to derive the estimated time for erasing a band.
End of Informative Comment

3.2 Security Protocol 2 Support
3.2.1 ComID Management
ComID management support is reported in Level 0 Discovery. Statically allocated ComIDs are also discoverable via
the Level 0 Discovery response.

3.2.2 Stack Protocol Reset (M)An Opal SSC compliant SD SHALL support the Stack Protocol Reset command. Refer to [2] for details.

3.2.3 TPER_RESET command (M)If the TPER_RESET command is enabled, it SHALL cause the following before the TPer accepts the next IF-SEND
or IF-RECV command:
a)
b)
c)
d)
e)
f)

all dynamically allocated ComIDs SHALL return to the Inactive state;
all open sessions SHALL be aborted on all ComIDs;
all uncommitted transactions SHALL be aborted on all ComIDs;
the synchronous protocol stack for all ComIDs SHALL be reset to its initial state
all TCG command and response buffers SHALL be invalidated for all ComIDs;
all related method processing occurring on all ComIDs SHALL be aborted;

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 22© TCG 2022

TCG Storage Security Subsystem Class: Opalg) The TPer’s knowledge of the host’s communications capabilities, on all ComIDs, SHALL be reset to theinitial minimum assumptions defined in [2] or the TPer’s SSC definition;h) the values of the ReadLocked and WriteLocked columns SHALL be set to True for all Locking SP’s Locking
objects that contain the Programmatic enumeration value in the LockedOnReset column;i) the value of the Done column of the Locking SP’s MBRControl table SHALL be set to False, if the
DoneOnReset column contains the Programmatic enumeration value.
The TPER_RESET command is delivered by the transport IF-SEND command. If the TPER_RESET command isenabled, the TPer SHALL accept and acknowledge it at the interface level. If the TPER_RESET command is disabled,
the TPer SHALL abort it at the interface level with the “Other Invalid Command Parameter” status (see [4]). There is
no IF-RECV response to the TPER_RESET command.
The TPER_RESET command is defined in Table 14.
The Transfer Length SHALL be non-zero. All data transferred SHALL be ignored.

Table 14 TPER_RESET Command

FIELD

VALUE

Command

IF-SEND

Protocol ID

0x02

Transfer Length

Non-zero

ComID

0x0004

3.3 Communications
3.3.1 Communication Properties
The TPer SHALL support the minimum communication buffer size as defined in section 4.1.1.1. For each ComID, thephysical buffer size SHALL be reported to the host via the Properties method.
The TPer SHALL terminate any IF-SEND command whose transfer length is greater than the reported
MaxComPacketSize size for the corresponding ComID. For details, refer to “Invalid Transfer Length parameter on IFSEND” in [4].
Data generated in response to methods contained within an IF-SEND command payload subpacket (including therequired ComPacket / Packet / Subpacket overhead data) SHALL fit entirely within the response buffer. If themethod response and its associated protocol overhead do not fit completely within the response buffer, the TPer
1) SHALL terminate processing of the IF-SEND command payload,2) SHALL NOT return any part of the method response if the Sync Protocol is being used, and
3) SHALL return an empty response list with a TCG status code of RESPONSE_OVERFLOW in that method’s
response status list.

3.3.2 Supported Security Protocols
The TPer SHALL support:••

IF-RECV commands with a Security Protocol values of 0x00, 0x01, 0x02.
IF-SEND commands with a Security Protocol values of 0x01, 0x02.

3.3.3 ComIDs
For the purpose of communication using Security Protocol 0x01, the TPer SHALL:•

support at least one statically allocated ComID for Synchronous Protocol communication.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 23© TCG 2022

TCG Storage Security Subsystem Class: Opal••

have the ComID Extension values = 0x0000 for all statically allocated ComIDs.
keep all statically allocated ComIDs in the Active state.

When the TPer receives an IF-SEND or IF-RECV with an inactive or unsupported ComID, the TPer SHALL either:••terminate the command as defined in [4] with “Other Invalid Command Parameter”, orfollow the requirements defined in [2] for “IF-SEND to Inactive or Unsupported Reserved ComID” or “IF-RECV
to Inactive or Unsupported Reserved ComID”.

ComIDs SHALL be assigned based on the allocation presented in Table 15.
Table 15 ComID Assignments

ComID

Description

0x0000Reserved

0x0001

Level 0 Device Discovery

0x0002-0x0003

Reserved for TCG

0x0004

TPER_RESET command

0x0005-0x07FF

Reserved for TCG

0x0800-0x0FFF

Vendor Unique

0x1000-0xFFFF

ComID management (Protocol ID=0x01 and 0x02)

3.3.4 Synchronous Protocol
The TPer SHALL support the Synchronous Protocol. Refer to [2] for details.
3.3.4.1

Payload Encoding

3.3.4.1.1 Stream Encoding Modifications
The TPer SHALL support tokens listed in Table 16. If an unsupported token is encountered, the TPer SHALL treat thetoken as a streaming protocol violation and return an error per the definition in section 3.3.4.1.3.
Table 16 Supported Tokens

Token

Acronym

Tiny atom

N/A

Short atom

N/A

Medium atom

N/ALong atom

N/A

Start List

SL

End List

EL

Start NameSN

End Name

EN

Call

CALL

End of DataEOD

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 24© TCG 2022

TCG Storage Security Subsystem Class: Opal

End of session

EOS

Start transaction

ST

End of transaction

ET

Empty atom

MT

The TPer SHALL support the above token atoms with the B bit set to zero or one and the S bit set to zero.
3.3.4.1.2 TCG Packets
Within a single IF-SEND/IF-RECV command, the TPer SHALL support a ComPacket containing one Packet, whichcontains one Subpacket. The host may discover TPer support of capabilities beyond this requirement in theparameters returned in response to a Properties method.
The TPer MAY ignore Credit Control Subpackets sent by the host. The host may discover TPer support of Credit
Management with Level 0 Discovery. For more details refer to Section 3.1.1 Level 0 Discovery (M)The TPer MAY ignore the AckType and Acknowledgement fields in the Packet header on commands from the hostand set these fields to zero in its responses to the host. The host may discover TPer support of the TCG packet
acknowledgement/retry mechanism with Level 0 Discovery. For more details refer to Section 3.1.1 Level 0 Discovery(M)
The TPer MAY ignore packet sequence numbering and not enforce any sequencing behavior. Refer to [2] for details
on discovery of packet sequence numbering support.
3.3.4.1.3 Payload Error Response
The TPer SHALL respond according to the following rules if it encounters a streaming protocol violation:••

If the error is on Session Manager or is such that the TPer cannot resolve a valid session ID from the payload(i.e. errors in the ComPacket header or Packet header), then the TPer SHALL discard the payload and
immediately transition to the “Awaiting IF-SEND” state.
If the error occurs after the TPer has resolved the session ID, then the TPer SHALL abort the session and MAY
prepare a CloseSession method for retrieval by the host.

3.3.5 Storage Device Resets
3.3.5.1 Interface Resets
Interface resets that generate TCG reset events are defined in [4].
Interface initiated TCG reset events SHALL result in:
1.
2.
3.
4.
5.
6.
7.

All open sessions SHALL be aborted;
All uncommitted transactions SHALL be aborted;
All pending session startup activities SHALL be aborted;
All TCG command and response buffers SHALL be invalidated;
All related method processing SHALL be aborted;
For each ComID, the state of the synchronous protocol stack SHALL transition to “Awaiting IF-SEND” state;
No notification of these events SHALL be sent to the host.

3.3.5.2 TCG Reset Events
Table 17 replaces the definition of TCG reset_types that are defined in [2]:TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 25© TCG 2022

TCG Storage Security Subsystem Class: Opal

Table 17 reset_types

Enumeration value

Associated Value

0

Power Cycle

1

Hardware2

HotPlug

3

Programmatic

4-15

Reserved

16-31

Vendor Unique

3.3.6 Protocol Stack Reset Commands (M)An IF-SEND containing a Protocol Stack Reset Command SHALL be supported.
Refer to [2] for details.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 26© TCG 2022

TCG Storage Security Subsystem Class: Opal

4

Opal SSC-compliant Functions and SPs

4.1 Session Manager
4.1.1 Methods
4.1.1.1 Properties (M)An Opal compliant Storage Device SHALL support the Properties method. The requirements for support of thevarious TPer and Host properties, and the requirements for their values, are shown in Table 18.
Table 18 Properties Requirements

Property Name

TPer Property Requirements
and Values Reported

Host Property Requirements
and Values Accepted

MaxComPacketSize

(M)

(M)

2048 minimum

Initial Assumption: 2048
Minimum allowed: 2048
Maximum allowed: VU

MaxResponseComPacketSize

MaxPacketSize

(M)

(N)

2048 minimum

Although this is a legal hostproperty, there is no requirement
for the TPer to use it. The TPer
MAY ignore this host property
and not list it in the
HostProperties result of theProperties method response.

(M)

(M)

2028 minimum

Initial Assumption: 2028
Minimum allowed: 2028
Maximum allowed: VU

MaxIndTokenSize

(M)

(M)

1992 minimum

Initial Assumption: 1992
Minimum allowed: 1992
Maximum allowed: VU

MaxPackets

(M)

(M)

1 minimum

Initial Assumption: 1
Minimum allowed: 1
Maximum allowed: VU

MaxSubpackets

(M)

(M)

1 minimum

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 27© TCG 2022

TCG Storage Security Subsystem Class: Opal

Initial Assumption: 1
Minimum allowed: 1
Maximum allowed: VU
MaxMethods

(M)

(M)

1 minimum

Initial Assumption: 1
Minimum allowed: 1
Maximum allowed: VU

MaxSessions(M)

N/A – not a host property

1 minimum
MaxAuthentications(M)

N/A – not a host property

2 minimum
MaxTransactionLimit(M)

N/A – not a host property

1 minimum
DefSessionTimeout(M)

N/A – not a host property

VU

4.1.1.2 StartSession (M)An Opal-compliant SD SHALL support the following parameters for the StartSession method:
•
•
•
•
•

HostSessionID
SPID
Write
HostChallenge
HostSigningAuthority

For an Opal-compliant SD, a value of “True” for the Write parameter SHALL be supported.
For an Opal-compliant SD, a value of “False” (i.e. read only session) for the Write parameter may or may not be
supported.

4.1.1.3 SyncSession (M)An Opal-compliant SD SHALL support the following parameters for the SyncSession method:••

HostSessionID
SPSessionID

4.1.1.4 CloseSession (O)An Opal-Compliant SD MAY support the CloseSession method.

4.2 Admin SP
The Admin SP includes the Base Template and the Admin Template.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 28© TCG 2022

TCG Storage Security Subsystem Class: Opal

4.2.1 Base Template Tables
All tables included in the following subsections are Mandatory.

4.2.1.1 SPInfo (M)The SPInfo Table is defined in [2], and Table 19 defines the Preconfiguration Data for the SPInfo Table.

Enabled“Admin”

SPSessionTimeout

Name

00 00 02 05
00 00 00 01

SizeInUse

SPID

00 00 00 02
00 00 00 01

Size

UID

Table 19 Admin SP - SPInfo Table PreconfigurationT

4.2.1.2 SPTemplates (M)The SPTemplates Table is defined in [2], and Table 20 defines the Preconfiguration Data for the SPTemplates Table.
*ST1 means this version number or any version number that complies with this SSC.
Table 20 Admin SP - SPTemplates Table Preconfiguration

UID

TemplateID

Name

Version

00 00 00 03
00 00 00 01

00 00 02 04 00 00 00 01“Base”

00 00 00 03
00 00 00 02

00 00 02 04 00 00 00 02“Admin”

00 00 00 02*ST1
00 00 00 02*ST1

4.2.1.3 Table (M)The Table Table is defined in [2], and Table 21 defines the Preconfiguration Data for the Table Table.
Refer to section 5.3 for a description
RecommendedAccessGranularity columns.

andrequirements

of

the

MandatoryWriteGranularityand00 00 00
01 00 00
00 01

“Table”

ObjectTCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

0Page 29

0© TCG 2022

Granularity

RecommendedAccess

Granularity

MandatoryWrite

MaxSize

MinSize

LastID

RowBytes

RowsFree

Rows

NumColumns

ColumnKind

TemplateID

CommonName

UID

Name

Table 21 Admin SP - Table Table Preconfiguration

00 00 00
01 00 00
00 02

“SPInfo”

Object0

000 00 00
01 00 00
00 03

“SPTemplates”

Object0

000 00 00
01 00 00
00 06

"MethodID"

Object0

000 00 00
01 00 00
00 07

"AccessControl"

Object0

000 00 00
01 00 00
00 08

"ACE"

Object0

000 00 00
01 00 00
00 09

"Authority"

Object0

000 00 00
01 00 00
00 0B

"C_PIN"

Object0

000 00 00
01 00 00
02 01

"TPerInfo"

Object0

000 00 00
01 00 00
02 04

"Template"

Object0

000 00 00
01 00 00
02 05

"SP"

Object0

000 00 00
01 00 00
11 01

“DataRemovalMech
anism”

Object00Start of Informative Comment
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 30© TCG 2022

Granularity

RecommendedAccess

Granularity

MandatoryWrite

MaxSize

MinSize

LastID

RowBytes

RowsFree

Rows

NumColumns

ColumnKind

TemplateID

CommonName

UID

Name

TCG Storage Security Subsystem Class: Opal

TCG Storage Security Subsystem Class: Opal

[2] states, “The Table table in the Admin SP includes a row for each table that the TPer supports, in addition to a row
for each table that exists in the Admin SP.” However, the Opal SSC requires only the tables from the Admin SP to be
included in the Admin SP’s Table table, as indicated in Table 21.
End of Informative Comment
4.2.1.4 MethodID (M)The MethodID Table is defined in [2], and Table 22 defines the Preconfiguration Data for the MethodID Table.
*MT1: refer to section 5.1.2 for details on the requirements for supporting Revert.
*MT2: refer to section 5.1.1 for details on the requirements for supporting Activate.
.
Table 22 Admin SP - MethodID Table Preconfiguration

UID

Name

00 00 00 06
00 00 00 08"Next"

00 00 00 06
00 00 00 0D"GetACL"00 00 00 06
00 00 00 16"Get"

00 00 00 06
00 00 00 17"Set"

00 00 00 06
00 00 00 1C"Authenticate"00 00 00 06
00 00 02 02

CommonName

TemplateID"Revert"*MT1
00 00 00 06
00 00 02 03"Activate"*MT200 00 00 06
00 00 06 01“Random”

4.2.1.5 AccessControl (M)Table 23 contains Optional rows identified by (O).
Notation:*AC1: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the Table object UIDs
*AC2: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the SPTemplates object UIDs
*AC3: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the MethodID object UIDs
*AC4: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the ACE object UIDs
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 31© TCG 2022

TCG Storage Security Subsystem Class: Opal

*AC5: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the Authority object UIDs
*AC6: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the Template object UIDs
*AC7: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the SP object UIDs
Start of Informative Comment*AC8: refer to section 5.1.2 for details on the requirements for supporting Revert*AC9: refer to section 5.1.1 for details on the requirements for supporting Activate
End of Informative Comment

The InvokingID, MethodID and GetACLACL columns are a special case. Although they are marked as Read-Only
with fixed access control, the access control for invocation of the Get method is (N).
The ACL column is readable only via the GetACL method.

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID- informative text

InvokingID Name

InvokingID

UID- Informative text

Table association

Table 23 Admin SP - AccessControl Table Preconfiguration

ACE_Anybody ACE_Anybody

ACE_Anybody ACE_Anybody

ACE_Anybody

ACE_Anybody

Next
Get
Get

Table
TableObjSPInfoObj*AC100 00 00 01
TT TT TT TT

00 00 00 01
00 00 00 00

Table

00 00 00 02
00 00 00 01

SPInfoSPTemplates

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 32© TCG 2022

ACE_Anybody ACE_Anybody

ACE_Anybody ACE_Anybody

ACE_Anybody

Next

ACE

00 00 00 08
00 00 00 00

ACE_Anybody

Get

Next

*AC4

00 00 00 08
TT TT TT TT

ACEObjAuthority

Authority

00 00 00 09
00 00 00 00

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_Anybody

Get

MethodIDObj*AC300 00 00 06
TT TT TT TT

ACE_Anybody

ACE_Anybody

Next

MethodID

00 00 00 06
00 00 00 00

ACE_Anybody

ACE_Anybody

Get

SPTemplatesObj*AC200 00 00 03
TT TT TT TT

CommonName

MethodID- informative text

InvokingID Name

InvokingID

Page 33

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

ACE_Anybody GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_Anybody ACL

Next

SPTemplates

00 00 00 03
00 00 00 00

UID- Informative text

Table association

TCG Storage Security Subsystem Class: Opal

MethodID

ACE© TCG 2022

Admin1

Set

AdminXX

Set

Set

Makers00 00 00 09
00 00 00 03

Get

CommonName

MethodID- informative text

AuthorityObj InvokingID Name

*AC500 00 00 09
TT TT TT TT InvokingID

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_Anybody

ACE_Anybody

Page 34

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

ACE_Anybody GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_Set_Enabled ACE_Set_Enabled ACE_Set_Enabled ACE_Anybody ACL

00 00 00 09
00 00 02 01

00 00 00 09
00 00 02 00
(+XX)

UID

- Informative text

Table association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

00 00 00 0B
00 00 84 02

C_PIN_MSID
Get

ACE_C_PIN_MSID_Get_PIN

ACE_Anybody

00 00 00 0B
00 00 02 01

C_PIN_Admin1

Get

ACE_C_PIN_SID_Get_NOPIN

ACE_Anybody

Get

C_PIN_SID

00 00 00 0B
00 00 00 01

Next

C_PIN

00 00 00 0B
00 00 00 00

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_C_PIN_SID_Set_PI ACE_C_PIN_SID_Get_NOPIN ACE_Anybody
N

Set

C_PIN_SID

00 00 00 0B
00 00 00 01

Page 35

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID- informative text

InvokingID Name

InvokingID

UID- Informative text

Table association

TCG Storage Security Subsystem Class: Opal

C_PIN

© TCG 2022

Set

Get

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_Anybody

Set

C_PIN_Admin100 00 00 0B
00 00 02 01

Get

C_PIN_AdminXX

00 00 00 0B
00 00 02 00(+XX)

CommonName

MethodID- informative text

InvokingID Name

InvokingID

ACE_Anybody

ACE_Anybody

ACE_Anybody

Page 36

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_C_PIN_Admins_Set_PI ACE_C_PIN_Admins_Set_PI ACE_C_PIN_SID_Get_NOPIN ACL
NN

C_PIN_AdminXX

TPerInfoObj

00 03 00 01

00 00 00 0B
00 00 02 00(+XX)

TPerInfo

00 00 02 01

UID- Informative text

Table association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

Get

Next

Template

ACE_Anybody ACE_Anybody

Authenticate

TemplateObj

00 00 02 04
00 00 00 00

ACE_Anybody ACE_Anybody ACE_Anybody

RandomNext

ThisSP00 00 02 04
TT TT TTTT
*AC6

ACE_Anybody ACE_Anybody

ThisSP

SP

00 00 00 00
00 00 00 01

SP

ACE_Anybody ACE_Anybody ACE_Anybody

00 00 00 00
00 00 00 01

00 00 02 05
00 00 00 00

CommonName

MethodID- informative text

InvokingID Name

InvokingID

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

Page 37

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_TPerInfo_Set_ProgrammaticResetEnabl ACLe

Set

TPerInfoObj

00 03 00 01

00 00 02 01

UID- Informative text

Table association

TCG Storage Security Subsystem Class: Opal

Template© TCG 2022

00 00 11 01
00 00 00 01

Get

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_Anybody

ACE_DataRemov ACE_Anybody
alMechanism_Set_ActiveDataRemo
valMechanism

Set

*AC7

00 00 02 05
TT TT TT TT*AC7

ACE_Anybody

ACE_SP_SID

Activate

ACE_Anybody

ACE_SP_SID,
ACE_Admin

RevertSPObj

00 00 02 05
TT TT TT TT

*AC9

SPObj

*AC8

DataRemovalMec DataRemovalMec
hanismObj
hanismObj

00 00 11 01
00 00 00 01

CommonName

MethodID- informative text

InvokingID Name

Page 38

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

ACE_Anybody GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_Anybody ACL

Get

SPObj

*AC7

00 00 02 05
TT TT TT TT InvokingID

UID- Informative text

Table association

TCG Storage Security Subsystem Class: Opal

DataRemovalMechanism

4.2.1.6 ACE (M)
Table 24 contains Optional rows designated with (O).

Start of Informative Comment*ACE1 means that row is (M) if the TPer supports either Activate or Revert, and (N) otherwise.

End of Informative Comment© TCG 2022

TCG Storage Security Subsystem Class: Opal

Name

BooleanExpr

Columns

CommonName

UID- Informative
text

Table
Association

Table 24 Admin SP - ACE Table Preconfiguration

00 00 00 08
00 00 00 01"ACE_Anybody"

AnybodyAll

00 00 00 08
00 00 00 02"ACE_Admin"

AdminsAll

00 00 00 08
00 03 00 01"ACE_Set_Enabled"

SID

Enabled00 00 00 08
00 00 8C 02"ACE_C_PIN_SID_Get_NOPIN"

AdminsOR SID

UID, CharSet, TryLimit,
Tries, Persistence

00 00 00 08
00 00 8C 03"ACE_C_PIN_SID_Set_PIN"

SID

PIN

00 00 00 08
00 00 8C 04"ACE_C_PIN_MSID_Get_PIN"

Anybody

UID, PIN

00 00 00 08
00 03 A0 01"ACE_C_PIN_Admins_Set_PIN"

AdminsOR SIDPIN

00 00 00 08
00 03 00 03"ACE_TPerInfo_Set_Programmati
cResetEnable"

SID

ProgrammaticResetEnable

00 00 00 08
00 03 00 02"ACE_SP_SID"

SID

All

00 00 00 08
00 05 00 01"ACE_DataRemovalMechanism_S
et_ActiveDataRemovalMechanism"

AdminsOR SID

ActiveDataRemoval
Mechanism

BaseACEs

Authority

C_PIN

TPerInfoSP*ACE1
DataRemovalMechanism*ACE1

4.2.1.7 Authority (M)The Authority Table is defined in [2], and Table 25 defines the Preconfiguration Data for the Authority Table.
Note:
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 39© TCG 2022

TCG Storage Security Subsystem Class: Opal•

Admin1 (M) is required; any additional Admin authorities are (O)

LogTo

Log

Uses

Limit

ClockEnd

ClockStart

ResponseExch
Null
Null
Null
Null
Null
Null

Credential

ResponseSign
Null
Null
Null
Null
Null
Null

None
None
Password

Null

Password

Null

Password

F

Null

F

C_PIN_AdminXX C_PIN_Admin C_PIN_SID
1

F

None

None

F

None

PresentCertificateOperation

None

F

None

HashAndSign
None

F

None

Secure
None
None
None

F

None

F

None

Enabled
F

F

None

Class
Null
Null

F

IsClass

Null

CommonName

T"Anybody" Name

F

Null

(O)

T

Admins00 00 00 09
00 00 02 00(+XX)1T

Admins00 00 00 09
00 00 02 01"Admins"

00 00 00 09
00 00 00 06

T"Makers"

00 00 00 09
00 00 00 03

T

"SID"

00 00 00 09
00 00 00 02

T"Admin1"

00 00 00 09
00 00 00 01"AdminXX"UID

Table 25 Admin SP - Authority Table Preconfiguration

4.2.1.8 C_PIN (M)The C_PIN Table is defined in [2], and Table 26 defines the Preconfiguration Data for the C_PIN Table.
Table 26 Admin SP - C_PIN Table Preconfiguration

UID

Name

00 00 00 0B
00 00 00 01"C_PIN_SID"

CommonName

PIN

CharSet

TryLimit

Tries

Persistence

VU

Null

VU

VU

FALSE

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 40© TCG 2022

TCG Storage Security Subsystem Class: Opal

UID

Name

00 00 00 0B
00 00 84 02"C_PIN_MSID"

MSID

00 00 00 0B
00 00 02 01"C_PIN_Admin1""C_PIN_AdminXX"

00 00 00 0B
00 00 02 00(+XX)

CommonName

PIN

CharSet

TryLimit

Tries

Persistence

“”

Null

0

0

FALSE

“”

Null

0

0

FALSE

(O)

For SDs that will be used in environments where an automated take ownership process is required, the initial PIN
column value of C_PIN_SID SHALL be set to the PIN column value of C_PIN_MSID. In order to allow for alternative
take ownership processes, the initial PIN column value of C_PIN_SID MAY be Vendor Unique (VU).
Start of Informative Comment
Several activation / take ownership models are possible. The simplest model, which is the only model supported by
Opal v1.00, is a process whereby the host discovers the initial C_PIN_SID PIN value by performing a Get operationon the C_PIN_MSID object. This model requires that the initial C_PIN_SID PIN be the value of the C_PIN_MSID PIN.
Opal v2.00 allows the initial C_PIN_SID PIN value to be vendor unique in order to allow for alternative activation /take ownership models. Such models require that the C_PIN_SID PIN be retrieved in a way that is beyond the scopeof this specification.
Before a device vendor chooses to implement an activation / take ownership model based on a vendor unique SID
PIN, the SD vendor must undertake due diligence to ensure that the ecosystem exists to support such an activation /take ownership model. Having a C_PIN_SID PIN value that is different from the C_PIN_MSID PIN value may haveserious ramifications, such as the inability to take ownership of the SD.
See section 5.1.2.2.1 for an explanation of how Revert affects the value of the C_PIN_SID PIN column.
End of Informative Comment

4.2.2 Base Template Methods
Refer to section 4.2.1.4 for supported methods.

4.2.3 Admin Template Tables
4.2.3.1 TPerInfo (M)The TPerInfo table has the column defined in Table 27, in addition to those defined in [2]:Table 27 Admin SP – TPerInfo Columns•

Column Number

Column Name

0x08

ProgrammaticResetEnable

IsUniqueColum TypebooleanProgrammaticResetEnable
This column indicates whether support for programmatic resets is enabled or not. If
ProgrammaticResetEnable is TRUE, then the TPER_RESET command is enabled. If
ProgrammaticResetEnable is FALSE, then the TPER_RESET command is not enabled.
This column is readable by Anybody and modifiable by the SID authority.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 41© TCG 2022

TCG Storage Security Subsystem Class: Opal

*TP1 means that the value in the GUDID column SHALL comply with the format defined in [2].
*TP2 means that this version or any version that supports the defined features in this SSC.
*TP3 means that the SSC column is a list of names and SHALL have “Opal” as one of the list elements.

00 00 02 01

VU

00 03 00 01*TP1[“Opal”]

1
*TP2

*TP3

ProgrammaticResetEnable

SSC

SpaceForIssuanceProtocolVersion

Firmware Version

Generation

GUDID

UID

Bytes

Table 28 Admin SP - TPerInfo Table Preconfiguration

FALSE

4.2.3.2 Template (M)The Template Table is defined in [2], and Table 29 defines the Preconfiguration Data for the Template Table.
Table 29 Admin SP - Template Table Preconfiguration

UID

Name

Revision
Number

Instances

MaxInstances

00 00 02 04 00 00 00 01"Base"

1

VU

VU

00 00 02 04 00 00 00 02"Admin"1

1

100 00 02 04 00 00 00 06"Locking"

1

1

1

4.2.3.3 SP (M)The SP Table is defined in [2], and Table 30 defines the Preconfiguration Data for the SP Table.
*SP1 means that this row only exists in the Admin SP's OFS when the Locking SP is created by the manufacturer.

Frozen"Admin"Manufactured

FALSE"Locking"

ManufacturedInactive

FALSE

00 00 02 05 00 00 00 02
*SP1

Bytes

LifeCycle

DateOfIssue

Name

00 00 02 05 00 00 00 01

ORG

UID

EffectiveAuth

Table 30 Admin SP - SP Table Preconfiguration

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 42© TCG 2022

TCG Storage Security Subsystem Class: Opal

4.2.4 Admin Template Methods
Refer to section 4.2.1.4 for supported methods.

4.2.5 Opal Additional Column Types
4.2.5.1 Data_removal_mechanism
The data_removal_mechanism type is defined in Table 31 for Opal:
Table 31 data_removal_mechanism Type Table Addition

UID

Name

Format00 00 00 05 00 00 04 20

data_removal_mechanism

Enumeration_Type,
0,7

Table 32 defines the enumeration values. The mechanisms associated with each Enumeration Value are defined inTable 11.

Table 32 data_removal_mechanism Enumeration Values

Enumeration Value

Associated Value0

Overwrite Data Erase1

Block Erase2

Cryptographic Erase

3–4

Reserved

5

Vendor Specific Erase

6-7

Reserved

4.2.6 Opal Additional Data Structures
4.2.6.1 DataRemovalMechanism (ObjectTable)
The DataRemovalMchanism table is defined in Table 33
Table 33 DataRemovalMechansim Table Description

Column Number
0x00
0x01

Column Name
UID
ActiveDataRemovalMechanism

IsUniqueColumn Typeuid
data_removal_mechanism

4.2.6.1.1 UID
This is the unique identifier of this row in the DataRemovalMechanism table.
This column SHALL NOT be modifiable by the host.

4.2.6.1.2 ActiveDataRemovalMechanism
This column value selects which Data Removal Mechanism in the Supported Data Removal Mechanism field in the
Supported Data Removal Mechanism feature descriptor is active and will be used to remove data upon execution of
the Revert method or the RevertSP method or the GenKey method. If an attempt is made to set the
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 43© TCG 2022

TCG Storage Security Subsystem Class: Opal

ActiveDataRemovalMechanism column value to an unsupported value of the data_removal_mechanism type, thenthe Set method invocation SHALL result in the method failing with the status INVALID_PARAMETER.

4.2.7 Opal Additional Tables
4.2.7.1 DataRemovalMechansim (M)The DataRemovalMechanism table SHALL contain exactly one row with UID=0x00 0x00 0x11 0x01 0x00 0x00 0x00
0x01. The DataRemovalMechanism table SHALL be supported (see Table 34).
Table 34 Admin SP – DataRemovalMechansim Table Preconfiguration

UID
00 00 11 01
00 00 00 01

ActiveDataRemovalMechanism
VU

4.2.8 Crypto Template Tables
An Opal SSC compliant Storage Device is not required to support any Crypto template tables.

4.2.9 Crypto Template Methods
Refer to section 4.2.1.4 for supported methods.
4.2.9.1 Random
The TPer SHALL implement the Random method with the constraints stated in this subsection. TPer support of thefollowing parameters is Mandatory:
•

Count

Attempts to use unsupported parameters SHALL result in a method failure response with TCG status
INVALID_PARAMETER. The TPer SHALL support Count parameter values less than or equal to 32.

4.3 Locking SP
4.3.1 Base Template Tables
All tables defined with (M) in section titles are Mandatory.
4.3.1.1 SPInfo (M)The SPInfo Table is defined in [2], and Table 35 defines the Preconfiguration Data for the SPInfo Table.

Enabled"Locking"

SPSessionTimeout

Name

00 00 02 05
00 00 00 02

SizeInUse

SPID

00 00 00 02
00 00 00 01

Size

UID

Table 35 Locking SP - SPInfo Table PreconfigurationT

4.3.1.2 SPTemplates (M)The SPTemplates Table is defined in [2], and Table 36 defines the Preconfiguration Data for the SPTemplates Table.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 44© TCG 2022

TCG Storage Security Subsystem Class: Opal

*SP1 means that this version number or any number that supports the defined features in this SSC
Table 36 Locking SP - SPTemplates Table Preconfiguration

UID

00 00 00 03 00 00 00 01

00 00 00 03 00 00 00 02

TemplateID

Name

Version

00 00 02 04 00 00 00 01"Base"

00 00 02 04 00 00 00 06"Locking"

00 00 00 02*SP1
00 00 00 02*SP1

4.3.1.3 Table (M)The Table Table is defined in [2], and Table 37 defines the Preconfiguration Data for the Table Table.
Table 37 contains Optional rows designated with (O).
*TT1 means that only one of the two K_AES* tables is required
Refer to section 5.3 for a description
RecommendedAccessGranularity columns.

andrequirements

of

the

MandatoryWriteGranularity

andGranularity
RecommendedAccess"SPTemplates"

Object0

000 00 00 01
00 00 00 06"MethodID"

Object0

000 00 00 01
00 00 00 07"AccessControl"

Object0

000 00 00 01
00 00 00 08"ACE"

Object0

000 00 00 01
00 00 00 09"Authority"

Object0

000 00 00 01
00 00 00 0B"C_PIN"

Object00

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 45© TCG 2022

Granularity

MandatoryWrite

00 00 00 01
00 00 00 03

MaxSize

0

MinSize0

LastID

Object

RowBytes"SPInfo"RowsFree00 00 00 01
00 00 00 02

Rows

0

NumColumns

0

ColumnObjectKind"Table"TemplateID

Name

00 00 00 01
00 00 00 01

CommonName

UID

Table 37 Locking SP - Table Table Preconfiguration

Granularity
RecommendedAccess"Locking"

Object0

000 00 00 01
00 00 08 03"MBRControl"

Object0

000 00 00 01
00 00 08 04

"MBR"

Byte

VU

VU

"K_AES_128”

Object00"K_AES_256"

Object00"DataStore"

Byte

VU

VU

00 00 00 01
00 00 08 05

0x08000000
min

Granularity

MandatoryWrite

00 00 00 01
00 00 08 02

MaxSize

0

MinSize0

LastID

Object

RowBytes"LockingInfo"

RowsFree00 00 00 01
00 00 08 01

Rows

0

NumColumns

0

ColumnObjectKind"SecretProtect"TemplateID

Name

00 00 00 01
00 00 00 1D

CommonNameUID

TCG Storage Security Subsystem Class: Opal

*TT1
00 00 00 01
00 00 08 06*TT1
00 00 00 01
00 00 10 01

0x00A00000
min

4.3.1.4 Type (N)The Type table is not required (N) by Opal. The following types as defined by [2] SHALL meet the following
requirements:••

The "boolean_ACE" type (00000005 0000040E) SHALL include the OR Boolean operator.
The "AC_element" type (00000005 00000801) SHALL support at least 23 entries (8 User authorities, 4 Admin
authorities, and 11 Boolean operators).

4.3.1.5 MethodID (M)The MethodID Table is defined in [2], and Table 38 defines the Preconfiguration Data for the MethodID Table.
*MT1 means refer to section 5.1.2.3 for details on the requirements for supporting RevertSP.
Table 38 Locking SP - MethodID Table Preconfiguration

UID

Name

00 00 00 06
00 00 00 08"Next"

CommonName

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedTemplateID

Page 46© TCG 2022

TCG Storage Security Subsystem Class: Opal

UID

Name

00 00 00 06
00 00 00 0D"GetACL"00 00 00 06
00 00 00 10"GenKey"

00 00 00 06
00 00 00 11

CommonName

TemplateID"RevertSP"*MT1
00 00 00 06
00 00 00 16"Get"

00 00 00 06
00 00 00 17"Set"

00 00 00 06
00 00 00 1C"Authenticate"00 00 00 06
00 00 06 01“Random”

4.3.1.6 AccessControl (M)Table 39 contains Optional rows designated with (O).
Start of Informative Comment*AC1: refer to section 5.1.2.3 for details on the requirements for supporting RevertSP*AC8: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the SecretProtect object UIDs
End of Informative Comment*AC2: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the Table object UIDs
*AC3: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the SPTemplates object UIDs
*AC4: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the MethodID object UIDs
*AC5: the notation of “TT TT TT TT” represents a shorthand for the LSBs of the ACE object UIDs
*AC6: only K_AES_128 or K_AES_256 related rows are Mandatory*AC7: the notation of “TT TT TT TT” represents a shorthand for the LSB of the Authority object UIDs
Notes:••The AccessControl Table is different from any other table defined in this specification. Although cells in thistable are marked as Read-Only with fixed access control, the access control for invocation of the Get
method is (N).
The ACL column is readable only via the GetACL method.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 47© TCG 2022

00 00 00 02
00 00 00 01

SPInfoObj

Get

ACE_Anybody

ACE_Anybody

SPTemplates

Next

ACE_Anybody

ACE_Anybody

SPTemplates

00 00 00 03
00 00 00 00

Next

Table

00 00 00 01
00 00 00 00

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody ACE_Anybody

ACE_Anybody ACE_Anybody

Get

TableObj*AC2

00 00 00 01
TT TT TT TT

Authenticate

ThisSP00 00 00 00
00 00 00 01

ACE_Anybody ACE_Anybody

RandomThisSP00 00 00 00
00 00 00 01

ACE_Anybody ACE_Anybody ACE_Anybody

ACE_Admin

RevertSPThisSP00 00 00 00
00 00 00 01*AC1

Page 48

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

Table 39 Locking SP - AccessControl Table Preconfiguration

SP

Table

SPInfo© TCG 2022

ACEObj
Get

ACE_ACE_Get_All

Set

Next

ACE

00 00 00 08
00 00 00 00

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpressio
ACE_ACE_Get_All ACE_Anybodyn00 00 00 08
TT TT TT TT*AC500 00 00 08
00 03 80 00

ACE_Anybody

ACE_Anybody

Get

MethodIDObj

00 00 00 06
TT TT TT TT*AC4

ACE_Anybody

ACE_Anybody

Next

MethodID

00 00 00 06
00 00 00 00

InvokingID

ACE_Anybody

ACE_Anybody

Get

Page 49

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

SPTemplatesObj InvokingID Name
- informative only

*AC300 00 00 03
TT TT TT TT

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

MethodID

ACE© TCG 2022

00 00 00 08
00 03 A8 00 (+MMMM)

Set

Set

ACE_C_PIN_User1_Set_PIN

00 00 00 08
00 03 A8 01

Set

ACE_Authority_Get_All

00 00 00 08
00 03 90 00

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_Anybody

Page 50

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_ACE_Set_BooleanExpressio ACE_ACE_Set_BooleanExpressio
ACE_ACE_Set_BooleanExpressio
ACE_ACE_Set_BooleanExpression
ACL
n
n
n

Set

ACE_User1_Set_CommonName ACE_C_PIN_UserMMMM_Set_PI
N

00 00 00 08
00 04 40 01

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

00 00 00 08
00 03 B0 00*AC600 00 00 08
00 04 40 00 (+MMMM)

InvokingID

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

Page 51

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

ACE_K_AES_128_Range1_GenKey ACE_K_AES_128_GlobalRange_GenKe ACE_UserMMMM_Set_CommonName InvokingID Namey- informative only

*AC600 00 00 08
00 03 B0 01

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

00 00 00 08
00 03 B8 00

*AC6

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_K_AES_256_Range1_GenKey ACE_K_AES_256_GlobalRange_GenKey*AC600 00 00 08
00 03 B8 01

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_K_AES_128_RangeNNNN_GenKey

00 00 00 08
00 03 B0 00 (+NNNN)*AC6Page 52

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

ACE_Locking_GlobalRange_Get_
RangeStartToActiveKey
Set

ACE_Locking_Range1_Get_
RangeStartToActiveKey
Set

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression ACE_ACE_Set_BooleanExpression

00 00 00 08
00 03 D0 00

00 00 00 08
00 03 D0 01

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_K_AES_256_RangeNNNN_GenKey

00 00 00 08
00 03 B8 00 (+NNNN)*AC6Page 53

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

00 00 00 08
00 03 E0 00

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_Locking_Range1_Set_RdLocked ACE_Locking_GlobalRange_Set_RdLocked00 00 00 08
00 03 E0 01

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

Page 54

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_ACE_Set_BooleanExpression ACL

Set

ACE_Locking_RangeNNNN_Get_
RangeStartToActiveKey

00 00 00 08
00 03 D0 00 (+NNNN)

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

00 00 00 08
00 03 E8 00

00 00 00 08
00 03 E0 00 (+NNNN)

InvokingID

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

Page 55

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

ACE_Locking_Range1_Set_WrLocked ACE_Locking_GlobalRange_Set_WrLocke ACE_Locking_RangeNNNN_Set_RdLocked InvokingID Named- informative only

00 00 00 08
00 03 E8 01

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

00 00 00 08
00 03 E8 00 (+NNNN)

InvokingID

Set

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

Page 56

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

ACE_MBRControl_Set_DoneToDOR ACE_Locking_RangeNNNN_Set_WrLocked InvokingID Name
- informative only

00 00 00 08
00 03 F8 01

ACE_ACE_Set_BooleanExpression ACE_ACE_Set_BooleanExpression

Set

ACE_DataStore_Get_All

00 00 00 08
00 03 FC 00

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

Next

ACE_Anybody

Get

ACE_Authority_Get_All,
ACE_Anybody_Get_CommonName

ACE_Anybody

Set

ACE_Admins_Set_CommonName

ACE_Anybody

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

Authority

AuthorityObj

Admin100 00 00 09
00 00 00 00

00 00 00 09
TT TT TT TT*AC700 00 00 09
00 01 00 01

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

Page 57

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_ACE_Set_BooleanExpression ACL

Set

ACE_DataStore_Set_All

00 00 00 08
00 03 FC 01

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

Authority© TCG 2022

User1Set

UserMMMM

Set

Set

AdminXXXX

00 00 00 09
00 01 00 00 (+XX XX)

Set

Admin200 00 00 09
00 01 00 02

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_Anybody

Page 58

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_Authority_Set_Enabled,
ACE_Authority_Set_Enabled,
ACE_Authority_Set_Enabled,
ACE_Authority_Set_Enabled,
ACL
ACE_UserMMMM_Set_CommonNam
ACE_Admins_Set_CommonNam
ACE_User1_Set_CommonName
ACE_Admins_Set_CommonNameee00 00 00 09
00 03 00 01

00 00 00 09
00 03 00 00 (+MMMM)

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

Get

Get

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

Get

C_PIN_Admin100 00 00 0B
00 01 00 01

Next

C_PIN

00 00 00 0B
00 00 00 00

ACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_C_PIN_Admins_Get_All_NOPI ACE_C_PIN_Admins_Get_All_NOPI
ACE_Anybody
N
N

C_PIN_AdminXXXX

C_PIN_User1

ACE_C_PIN_Admins_Get_All_NOPIN

00 00 00 0B
00 01 00 00 (+ XX XX)

00 00 00 0B
00 03 00 01

Page 59

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

C_PIN

© TCG 2022

C_PIN_AdminXXXXSet

C_PIN_User1Set

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_Anybody

ACE_C_PIN_User1_Set_PIN ACE_C_PIN_Admins_Set_PIN

00 00 00 0B
00 01 00 00 (+XX XX)

00 00 00 0B
00 03 00 01

Get

C_PIN_UserMMMM

00 00 00 0B
00 03 00 00 (+MM MM)

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

ACE_Anybody

Page 60

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_C_PIN_Admins_Set_PI ACE_C_PIN_Admins_Get_All_NOPI
ACL
N
N

Set

C_PIN_Admin100 00 00 0B
00 01 00 01

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

Page 61

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_C_PIN_UserMMMM_Set_PIN ACL

Set

C_PIN_UserMMMM

00 00 00 0B
00 03 00 00 (+MM MM)

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

00 00 08 02
00 00 00 00
Locking
Next

ACE_Anybody

ACE_Anybody

00 00 08 02
00 00 00 01

Locking_GlobalRange

Get

ACE_Locking_GlobalRange_Get_
RangeStartToActiveKey,
ACE_Anybody_Get_CommonName

ACE_Anybody

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_Anybody

Get

LockingInfoObj

00 00 08 01
00 00 00 01

ACE_Anybody

ACE_Anybody

Get

SecretProtectObj

00 00 00 1D
TT TT TT TT*AC8

ACE_Anybody

ACE_Anybody

Next

SecretProtect

00 00 00 1D
00 00 00 00

Page 62

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

SecretProtect

LockingInfo

Locking© TCG 2022

Locking_RangeNNNN
Get

Locking_GlobalRange
Set

Get

Locking_Range1

00 00 08 02
00 03 00 01

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_Anybody

ACE_Anybody

Page 63

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_Locking_GlblRng_Admins_Set,
ACE_Locking_RangeNNNN_Get_
ACE_Locking_Range1_Get_
ACL
ACE_Locking_GlobalRange_Set_RdLocked,
RangeStartToActiveKey,
RangeStartToActiveKey,
ACE_Locking_GlobalRange_Set_WrLocked, ACE_Anybody_Get_CommonName ACE_Anybody_Get_CommonName
ACE_Admins_Set_CommonName

00 00 08 02
00 03 00 00 (+NN NN)

00 00 08 02
00 00 00 01

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

Set

ACE_Locking_Admins_RangeStartToLOR,
ACE_Locking_Range1_Set_RdLocked,
ACE_Locking_Range1_Set_WrLocked,
ACE_Admins_Set_CommonName

Set

ACE_Locking_Admins_RangeStartToLOR,
ACE_Locking_RangeNNNN_Set_RdLocked,
ACE_Locking_RangeNNNN_Set_WrLocked,
ACE_Admins_Set_CommonName

ACE_Anybody

Get

ACE_Anybody

ACE_Anybody

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

Locking_Range1

Locking_RangeNNNN

MBRControlObj

00 00 08 02
00 03 00 01

00 00 08 02
00 03 00 00 (+NN NN)

MBRControl

00 00 08 03
00 00 00 01

Page 64

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

00 00 08 04
00 00 00 00
MBR
Set

ACE_Admin

ACE_Anybody

K_AES_128_GlobalRange_Key

Get

ACE_K_AES_Mode

ACE_Anybody

K_AES_128

00 00 08 05
00 00 00 01

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_Anybody

Get

MBR

00 00 08 04
00 00 00 00

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

Page 65

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_MBRControl_Admins_Set,
ACL
ACE_MBRControl_Set_DoneToDOR

Set

MBRControlObj

00 00 08 03
00 00 00 01

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

MBR

© TCG 2022

00 00 08 05
00 03 00 00 (+NN NN)
K_AES_128_RangeNNNN_Key
Get

ACE_K_AES_Mode

ACE_Anybody

00 00 08 05
00 00 00 01

K_AES_128_GlobalRange_Key

GenKey

ACE_K_AES_128_GlobalRange_GenKey

ACE_Anybody

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_K_AES_ModeGet

K_AES_128_Range1_Key

00 00 08 05
00 03 00 01

Page 66

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

00 00 08 05
00 03 00 00 (+NN NN)
K_AES_128_RangeNNNN_Key
GenKey

ACE_K_AES_128_RangeNNNN_GenKey

ACE_Anybody

K_AES_256_GlobalRange_Key

Get

ACE_K_AES_Mode

ACE_Anybody

K_AES_256

00 00 08 06
00 00 00 01

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_K_AES_128_Range1_GenKey

GenKeyK_AES_128_Range1_Key

00 00 08 05
00 03 00 01

Page 67

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

00 00 08 06
00 03 00 00 (+NN NN)
K_AES_256_RangeNNNN_Key
Get

ACE_K_AES_Mode

ACE_Anybody

00 00 08 06
00 00 00 01
K_AES_256_GlobalRange_Key
GenKey

ACE_K_AES_256_GlobalRange_GenKey

ACE_Anybody

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

ACE_K_AES_ModeGet

K_AES_256_Range1_Key

00 00 08 06
00 03 00 01

Page 68

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

00 00 08 06
00 03 00 00 (+NN NN)
K_AES_256_RangeNNNN_Key
GenKey

ACE_K_AES_256_RangeNNNN_GenKey

ACE_Anybody

DataStore

Get

ACE_DataStore_Get_All

ACE_Anybody

DataStore

00 00 10 01
00 00 00 00

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | PublishedACE_Anybody

Page 69

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_K_AES_256_Range1_GenKey ACL

GenKeyK_AES_256_Range1_Key

00 00 08 06
00 03 00 01

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

© TCG 2022

LogToDeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACLACE_Anybody

RemoveACEACL

AddACEACL

Log

ACE_DataStore_Set_All ACL

CommonName

MethodID
Set

InvokingID Name
- informative only
DataStore

InvokingID
00 00 10 01
00 00 00 00

UID- informative only

Table Association

TCG Storage Security Subsystem Class: Opal

4.3.1.7 ACE (M)
Table 40 contains Optional rows designated with (O).
*ACE1 means that the TPer SHALL support the values of “Admins” and “Admins OR UserMMMM” in the BooleanExpr
column of each ACE_C_PIN_UserMMMM_Set_PIN ACE. The TPer SHALL fail the Set method invocation with status
INVALID_PARAMETER if the host attempts to set a value not supported by the TPer.

Name

BooleanExpr

Columns

CommonName

UID-Informative Column

Table Association

Table 40 Locking SP - ACE Table Preconfiguration

00 00 00 08
00 00 00 01"ACE_Anybody"

AnybodyAll

00 00 00 08
00 00 00 02"ACE_Admin"

AdminsAll

00 00 00 08
00 00 00 03"ACE_Anybody_Get_CommonName"

Anybody

UID, CommonName

00 00 00 08
00 00 00 04"ACE_Admins_Set_CommonName"

AdminsCommonName

00 00 00 08
00 03 80 00"ACE_ACE_Get_All"

AdminsAll

00 00 00 08
00 03 80 01"ACE_ACE_Set_BooleanExpression"

AdminsBooleanExpr

Base ACEs

ACE

Authority

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 70© TCG 2022

Name

BooleanExpr

Columns

CommonName

UID

Table Association-Informative Column

TCG Storage Security Subsystem Class: Opal

00 00 00 08
00 03 90 00"ACE_Authority_Get_All"

AdminsAll

00 00 00 08
00 03 90 01"ACE_Authority_Set_Enabled"

AdminsEnabled00 00 00 08
00 04 40 01"ACE_User1_Set_CommonName"

AdminsCommonName

00 00 00 08
00 04 40 00(+NN NN)"ACE_UserMMMM_Set_CommonName"

AdminsCommonName

00 00 00 08
00 03 A0 00"ACE_C_PIN_Admins_Get_All_NOPIN"

Admins

UID, CharSet, TryLimit,
Tries, Persistence

00 00 00 08
00 03 A0 01"ACE_C_PIN_Admins_Set_PIN"

Admins

PIN

00 00 00 08
00 03 A8 01"ACE_C_PIN_User1_Set_PIN"

C_PIN

(O)

00 00 00 08
00 03 A8 00(+MMMM)

Admins OR User1
*ACE1

PIN

Admins OR"ACE_C_PIN_UserMMMM_Set_PIN"

UserMMMM

PIN

*ACE1

K_AES
00 00 00 08"ACE_K_AES_Mode"

AnybodyMode00 00 00 08
00 03 B0 00"ACE_K_AES_128_GlobalRange_
GenKey"AdminsAll

00 00 00 08
00 03 B0 01"ACE_K_AES_128_Range1_
GenKey"AdminsAll

00 00 00 08
00 03 B0 00(+NNNN)"ACE_K_AES_128_RangeNNNN_
GenKey"AdminsAll

00 03 BF FF
K_AES_128(O)

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 71© TCG 2022

Name

BooleanExpr

Columns

CommonName

UID-Informative Column

Table Association

TCG Storage Security Subsystem Class: Opal

00 00 00 08
00 03 B8 00"ACE_K_AES_256_GlobalRange_
GenKey"AdminsAll

00 00 00 08
00 03 B8 01"ACE_K_AES_256_Range1_
GenKey"AdminsAll

00 00 00 08
00 03 B8 00(+NNNN)"ACE_K_AES_256_RangeNNNN_
GenKey"AdminsAll

AdminsRangeStart,
RangeLength,
ReadLockEnabled,
WriteLockEnabled,
ReadLocked,
WriteLocked,
LockOnReset,
ActiveKey

AdminsRangeStart,
RangeLength,
ReadLockEnabled,
WriteLockEnabled,
ReadLocked,
WriteLocked,
LockOnReset,
ActiveKey

K_AES_256

Locking

00 00 00 08
00 03 D0 00

00 00 00 08
00 03 D0 01"ACE_Locking_GlobalRange_Get_
RangeStartToActiveKey""ACE_Locking_Range1_Get_
RangeStartToActiveKey"

00 00 00 08
00 03 D0 00(+NNNN)"ACE_Locking_RangeNNNN_Get_
RangeStartToActiveKey"

AdminsRangeStart,
RangeLength,
ReadLockEnabled,
WriteLockEnabled,
ReadLocked,
WriteLocked,
LockOnReset,
ActiveKey

00 00 00 08
00 03 E0 00"ACE_Locking_GlobalRange_Set_RdLocked"

AdminsReadLocked

00 00 00 08
00 03 E0 01"ACE_Locking_Range1_Set_RdLocked"

AdminsReadLocked

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 72© TCG 2022

Name

BooleanExpr

Columns

CommonName

UID-Informative Column

Table Association

TCG Storage Security Subsystem Class: Opal

00 00 00 08
00 03 E0 00(+NNNN)"ACE_Locking_RangeNNNN_Set_RdLocked"

AdminsReadLocked

00 00 00 08
00 03 E8 00"ACE_Locking_GlobalRange_Set_WrLocked"

AdminsWriteLocked

00 00 00 08
00 03 E8 01"ACE_Locking_Range1_Set_WrLocked"

AdminsWriteLocked

00 00 00 08
00 03 E8 00(+NNNN)"ACE_Locking_RangeNNNN_Set_WrLocked"

AdminsWriteLocked

AdminsReadLockEnabled,
WriteLockEnabled,
ReadLocked,
WriteLocked,
LockOnReset

00 00 00 08
00 03 F0 00"ACE_Locking_GlblRng_Admins_Set"

00 00 00 08
00 03 F0 01"ACE_Locking_Admins_RangeStartToLOR"

AdminsRangeStart,
RangeLength,
ReadLockEnabled,
WriteLockEnabled,
ReadLocked,
WriteLocked,
LockOnReset

00 00 00 08
00 03 F8 00"ACE_MBRControl_Admins_Set"

AdminsEnable, Done,
DoneOnReset

00 00 00 08
00 03 F8 01"ACE_MBRControl_Set_DoneToDOR"

AdminsDone, DoneOnReset

00 00 00 08
00 03 FC 00"ACE_DataStore_Get_All"

AdminsAll

00 00 00 08
00 03 FC 01"ACE_DataStore_Set_All"

AdminsAll

MBRControl

DataStore

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 73© TCG 2022

TCG Storage Security Subsystem Class: Opal

4.3.1.8 Authority (M)Table 41 contains Optional rows designated with (O).
Notes:
1. Admin1 is required; Admin2 to Admin4 are required but disabled in OFS state.
Any additional Admin authorities are (O).
2. User1 through User8 SHALL be implemented.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

LogTo

Log

Uses

Limit

ClockEnd

ClockStart

ResponseExch
Null
Null
Null
Null
Null

Null

ResponseSign

Credential
Null

Null
Null
Null
Null
Null
Null

None
Password
Password

Null

F

C_PIN_Admin4 C_PIN_Admin3 C_PIN_Admin2 C_PIN_Admin1

Password

Operation

F

None

F

Password

PresentCertificate

HashAndSign
None
None
None

Admins

F

F

None

F

F

None

Admins

F

F

None

F

SecureAdmins

F

None

F

None

AdminsF

None

Enabled

F

None

Class
Null
Null
AdminsT

None

IsClassF

None

CommonName
""
""

(O)

""

00 00 00 09
00 01 00 00(+XX XX)1T"""Admin3"00 00 00 09
00 01 00 04

T"""Admin2"00 00 00 09
00 01 00 03

T"""Admin1"

00 00 00 09
00 01 00 02

F"""Admins"

00 00 00 09
00 01 00 01"AdminXXXX"

00 00 00 09
00 00 00 02"Admin4"00 00 00 09
00 00 00 01"Anybody" NameUID

Table 41 Locking SP - Authority Table Preconfiguration

Page 74© TCG 2022

LogTo

Log

Uses

Limit

ClockEnd

ClockStart

ResponseExch
Null

Null

Null

ResponseSign
Null
Null
Null

Credential
Null
C_PIN_UserMMMM C_PIN_User1

Operation
Password

F

None

F

Password

PresentCertificate

HashAndSign
None
None

SecureEnabled

Users

F

None

Class
Null
Users

F

None

IsClassF

None

CommonName

F

F

None

(O)

""

"User1"00 00 00 09
00 03 00 00(+MM MM)2T"""Users"00 00 00 09
00 03 00 01

T

""

Name

00 00 00 09
00 03 00 00"UserMMMM"UID

TCG Storage Security Subsystem Class: Opal

4.3.1.9 C_PIN (M)
Table 42 includes Optional rows designated with (O)Notes:
1. If the Locking SP's original life cycle state is Manufactured-Inactive, see 5.1.1.2 for the initial value of
C_PIN_Admin1.PIN. If the Locking SP's original life cycle state is Manufactured, then the initial value of
C_PIN_Admin1.PIN is the same as the Admin SP's C_PIN_MSID.PIN value.
Table 42 Locking SP - C_PIN Table Preconfiguration

UID

Name

00 00 00 0B
00 01 00 01

PIN

CharSet

TryLimit

Tries

Persistence"C_PIN_Admin1"

SID or
MSID1

Null

0

0

FALSE

00 00 00 0B
00 01 00 02"C_PIN_Admin2"

“”

Null

0

0

FALSE

00 00 00 0B
00 01 00 03"C_PIN_Admin3"

“”

Null

0

0

FALSE

00 00 00 0B
00 01 00 04"C_PIN_Admin4"

“”

Null

0

0

FALSE

"C_PIN_AdminXXXX"

“”

Null

0

0

FALSE

00 00 00 0B
00 01 00 00(+XX XX)

CommonName(O)

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 75© TCG 2022

TCG Storage Security Subsystem Class: Opal

UID

Name

00 00 00 0B
00 03 00 01
00 00 00 0B
00 03 00 00(+MM MM)

CommonName

PIN

CharSet

TryLimit

Tries

Persistence"C_PIN_User1"

“”

Null

0

0

FALSE

"C_PIN_UserMMMM"

“”

Null

0

0

FALSE

(O)

4.3.1.10 SecretProtect (M)At least one of the objects shown in Table 433 SHALL be supported
Table 43 Locking SP - SecretProtect Table Preconfiguration

UID
00 00 00 1D
00 00 00 1D

00 00 00 1D
00 00 00 1E

Table

ColumnNumber

ProtectMechanisms

0x03

VU

0x03

VU

00 00 00 01
00 00 08 05(K_AES_128)
00 00 00 01
00 00 08 06(K_AES_256)

Note: The “VU” entries in Table 43 indicate that this specification does not require a specific value to be reported in
the ProtectMechanisms cell. It is NOT a requirement to report the “Vendor Unique” protect_types value (Refer to[2] for details).

4.3.2 Base Template Methods
Refer to section 4.3.1.5 for supported methods.

4.3.3 Crypto Template Tables
An Opal SSC compliant Storage Device is not required to support any Crypto template tables.

4.3.4 Crypto Template Methods
Refer to section 4.3.1.5 for supported methods.
4.3.4.1 Random
Refer to section 4.2.9.1 for additional constraints imposed on the Random method.

4.3.5 Locking Template Tables
4.3.5.1 LockingInfo (M)The LockingInfo table has the columns defined in Table 44, in addition to those defined in [2]:TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 76© TCG 2022

TCG Storage Security Subsystem Class: Opal

Table 44 Locking SP – LockingInfo Columns

•

•
•
•

Column Number

Column Name

IsUniqueColumn Type

0x07

AlignmentRequired

boolean0x08

LogicalBlockSize

uinteger_4

0x09

AlignmentGranularity

uinteger_8

0x0A

LowestAlignedLBA

uniteger_8

AlignmentRequired
This column indicates whether the TPer requires ranges in the Locking table to be aligned (see section
4.3.5.2.1). If AlignmentRequired is TRUE, then the TPer requires ranges to be aligned. If AlignmentRequired
is FALSE, then the TPer does not require ranges to be aligned.
This column SHALL NOT be modifiable by the host and MAY be retrieved by Anybody.
LogicalBlockSize
This column indicates the number of bytes in a logical block.
This column SHALL NOT be modifiable by the host and MAY be retrieved by Anybody.
AlignmentGranularity
This column indicates the number of logical blocks in a group, for alignment purposes (see section 5.4).
This column SHALL NOT be modifiable by the host and MAY be retrieved by Anybody.
LowestAlignedLBAThis column indicates the lowest logical block address that is located at the beginning of an alignment
granularity group (see section 5.4).
This column SHALL NOT be modifiable by the host and MAY be retrieved by Anybody.

LowestAlignedLBA

AlignmentGranularity

LogicalBlockSize

AlignmentRequired

81

KeysAvailableCfg

Media Encryption

MaxReEncryptions

Version

MaxRanges

00 00 08 01
00 00 00 01

EncryptSupport

UID

Name

Table 45 Locking SP - LockingInfo Table Preconfiguration

Note:
1. The MaxRanges column in Table 45 specifies the number of supported ranges and SHALL have a minimumof 8 ranges.
4.3.5.2 Locking (M)Table 46 contains Optional rows designated with (O).
*LT1 means that the ActiveKey can be a K_AES_128 object reference (UID) or a K_AES_256 object reference (UID)*LT2 means that only a limited set of LockOnReset values is required to be supported by Opal SSC SDs. Refer tosection 4.3.5.2.2 for details.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 77© TCG 2022

TCG Storage Security Subsystem Class: Opal

F

Power Cycle
*LT2

0

0

F

F

F

F

Power Cycle*LT2

Power Cycle*LT2

GeneralStatusF

LastReEncStateF

LastReEncryptLBA

F

ContOnReset0

VerifyMode0

AdvKeyMode

WriteLockedF

ReEncyptRequest

ReadLockedF

ReEncryptState

WriteLockEnabledF

NextKey

ReadLockEnabledF

K_AES_128[256]_RangeNNNN_Key K_AES_128[256]_Range1_Key K_AES_128[256]_GlobalRange_Key ActiveKey
*LT1
*LT1
*LT1

RangeLength
0

LockOnReset

RangeStart"Locking_RangeNNNN"

CommonName"Locking_Range1"

00 00
08 02
00 03
NN
NN

""

"Locking_GlobalRange"

00 00
08 02
00 03
00 01

0

""

Name

00 00
08 02
00 00
00 01

""

UID

Table 46 Locking SP - Locking Table Preconfiguration

4.3.5.2.1 Geometry Reporting Feature Behavior
The following behaviors SHALL be implemented.
4.3.5.2.1.1 RangeStart Behavior
This column value defines the starting LBA value for this range. In non-Global Range rows, this column MAY be
modifiable based on access control settings. Changes to this column are subject to the same constraints andchecks defined for this column when rows of the Locking table are created (see [2]).

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 78© TCG 2022

TCG Storage Security Subsystem Class: Opal

When processing a Set method or CreateRow method on the Locking table for a non-Global Range row, if:a) the AlignmentRequired column in the LockingInfo table is TRUE;b) RangeStart is non-zero; andc)StartAlignment (see Figure 1) is non-zero,then the method SHALL fail and return an error status code INVALID_PARAMETER.
Figure 1 – StartAlignment Calculation

StartAlignment = (RangeStart - LowestAlignedLBA) modulo AlignmentGranularity
where:
LowestAlignedLBA and AlignmentGranularity are columns in the LockingInfo table (seesection 4.3.5.1)

4.3.5.2.1.2 RangeLength Behavior
This column value defines the quantity of contiguous LBAs for this LBA range (starting with the value defined in the
RangeStart column). In non-Global Range rows, this column MAY be modifiable based on access control settings.
Changes to this column are subject to the same constraints and checks defined for this column when rows of the
Locking table are created (see [2]).
When processing a Set method or CreateRow method on the Locking table for a non-Global Range row, if:a) the AlignmentRequired column in the LockingInfo table is TRUE;b) RangeLength is non-zero; andc)LengthAlignment (see Figure 2) is non-zero,then the method SHALL fail and return an error status code INVALID_PARAMETER.
Figure 2 - LengthAlignment Calculation

If RangeStart is zero, thenLengthAlignment = (RangeLength - LowestAlignedLBA) modulo AlignmentGranularity
If RangeStart is non-zero, thenLengthAlignment = (RangeLength modulo AlignmentGranularity)
where:
LowestAlignedLBA and AlignmentGranularity are columns in the LockingInfo table (see section
4.3.5.1)

4.3.5.2.2 LockOnReset Restrictions
The TPer SHALL support the following LockOnReset column values:a)b){ 0 } (i.e. Power Cycle); and{ 0, 3 } (i.e. Power Cycle and Programmatic).

Additionally, the TPer MAY support the following LockOnReset column values:a) { 0, 1 } (i.e. Power Cycle and Hardware Reset); andTCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 79© TCG 2022

TCG Storage Security Subsystem Class: Opalb)

{ 0,1, 3 } (i.e. Power Cycle, Hardware Reset and Programmatic).

4.3.5.3 MBRControl (M)The MBRControl Table is defined in [2], and Table 47 defines the Preconfiguration Data for the MBRControl Table.
*MC1 means that only a limited set of DoneOnReset values is required to be supported by Opal SSC Storage Devices.
Refer to section 4.3.5.3.1 for details.
Table 47 Locking SP - MBRControl Table Preconfiguration

UID

EnableDone

DoneOnReset

00 00 08 03 00 00 00 01

False

False

Power Cycle*MC1

4.3.5.3.1 DoneOnReset Restrictions
The TPer SHALL support the following DoneOnReset column values:a)b){ 0 } (i.e. Power Cycle); and{ 0, 3 } (i.e. Power Cycle and Programmatic).

Additionally, the TPer MAY support the following DoneOnReset column values:a) { 0, 1 } (i.e. Power Cycle and Hardware Reset); andb) { 0,1, 3 } (i.e. Power Cycle, Hardware Reset and Programmatic).
4.3.5.4 MBR (M)The MBR minimum size SHALL be 128 MB (0x08000000).
The initial contents of the MBR table SHALL be vendor unique.
4.3.5.5 K_AES_128 or K_AES_256 (M)At least one of the following tables Table 48 or Locking SP - K_AES_256 Table PreconfigurationTable 49 SHALL be
supported.
Table 48 contains Optional rows designated with (O).
*K1 means that a field is indirectly writable using the GenKey Method.

UID

Name

Key

Mode

CommonName

Table 48 Locking SP - K_AES_128 Table Preconfiguration

00 00 08 05 00 00 00 01"K_AES_128_GlobalRange_Key"

VU
*K1

VU

00 00 08 05 00 03 00 01"K_AES_128_Range1_Key"

VU
*K1

VU

00 00 08 05 00 03 NN NN"K_AES_128_RangeNNNN_Key"VU

VU

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 80© TCG 2022

(O)

Mode

Key

CommonName

UID

Name

TCG Storage Security Subsystem Class: Opal

*K1

VU

Mode

"K_AES_256_GlobalRange_Key"

Key

Name

00 00 08 0600 00 00 01

CommonName

UID

Table 49 Locking SP - K_AES_256 Table Preconfiguration

VU*K1
00 00 08 06
00 03 00 01
00 00 08 06
00 03 NN NN"K_AES_256_Range1_Key"

VU

VU

*K1

"K_AES_256_RangeNNNN_Key"

(O)

VU

VU

*K1

4.3.6 Locking Template Methods
Refer to Section 4.3.1.5 for supported methods.

4.3.7 SD Read/Write Data Command Locking Behavior Interactions with Range Crossing
If an SD receives a read or write command that spans multiple Locking ranges and the Locking ranges are notlocked, the SD SHALL either:•

Process the data transfer as defined in [2], if Range Crossing Behavior bit is set to zero (in Level 0 Discovery
Opal SSC V2 Feature, see section 3.1.1.5)
OR•

Terminate the command with “Other Invalid Command Parameter” as defined in [4],if Range Crossing Behavior bit is set to one (in Level 0 Discovery Opal SSC V2 Feature, see section
3.1.1.5).

4.3.8 Non Template Tables
4.3.8.1 DataStore (M)The DataStore is a byte table. It can be used by the host for generic secure data storage. The DataStore table SHALL
be at least 10MB in size (the Table table object that represents the DataStore table SHALL have a Rows column
value of at least 0x00A00000). The access control for modification or retrieval of data in the table initially requires amember of the Admins class authority. These access control settings are personalizable. The Initial DataStore content
value is VU.
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 81© TCG 2022

TCG Storage Security Subsystem Class: Opal

Appendix – SSC Specific Features

5

5.1 Opal SSC-Specific Methods
5.1.1 Activate – Admin Template SP Object Method
Activate is an Opal SSC-specific method for managing the life cycle of SPs created in manufacturing (ManufacturedSP), whose initial life cycle state is “Manufactured-Inactive”. The following pseudo-code is the signature of the
Activate Method (see [2] for more information).
SPObjectUID.Activate[ ]=>[ ]Activate is an object method that operates on objects in the Admin SP’s SP table. The TPer SHALL NOT permit
Activate to be invoked on the SP objects of issued SPs.

Invocation of Activate on an SP object that is in the “Manufactured-Inactive” state causes the SP to transition to the“Manufactured” state. Invocation of Activate on an SP in any other life cycle state SHALL complete successfully
provided access control is satisfied, and have no effect. The Activate method allows the TPer owner to “turn on” an
SP that was created in manufacturing.
This method operates within a Read-Write session to the Admin SP. The SP SHALL be activated immediately after
the method returns success if its invocation is not contained within a transaction.
In case of an “Activate Error” (see [4]) Activate SHALL fail with a status of FAIL.
The MethodID for Activate SHALL be 00 00 00 06 00 00 02 03.
5.1.1.1 Activate Support
Support for Activate within transactions is (N), and the behavior of Activate within transactions is out of the scopeof this specification.
If the Locking SP was created in manufacturing, and its Original Factory State is Manufactured-Inactive (see section
5.2.2), support for Activate on the Locking SP’s object in the SP table is Mandatory.
5.1.1.2 Side effects of Activate
Upon successful activation of an SP that was in the “Manufactured-Inactive” state, the following changes SHALL be
made:
•
•
•

The LifeCycleState column of SP’s object in the Admin SP’s SP table SHALL change to “Manufactured”.
The current SID PIN (C_PIN_SID) in the Admin SP is copied into the PIN column of Admin1’s C_PIN credential(C_PIN_Admin1) in the activated SP. This allows for taking ownership of the SP with a known PIN credential.
Any TPer functionality affected by the life cycle state of the SP based on the SP’s templates is modified as
defined in the appropriate Template reference section of [2], and as defined in the “State transitions for
Manufactured SPs” section (see section 5.2.2.2) and “State behaviors for Manufactured SPs” section (seesection 5.2.2.3) of this specification.

5.1.2 Revert – Admin Template SP Object Method
Revert is an Opal SSC-specific method for managing the life cycle of SPs created in manufacturing (Manufactured
SP). The following pseudo-code is the signature of the Revert Method (see [2] for more information).

SPObjectUID.Revert[ ]=>[ ]TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 82© TCG 2022

TCG Storage Security Subsystem Class: Opal

Revert is an object method that operates on objects in the Admin SP’s SP table. The TPer SHALL NOT permit Revert

to be invoked on the SP objects of issued SPs.
Invoking Revert on an SP object causes the SP to revert to its Original Factory State. This method allows the TPerowner (or TPer manufacturer, if access control permits and the Maker authorities are enabled) to remove the SP
owner’s ownership of the SP and revert the SP to its Original Factory State.
Invocation of Revert is permitted on Manufactured SPs that are in any life cycle state. Successful invocation of Revert
on a Manufactured SP that is in the Manufactured-Inactive life cycle state SHALL have no effect on the SP.
This method operates within a Read-Write session to the Admin SP. The TPer SHALL revert the SP immediately
after the method is successfully invoked outside of a transaction. If Revert is invoked on the Admin SP’s object in the
SP table, the TPer SHALL abort the session immediately after reporting status of the method invocation if invokedoutside of a transaction. The TPer MAY prepare a CloseSession method for retrieval by the host to indicate that thesession has been aborted.
The MethodID for Revert SHALL be 00 00 00 06 00 00 02 02.
5.1.2.1 Revert Support
Support for Revert within transactions is (N), and the behavior of Revert within transactions is out of the scope of thisspecification.
Support for Revert on the Admin SP’s object in the SP table is Mandatory. (Note that the OFS of the Admin SP is
Manufactured, see section 5.2.2).
If the Locking SP was created in manufacturing, support for Revert on the Locking SP’s object in the SP table is
Mandatory.
5.1.2.2 Effects of Revert
Upon successful invocation of the Revert method, the following changes SHALL be made:•If the Locking SP is not in the “Manufactured-Inactive” life cycle state, then successful invocation of the Revert
method on the Locking SP or Admin SP SHALL cause user data removal as defined by the
ActiveDataRemovalMechanism (see Table 34) and cause the media encryption keys to be eradicated, which
has the side effect of securely erasing all data in the User LBA portion of the SD.

•

If the Locking SP is in the “Manufactured-Inactive” life cycle state, then successful invocation of the Revert
method on the Locking SP SHALL NOT cause user data removal in the SD.

Interactions with interface commands during the processing of the Revert method are defined in [4].
If any TCG reset occurs prior to completing user data removal and the eradication of all media encryption keys in theSD, then the Revert operation SHALL be aborted and the Locking SP SHALL NOT revert to its Original Factory State.
Start of Informative Comment
If any TCG reset occurs during the processing of the Revert method, the result of user data removal is undefined andthe TPer does not erase personalization of the Locking SP. For example, the PIN column value for each row in C_PIN
table is unchanged.
End of Informative Comment
Upon completion of user data removal and the eradication of all media encryption keys in the SD, or if the Locking SP
is in the “Manufactured-Inactive” life cycle state, the following changes SHALL be made:••The row in the Admin SP’s SP table that represents the invoked SP SHALL revert to its original factory values.
The SP itself SHALL revert to its Original Factory State. While reverting to its Original Factory State, the TPer
SHALL securely erase all personalization of the SP, and return personalized values to their Original Factory
State values. The mechanism for erasure of personalization is implementation-specific.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 83© TCG 2022

TCG Storage Security Subsystem Class: Opal••

When Revert is successfully invoked on the SP object for the Admin SP (UID = 00 00 02 05 00 00 00 01), theentire TPer SHALL revert to its Original Factory State, including:o All Admin SP personalization with the exception of the PIN column value of the C_PIN_SID object.
See section 5.1.2.2.1 for the effects of Revert upon the PIN column value of the C_PIN_SID object.
o All issued SPs SHALL be deleted, and all Manufactured SPs SHALL revert to Original Factory State.
Manufactured SPs in the “Manufactured-Inactive” life cycle state SHALL NOT be affected.
Any TPer functionality affected by the life cycle state of the SP based on the templates incorporated into it ismodified as defined in the appropriate Template reference section of [2], and as defined in the “Statetransitions for Manufactured SPs” section (see section 5.2.2.2) and “State behaviors for Manufactured SPs”
section (see section 5.2.2.3) of this specification.

Start of Informative Comment
Unless already in the Manufactured-Inactive life cycle state, reverting the Locking SP will cause the media encryption
keys to be eradicated, which has the side effect of securely erasing all data in the User LBA portion of the Storage
Device.
End of Informative Comment

5.1.2.2.1 Effects of Revert on the PIN Column Value of C_PIN_SID
When Revert is successfully invoked on the SP object for the Admin SP (UID = 00 00 02 05 00 00 00 01), the PIN
column value of the C_PIN_SID object SHALL be affected as follows:
1. If the SID authority has never been successfully authenticated, then the C_PIN_SID PIN column SHALL
remain at its current value.
2. If the SID authority has previously been successfully authenticated, then:a) If the value of the “Behavior of C_PIN_SID PIN upon TPer Revert” field in the Opal SSC V2 Feature
Descriptor is 0x00, then the C_PIN_SID PIN column SHALL be set to the PIN column value of the
C_PIN_MSID object. Additionally, the “Initial C_PIN_SID PIN Indicator” field SHALL be set to 0x00
upon completion of the Revert.
b) If the value of the “Behavior of C_PIN_SID PIN upon TPer Revert” field in the Opal SSC V2 Feature
Descriptor is not 0x00, then the C_PIN_SID PIN column SHALL be set to a vendor unique (VU) value.
Start of Informative Comment
In the case where the “Initial C_PIN_SID PIN Indicator” and “Behavior of C_PIN_SID PIN upon TPer Revert” fields
are both 0x00, the above rules for Revert are backward compatible with Opal v1.00.
End of Informative Comment
5.1.2.3 Interrupted Revert
The Revert method and complete implementation of necessary background operations MAY be aborted due to any
reset condition, including power loss.
When interrupted, the Data Removal Operation Interrupted bit SHALL be set to one in the Level 0 Discovery –Supported Data Removal Mechanism feature descriptor appropriately as defined in section 3.1.1.6.2.
Further, the return status value of the Revert method does not mean that all necessary operations, such as the
background deallocate, or trim, or un-map are complete.

5.1.3 RevertSP – Base Template SP Method
RevertSP is an Opal SSC-specific method for managing the life cycle of an SP, if it was created in manufacturing(Manufactured SP). The following pseudo-code is the signature of the RevertSP Method (see [2] for more information).

ThisSP.RevertSP[ KeepGlobalRangeKey = boolean ]=>TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 84© TCG 2022

TCG Storage Security Subsystem Class: Opal

[ ]RevertSP is an SP method in the Base Template.

Invoking RevertSP on an SP SHALL cause it to revert to its Original Factory State. This method allows the SP ownerto relinquish control of the SP and revert the SP to its Original Factory State.
This method operates within a Read-Write session to an SP. The TPer SHALL revert the SP immediately after the
method is successfully invoked outside of a transaction. Upon completion of reverting the SP, the TPer SHALL reportstatus of the method invocation if invoked outside of a transaction, and then immediately abort the session. The TPer
MAY prepare a CloseSession method for retrieval by the host to indicate that the session has been aborted.
The MethodID for RevertSP SHALL be 00 00 00 06 00 00 00 11.
5.1.3.1 RevertSP Support
Support for RevertSP within transactions is (N), and the behavior is out of the scope of this document.
If the Locking SP was created in manufacturing, support for RevertSP on the Locking SP is Mandatory.
5.1.3.2 KeepGlobalRangeKey parameter (Locking Template-specific)
The Optional KeepGlobalRangeKey parameter is a Locking Template-specific parameter. This parameter provides
a mechanism for the Locking SP to be “turned off” without eradicating the media encryption key for the Global Locking
Range. This allows the Locking SP to be disabled without causing removal of the user data associated with the Global
Locking Range.
When this parameter is present and set to True, the TPer SHALL NOT erase data associated with the Global Locking
Range after the Locking SP transitions to the “Manufactured-Inactive” state even if the valid value is set to theActiveDataRemovalMechanism parameter in DataRemovalMechanism table.
If the Global Range is either Read Unlocked or Write Unlocked at the time of invocation of RevertSP, then the
TPer SHALL comply with the request to keep the user data associated with the Global locking range and the Global
Range’s media encryption key.
If the Global Range is Read Locked and Write Locked then invocation of the RevertSP method with the
KeepGlobalRangeKey parameter set to True SHALL fail with status FAIL, and the SP SHALL NOT change life cycle
states.
If the Locking SP was created in manufacturing, support for the KeepGlobalRangeKey parameter is Mandatory for
the Locking SP.
The parameter number for KeepGlobalRangeKey SHALL be 0x060000.
5.1.3.3 Effects of RevertSP
Upon successful invocation of the RevertSP method, the following changes SHALL be made:•If the KeepGlobalRangeKey parameter is not present or set to False, then successful invocation of theRevertSP method on the Locking SP or Admin SP SHALL cause user data removal as defined by the
ActiveDataRemovalMechanism (see Table 34) and cause the media encryption keys to be eradicated, which
has the side effect of securely erasing all data in the User LBA portion of the SD.

•

If the KeepGlobalRangeKey parameter is set to True, then successful invocation of the RevertSP method on
the Locking SP SHALL cause user data removal in the SD all media encryption keys to be eradicated except
for the Global Range’s media encryption key (K_AES_{128,256}_GlobalRange_Key).

Interactions with interface commands during the processing of the RevertSP method are defined in [4].
If any TCG reset occurs prior to completing user data removal and the eradication of media encryption keys in theSD, then the operation SHALL be aborted and the Locking SP SHALL NOT revert to its Original Factory State.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 85© TCG 2022

TCG Storage Security Subsystem Class: Opal

Start of Informative Comment
If any TCG reset occurs during the processing of the RevertSP method, the result of user data removal is undefined.
End of Informative Comment
Upon completion of user data removal and the eradication of media encryption keys in the SD, the following changes
SHALL be made:•••The row in the Admin SP’s SP table that represents the Locking SP SHALL revert to its original factory value.
The Locking SP itself SHALL revert to its Original Factory State. While reverting to its Original Factory State,
the TPer SHALL erase all personalization of the SP, and return the personalized values to their Original
Factory State values. The mechanism for erasure of personalization implementation-specific.
Any TPer functionality affected by the life cycle state of the SP based on the templates incorporated into it ismodified as defined in the appropriate Template reference section of [2], and as defined in the “Statetransitions for Manufactured SPs” section (see section 5.2.2.2) and “State behaviors for Manufactured SPs”
section (see section 5.2.2.3) of this specification.

Start of Informative Comment
Reverting the Locking SP will cause the media encryption keys to be eradicated (except for the GlobalRange key if
the KeepGlobalRangeKey parameter is present and set to True), which has the side effect of securely erasing alldata in the User LBA portion of the Storage Device.
End of Informative Comment
5.1.3.4 Interrupted RevertSP
The RevertSP method and complete implementation of the necessary background operations MAY be aborted due toany reset condition, including power loss.
When interrupted, the Data Removal Operation Interrupted bit SHALL be set to one in the Level 0 Discovery –Supported Data Removal Mechanism feature descriptor appropriately as defined in section 3.1.1.6.2.
Further, the return status value of the RevertSP method does not mean that all necessary operations such as the data
removal operation are complete.

5.2 Life Cycle
5.2.1 Issued vs. Manufactured SPs
5.2.1.1 Issued SPs
For Opal SSC-compliant TPers that support issuance, refer to [2] for the life cycle states and life cycle management.
5.2.1.2 Manufactured SPs
Opal SSC-compliant SPs that are created in manufacturing (Manufactured SPs) SHALL NOT have an implementationspecific life cycle, and SHALL conform to the life cycle defined in section 5.2.2.

5.2.2 Manufactured SP Life Cycle States
The state diagram for Manufactured SPs is shown in Figure 3.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 86© TCG 2022

TCG Storage Security Subsystem Class: Opal

Figure 3 - Life Cycle State Diagram for Manufactured SPs

Manufactured Disabled

Manufactured Inactive

Legend:Mandatory
Optional
Not Required

Manufactured Disabled Frozen

Manufactured
Manufactured Frozen

Manufactured Failed

Additional state transitions may exist depending on the states supported by the SD and the SP’s Original Factory
State. Invoking Revert or RevertSP (see sections 5.1.2 and 5.1.2.3) on the SP will cause the SP to transition back to
its Original Factory State.
The Original Factory State of the Admin SP SHALL be Manufactured. The only state that is Mandatory for the Admin
SP is Manufactured.
If the Locking SP is a Manufactured SP, its Original Factory State SHALL be Manufactured-Inactive.
Support for Locking SP states of Manufactured and Manufactured-Inactive are mandatory.
The other states in the state diagram are beyond the scope of this document.
5.2.2.1 State definitions for Manufactured SPs
1. Manufactured-Inactive: This is the Original Factory State for SPs that are created in manufacturing, where it is
not desired for the functionality of that SP to be active when the TPer is shipped. All templates that exist in an SP
that is in the Manufactured-Inactive state SHALL be counted in the Instances column of the appropriate objects
in the Admin SP’s Template table. Sessions cannot be opened to SPs in the Manufactured-Inactive state. Only
SPs whose Original Factory State was Manufactured-Inactive can return to the Manufactured-Inactive state.
If the Locking SP is a Manufactured SP, support for the Manufactured-Inactive state is Optional for the Locking
SP.
2. Manufactured: This is the standard operational state of a Manufactured SP, and defines the initial required access
control settings of an SP based on the Templates incorporated into the SP, prior to personalization.
The Manufactured state is Mandatory for the Admin SP.
If the Locking SP is a Manufactured SP, support for the Manufactured state is Mandatory for the Locking SP.
5.2.2.2 State transitions for Manufactured SPs
The following sections describe the Mandatory and Optional state transitions for Opal SSC-compliant
Manufactured SPs.
For the Admin SP, the only transition for which support is mandatory is “ANY STATE to ORIGINAL FACTORY STATE”(see section 5.2.2.2.2). As the only mandatory state for the Admin SP is Manufactured, the only mandatory transitionis from Manufactured to Manufactured with the side effect of reverting the entire TPer to its Original Factory State.
See section 5.1.2 for details.
If the Locking SP is a Manufactured SP, support for the “ANY STATE to ORIGINAL FACTORY STATE” transition (seesection 5.2.2.2.2) is Mandatory. Specifically, support for the transition from Manufactured to either Manufactured-

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 87© TCG 2022

TCG Storage Security Subsystem Class: Opal

Inactive or Manufactured is Mandatory, depending on the Locking SP’s Original Factory State. This transition isaccomplished via the Revert or RevertSP method (see sections 5.1.2 and 5.1.2.3).
If the Locking SP’s Original Factory State is Manufactured-Inactive, then support for the “Manufactured-Inactive to
Manufactured” transition (see section 5.2.2.2.1) is Mandatory. This transition is accomplished via the Activate method(see section 5.1.1).
5.2.2.2.1 Manufactured-Inactive to Manufactured
Triggers:•

The Activate method (see section 5.1.1) is successfully invoked on the SP’s object in the Admin SP’s SP table.

Side effects:•••

The value in the LifeCycleState column of the SP’s object in the Admin SP’s SP table changes to
Manufactured.
The current SID PIN (C_PIN_SID) in the Admin SP is copied into the PIN column of Admin1’s C_PIN credential(C_PIN_Admin1) in the activated SP. This allows taking ownership of the SP with a known PIN credential.
Any functionality enabled by the templates incorporated into the SP becomes active.

When the Locking SP transitions from the Manufactured-Inactive state to the Manufactured state (via invocation of
the Activate method), the SD SHALL NOT destroy any user data.
5.2.2.2.2 ANY STATE to ORIGINAL FACTORY STATE
Triggers:•

Revert or RevertSP is successfully invoked on the SP.

Side effects:•••
5.2.2.3

The value in the LifeCycleState column of the SP’s object in the Admin SP’s SP table changes to the valueof the SP’s Original Factory State.
The SP itself reverts to its Original Factory State, as described in sections 5.1.2 and 5.1.3.
If the SP’s Original Factory State was Manufactured-Inactive, any functionality enabled by the templates
incorporated into the SP becomes inactive.
State behaviors for Manufactured SPs

5.2.2.3.1 Manufactured-Inactive
Any functionality enabled by the templates incorporated into the SP is inactive in this state. Sessions cannot be
opened to SPs in this state.
When the Locking SP is in the Manufactured-Inactive state, the Locking SP’s management of the SD's locking andmedia encryption features SHALL be disabled.
5.2.2.3.2 Manufactured
Behavior of an SP in the Manufactured state is identical to the behavior of an SP in the Issued state, as described in[2].
When the Locking SP is in the Manufactured state, the Locking SP’s management of the SD's locking and media
encryption features SHALL be enabled.

5.2.3 Type Table Modification
In order to accommodate the additional life cycle states defined in this specification, the definition of thelife_cycle_state type is changed from [2] to that described in Table 50:
Table 50 LifeCycle Type Table Modification

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 88© TCG 2022

TCG Storage Security Subsystem Class: Opal

UID

Name

Format00 00 00 05 life_cycle_state
00 00 04 05

Enumeration_Type,0,15Size Description
Used to represent the current life
cycle state. The valid values
are: 0 = issued, 1 = issueddisabled, 2 = issued-frozen, 3 =issued-disabled-frozen, 4 =issued-failed, 5-7 = reserved, 8 =manufactured-inactive, 9 =manufactured, 10 =manufactured-disabled, 11 =manufactured-frozen, 12 =manufactured-disabled-frozen,
13 = manufactured-failed, 14-15= reserved

5.3 Byte Table Access Granularity
Start of Informative Comment
While the general architecture defined in [2] allows data to be written into byte tables starting at any arbitrary byteboundary and with any arbitrary byte length, certain types of storage SDs work more efficiently when data is writtenaligned to a larger block boundary. This section defines extensions to [2] that allow a SD to report the restrictions thatit enforces when the host invokes the Set method on byte tables.
End of Informative Comment

5.3.1 Table Table Modification
In order to allow a SD to report its mandatory and recommended data alignment restrictions when accessing byte
tables, the Table table SHALL contain the additional columns shown in Table 51.
The mandatory and recommended data alignment restrictions do not apply to Object Tables.
Table 51 Table Table Additional Columns

Column Number

Column Name

IsUniqueColumn Type

0x0D

MandatoryWriteGranularity

uinteger_4

0x0E

RecommendedAccessGranularity

uinteger_4

5.3.1.1 MandatoryWriteGranularity
This column is used to report the granularity that the SD enforces when the host invokes the Set method on byte
tables.
This column SHALL NOT be modifiable by the host.
5.3.1.1.1 Object Tables
For rows in the Table table that pertain to object tables, the value of the MandatoryWriteGranularity column SHALL
be zero.
5.3.1.1.2 Byte Tables
For rows in the Table table that pertain to byte tables, the MandatoryWriteGranularity column indicates the mandatory
access granularity (in bytes) for the Set method for the table described in these rows of the Table table. The
TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 89© TCG 2022

TCG Storage Security Subsystem Class: Opal

MandatoryWriteGranularity column indicates the alignment requirement for both the access start offset (the Whereparameter) and length (number of bytes in the Values parameter).
The value of the MandatoryWriteGranularity column SHALL be less than or equal to the value in the
RecommendedAccessGranularity column in the same row of the Table table.
The value of MandatoryWriteGranularity SHALL be less than or equal to 8192.
When the host invokes the Set method on a byte table, if ValidMandatoryGranularity (see Figure 4) is False, then themethod SHALL fail with status INVALID_PARAMETER.
If the TPer does not have a requirement on mandatory alignment for the byte table described in a row of the Table
table, then its MandatoryWriteGranularity column SHALL be set to one.
Figure 4 - ValidMandatoryGranularity definition
For the Set method:
ValidMandatoryGranularity is True ifa) (x modulo MandatoryWriteGranularity) = 0
andb) (y modulo MandatoryWriteGranularity) = 0
where:
x = the start offset of the Set method(i.e., the value of the Where parameter)y = the number of data bytes being set(i.e., the length of the Values parameter)

5.3.1.2 RecommendedAccessGranularity
This column is used to report the granularity that the SD recommends when the host invokes the Set or Get method
on byte tables.
This column SHALL NOT be modifiable by the host.
5.3.1.2.1 Object Tables
For rows in the Table table that pertain to object tables, the value of the RecommendedAccessGranularity column
SHALL be zero.
5.3.1.2.2 Byte Tables
For rows in the Table table that pertain to byte tables, the RecommendedAccessGranularity column indicates therecommended access granularity (in bytes) for the Set and Get method for the table described in these rows of theTable table. The RecommendedAccessGranularity column indicates the alignment of data for the Set and Get methodthat allows for optimal Set/Get performance.
If the TPer does not have a recommended alignment for the byte table described in a row of the Table table, then its
RecommendedAccessGranularity column SHALL be set to one.
When the host invokes the Set method on a byte table, if ValidRecommendedGranularity (see Figure 5) is False,then the performance of the TPer MAY be reduced when processing the method.

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 90© TCG 2022

TCG Storage Security Subsystem Class: Opal

Figure 5 - ValidRecommendedGranularity definition for Set
For the Set method:
ValidRecommendedGranularity is True ifa) (x modulo RecommendedAccessGranularity) = 0
andb) (y modulo RecommendedAccessGranularity) = 0
where:
x = the start offset of the Set method(i.e., the value of the Where parameter)y = the number of data bytes being set(i.e., the length of the Values parameter)

When the host invokes the Get method on a byte table, if ValidRecommendedGranularity (see Figure 6) is False,then the performance of the TPer MAY be reduced when processing the method.
Figure 6 - ValidRecommendedGranularity definition for Get
For the Get method:
ValidRecommendedGranularity is True ifa) (x modulo RecommendedAccessGranularity) = 0
andb) (y modulo RecommendedAccessGranularity) = 0
where:
x = the start offset of the Get method(i.e., the value of the startRow component of the Cellblock parameter)y = the number of data bytes being retrieved(i.e., the difference of the endRow and startRow components of the
Cellblock parameter, plus one)

5.4 Examples of Alignment Geometry Reporting
Figure 7 illustrates reporting for a typical legacy SD where there is one logical block per physical block on the media.
Figure 7 - Example: AlignmentGranularity=1, Lowest Aligned LBA=0

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

Alignment
Granularity

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

Page 91© TCG 2022

TCG Storage Security Subsystem Class: Opal

Figure 8 illustrates geometry for a SD where there are 8 logical blocks per physical block (e.g., a 4K physical block)and the first logical block is aligned at the beginning of the first physical block.
Figure 8 - Example: AlignmentGranularity=8, Lowest Aligned LBA=0

0

1

2

3

4

5

6

7

8

9

AlignmentGranularity

10

11

12

13

14

15

16

17

AlignmentGranularity

18

19

...

Figure 9 illustrates geometry for a SD where there are 8 logical blocks per physical block (e.g., a 4K physical block)and LBA=1 is the first logical block that is aligned at the beginning of a physical block
Figure 9 - Example: AlignmentGranularity=8, Lowest Aligned LBA=1

0

1

2

AlignmentGranularity

3

4

5

6

7

8

9

AlignmentGranularity

10

11

12

...

Figure 10 illustrates geometry for a SD where there are 2000 logical blocks per physical block and LBA=1234 is thefirst logical block that is aligned at the beginning of a physical block.
Figure 10 - Example: AlignmentGranularity=2000, Lowest Aligned LBA=1234

0

...

1230

1231

AlignmentGranularity

1232

1233

1234

...

3233

3234

AlignmentGranularity

TCG Storage Security Subsystem Class: Opal | Version 2.02 | Revision 1.0 | 1/24/2022 | Published

...

...

Page 92© TCG 2022