TCG Storage
Security Subsystem Class:
Opal
Specification Version 1.0
Revision 1.0
January 27, 2009

Contacts:
storagewg@trustedcomputinggroup.org

TCG
Copyright © TCG 2009

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

Copyright © 2009 Trusted Computing Group, Incorporated.
Disclaimer
THIS SPECIFICATION IS PROVIDED "AS IS" WITH NO WARRANTIES WHATSOEVER, INCLUDINGANY WARRANTY OF MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR ANY PARTICULARPURPOSE, OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATIONOR SAMPLE. Without limitation, TCG disclaims all liability, including liability for infringement of any
proprietary rights, relating to use of information in this specification and to the implementation of thisspecification, and TCG disclaims all liability for cost 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 thisspecification or any information herein.
No license, express or implied, by estoppel or otherwise, to any TCG or TCG member intellectual
property rights is granted herein.
Except that a license is hereby granted by TCG to copy and reproduce this specification forinternal use only.
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.

Revision 1.0

Page ii of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

TABLE OF CONTENTS

1INTRODUCTION ...............................................................................................................................................7
1.1
1.2
1.3
1.4
1.5
1.6
1.7

2

OPAL SSC OVERVIEW ..................................................................................................................................10
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9

3

DOCUMENT PURPOSE .....................................................................................................................................7
SCOPE AND INTENDED AUDIENCE ..................................................................................................................7
KEY WORDS ...................................................................................................................................................7
DOCUMENT REFERENCES ...............................................................................................................................7
DOCUMENT PRECEDENCE ...............................................................................................................................8
SSC TERMINOLOGY .......................................................................................................................................8
LEGEND ..........................................................................................................................................................9

OPAL SSC USE CASES AND THREATS...........................................................................................................10
SECURITY PROVIDERS (SPS).........................................................................................................................10
INTERFACE COMMUNICATION PROTOCOL ....................................................................................................10
CRYPTOGRAPHIC FEATURES .........................................................................................................................10
AUTHENTICATION ........................................................................................................................................11
TABLE MANAGEMENT ..................................................................................................................................11
ACCESS CONTROL & PERSONALIZATION ......................................................................................................11
ISSUANCE .....................................................................................................................................................11
SSC DISCOVERY ..........................................................................................................................................11

OPAL SSC FEATURES....................................................................................................................................12
3.1
SECURITY PROTOCOL 1 SUPPORT .................................................................................................................12
3.1.1
Level 0 Discovery (M)..........................................................................................................................123.1.1.1
Level 0 Discovery Header ...........................................................................................................123.1.1.2
TPer Feature (Feature Code = 0x0001) .......................................................................................123.1.1.3
Locking Feature (Feature Code = 0x0002)..................................................................................133.1.1.4
Opal SSC Feature (Feature Code = 0x0200) ...............................................................................14
3.2
SECURITY PROTOCOL 2 SUPPORT .................................................................................................................14
3.2.1
ComID Management............................................................................................................................14
3.2.2
Stack Protocol Reset (O)......................................................................................................................14
3.3
COMMUNICATIONS .......................................................................................................................................15
3.3.1
Communication Properties ..................................................................................................................15
3.3.2
Supported Security Protocols ..............................................................................................................15
3.3.3
ComIDs................................................................................................................................................15
3.3.4
Synchronous Protocol..........................................................................................................................15
3.3.4.1
Payload Encoding........................................................................................................................16
3.3.4.1.1 Stream Encoding Modifications................................................................................................16
3.3.4.1.2 TCG Packets .............................................................................................................................16
3.3.4.1.3 Payload Error Response ............................................................................................................16
3.3.5
Storage Device Resets..........................................................................................................................16
3.3.5.1
Interface Resets ...........................................................................................................................16
3.3.6
Protocol Stack Reset Commands (O)...................................................................................................17

4

OPAL SSC-COMPLIANT FUNCTIONS AND SPS ......................................................................................18
4.1
SESSION MANAGER ......................................................................................................................................18
4.1.1
Methods ...............................................................................................................................................18
4.1.1.1
Properties (M)..............................................................................................................................18
4.1.1.2
StartSession (M) ..........................................................................................................................194.1.1.3
SyncSession (M)..........................................................................................................................19

Revision 1.0

Page iii of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright4.1.1.4
CloseSession (O) .........................................................................................................................19
4.2
ADMIN SP.....................................................................................................................................................20
4.2.1
Base Template Tables ..........................................................................................................................20
4.2.1.1
SPInfo (M)...................................................................................................................................20
4.2.1.2
SPTemplates (M).........................................................................................................................20
4.2.1.3
Table (M).....................................................................................................................................20
4.2.1.4
MethodID (M) .............................................................................................................................21
4.2.1.5
AccessControl (M) ......................................................................................................................224.2.1.6
ACE (M)......................................................................................................................................26
4.2.1.7
Authority (M) ..............................................................................................................................27
4.2.1.8
C_PIN (M)...................................................................................................................................27
4.2.2
Base Template Methods .......................................................................................................................28
4.2.3
Admin Template Tables .......................................................................................................................29
4.2.3.1
TPerInfo (M) ...............................................................................................................................29
4.2.3.2
Template (M)...............................................................................................................................29
4.2.3.3
SP (M) .........................................................................................................................................29
4.2.4
Admin Template Methods ....................................................................................................................30
4.3
LOCKING SP .................................................................................................................................................31
4.3.1
Base Template Tables ..........................................................................................................................314.3.1.1
SPInfo (M)...................................................................................................................................314.3.1.2
SPTemplates (M).........................................................................................................................314.3.1.3
Table (M).....................................................................................................................................314.3.1.4
Type (N) ......................................................................................................................................32
4.3.1.5
MethodID (M) .............................................................................................................................33
4.3.1.6
AccessControl (M) ......................................................................................................................33
4.3.1.7
ACE (M)......................................................................................................................................54
4.3.1.8
Authority (M) ..............................................................................................................................57
4.3.1.9
C_PIN (M)...................................................................................................................................57
4.3.2
Base Template Methods .......................................................................................................................58
4.3.3
Locking Template Tables .....................................................................................................................59
4.3.3.1
LockingInfo (M)..........................................................................................................................59
4.3.3.2
Locking (M) ................................................................................................................................59
4.3.3.3
MBRControl (M).........................................................................................................................60
4.3.3.4
MBR (M).....................................................................................................................................60
4.3.3.5
K_AES_128 or K_AES_256 (M)................................................................................................60
4.3.4
Locking Template Methods ..................................................................................................................61
4.3.5
SD Read/Write Data Command Locking Behavior..............................................................................62
4.3.6
Interface Control Template Tables ......................................................................................................63
4.3.6.1
RestrictedCommands (O) ............................................................................................................63
4.3.7
Non Template Tables ...........................................................................................................................63
4.3.7.1
DataStore (M)..............................................................................................................................63
5

APPENDIX – SSC SPECIFIC FEATURES....................................................................................................64
5.1
INTERFACE CONTROL TEMPLATE .................................................................................................................64
5.1.1
Overview..............................................................................................................................................64
5.1.2
Data Structures....................................................................................................................................64
5.1.2.1
RestrictedCommands (Object Table) ..........................................................................................64
5.1.3
Descriptions.........................................................................................................................................65
5.1.3.1
Interface Control Template-Specific Life Cycle State Descriptions/Exceptions.........................66
5.1.4
Examples..............................................................................................................................................67
5.2
OPAL SSC-SPECIFIC METHODS ....................................................................................................................75
5.2.1
Activate – Admin Template SP Object Method ....................................................................................75
5.2.1.1
Side effects of Activate ...............................................................................................................75
5.2.2
Revert – Admin Template SP Object Method.......................................................................................76
5.2.2.1.1 Side effects of Revert................................................................................................................76
5.2.3
RevertSP – Base Template SP Method ................................................................................................76

Revision 1.0

Page iv of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright5.2.3.1
KeepGlobalRangeKey parameter (Locking Template-specific)..................................................77
5.2.3.2
Side effects of RevertSP..............................................................................................................77
5.3
LIFE CYCLE ..................................................................................................................................................79
5.3.1
Issued vs. Manufactured SPs ...............................................................................................................79
5.3.1.1
Issued SPs....................................................................................................................................79
5.3.1.2
Manufactured SPs........................................................................................................................79
5.3.2
Manufactured SP Life Cycle States......................................................................................................79
5.3.2.1
State definitions for Manufactured SPs .......................................................................................79
5.3.2.2
State transitions for Manufactured SPs........................................................................................80
5.3.2.2.1 Manufactured-Inactive to Manufactured...................................................................................80
5.3.2.2.2 ANY STATE to ORIGINAL FACTORY STATE ...................................................................80
5.3.2.3
State behaviors for Manufactured SPs.........................................................................................81
5.3.2.3.1 Manufactured-Inactive ..............................................................................................................81
5.3.2.3.2 Manufactured ............................................................................................................................81
5.3.2.4
Locking SP Life Cycle Interactions with the ATA Security Feature Set ....................................81
5.3.3
Type Table Modification......................................................................................................................81

Revision 1.0

Page v of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

TablesTable 1 Opal SSC Terminology .................................................................................................................... 8
Table 2 SP Table Legend ............................................................................................................................. 9
Table 3 Level 0 Discovery Header.............................................................................................................. 12
Table 4 Level 0 Discovery - TPer Feature Descriptor................................................................................. 12
Table 5 Level 0 Discovery - Locking Feature Descriptor ............................................................................ 13
Table 6 Level 0 Discovery - Opal SSC Feature Descriptor ........................................................................ 14
Table 7 Supported Tokens.......................................................................................................................... 16
Table 8 Properties Requirements ............................................................................................................... 18
Table 9 Admin SP - SPInfo Table Preconfiguration.................................................................................... 20
Table 10 Admin SP - SPTemplates Table Preconfiguration....................................................................... 20
Table 11 Admin SP - Table Table Preconfiguration ................................................................................... 20
Table 12 Admin SP - MethodID Table Preconfiguration............................................................................. 21
Table 13 Admin SP - AccessControl Table Preconfiguration ..................................................................... 22
Table 14 Admin SP - ACE Table Preconfiguration ..................................................................................... 26
Table 15 Admin SP - Authority Table Preconfiguration .............................................................................. 27
Table 16 Admin SP - C_PIN Table Preconfiguration.................................................................................. 27
Table 17 Admin SP - TPerInfo Table Preconfiguration............................................................................... 29
Table 18 Admin SP - Template Table Preconfiguration ............................................................................. 29
Table 19 Admin SP - SP Table Preconfiguration........................................................................................ 29
Table 20 Locking SP - SPInfo Table Preconfiguration ............................................................................... 31
Table 21 Locking SP - SPTemplates Table Preconfiguration..................................................................... 31
Table 22 Locking SP - Table Table Preconfiguration ................................................................................. 31
Table 23 Locking SP - MethodID Table Preconfiguration........................................................................... 33
Table 24 Locking SP - AccessControl Table Preconfiguration ................................................................... 33
Table 25 Locking SP - ACE Table Preconfiguration................................................................................... 54
Table 26 Locking SP - Authority Table Preconfiguration ............................................................................ 57
Table 27 Locking SP - C_PIN Table Preconfiguration................................................................................ 58
Table 28 Locking SP - LockingInfo Table Preconfiguration........................................................................ 59
Table 29 Locking SP - Locking Table Preconfiguration.............................................................................. 59
Table 30 Locking SP - MBRControl Table Preconfiguration....................................................................... 60
Table 31 Locking SP - K_AES_128 Table Preconfiguration....................................................................... 61
Table 32 Locking SP - K_AES_256 Table Preconfiguration....................................................................... 61
Table 33 RestrictedCommands Table Preconfiguration ............................................................................. 63
Table 34 RestrictedCommands Table Description ..................................................................................... 64
Table 35 CommandMask and CommandFilter (ATA)................................................................................. 65
Table 36 CommandMask and CommandFilter (ATAPI) ............................................................................. 65
Table 37 CommandMask and CommandFilter (SCSI) ...............................................................................65
Table 38 Example RestrictedCommands Table (ATA)...............................................................................67
Table 39 Example RestrictedCommands Table (ATAPI) ...........................................................................70
Table 40 Example RestrictedCommands Table (SCSI) ............................................................................. 73
Table 41 LifeCycle Type Table Modification ............................................................................................... 81

Revision 1.0

Page vi of 81

TCG Storage Opal SSC
Specification Version 1.0

1

TCG Copyright

Introduction

1.1 Document Purpose
The Storage Workgroup specifications provide a comprehensive architecture for putting Storage Devices underpolicy control as determined by the trusted platform host, the capabilities of the Storage Device to conform withthe 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 thatwant 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 area subset 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.
•

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, aCompliance test SHALL validate that the feature is operational.

•

Excluded (X): When a feature is Excluded, the feature SHALL NOT be implemented. A Compliancetest SHALL validate that the feature is not operational.

•

Not Required (N) When a feature is Not Required, the feature MAY be implemented. No Compliancetest is required.

1.4 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 1.0, Revision 1.0[3]. NIST, FIPS-197, 2001, “Advanced Encryption Standard (AES)”[4]. [INCITS T10/1731-D], “Information technology - SCSI Primary Commands - 4 (SPC-4)“[5]. [ANSI INCITS 452-2008], “Information technology - AT Attachment 8 - ATA/ATAPI Command Set (ATA8ACS)“[6]. Trusted Computing Group (TCG), “TCG Storage Storage Interface Interactions Specification“, Version 1.0,
Revision 1.0

Revision 1.0

Page 7 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

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

Manufactured SP

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

N/A

Original Factory State

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 isused in table cells.

MM MM

The LSBs of a User Authority object’s UID (hexadecimal) as well as
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 wellas the corresponding C_PIN credential object’s UID (hexadecimal)

Revision 1.0

Page 8 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

1.7 Legend
The following legend defines SP table cell coloring coding. This color coding is informative only. The table cell
content is normative.

Table 2 SP Table Legend
Table
Cell
LegendArial-Narrow

Arial Narrowbold-under

ArialNarrow

R-W
Read-only

Read-only

Not
DefinedValue
Opal SSC specified

VU

(N)

Access Control
Fixed

Fixed

Not Defined

•
•
•
•
•
•
•
•
•
•

Arial Narrowbold-under

Arial-Narrow

Revision 1.0

Write

Preconfigured,user personalizable

Write

Preconfigured,user personalizable

Preconfigured,user personalizable

Fixed

•
•
•
•
•
•

Comment
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 content is (N).
Access control is not defined.
Any text in table cell is informative
only.
A Get MAY omit this column fromthe 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 9 of 81

TCG Storage Opal SSC
Specification Version 1.0

2

TCG Copyright

Opal SSC Overview

2.1 Opal SSC Use Cases and Threats
Begin Informative Content
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 (involving 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 andownership transferred 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 Informative Content

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 (Section 3.1.1)
2) The combination of the host's communication properties and the TPer's communication properties (seeProperties Method 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]).
Revision 1.0

Page 10 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

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

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).

Revision 1.0

Page 11 of 81

TCG Storage Opal SSC
Specification Version 1.0

3

TCG Copyright

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:••••

3.1.1.1

Level 0 Discovery Header
TPer Feature Descriptor
Locking Feature Descriptor
Opal SSC Feature Descriptor

Level 0 Discovery Header
Table 3 Level 0 Discovery Header
Bit

Byte
0

7

6

5

4

3

2

1

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)

•
•

Length of parameter data
Data structure revision•

Vendor Specific3.1.1.2= VU= 0x00000001 or
any version that supports the defined features in this SSC= VU

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

Revision 1.0

7

6

5

4

3

2

1
Page 12 of 81

0TCG Storage Opal SSC
Specification Version 1.0
Byte0

TCG Copyright

(MSB)

1
2
3
4

Feature Code
VersionReserved

ComID Mgmt
Supported

Reserved

Reserved

LengthStreaming Buffer Mgmt
Supported
Supported

5 - 15
•
•
•
•
•
•
•
•
•

(LSB)

ACK/NAKSupported

Async
Supported

Sync
Supported

Reserved

Feature Code
VersionLengthComID Mgmt Supported
Streaming Supported
Buffer Mgmt Supported
ACK/NACK Supported
Async Supported
Sync Supported= 0x0001= 0x1 or any version that supports the defined features in this SSC= 0x0C
= VU
=1
= VU
= VU
= VU
=1

3.1.1.3 Locking Feature (Feature Code = 0x0002)** = the present current state of the respective feature
Table 5 Level 0 Discovery - Locking Feature Descriptor
Bit
Byte
0
1
2
3
4

7

6

(MSB)

4

3

Reserved

Feature Code
VersionLengthMBR Done
MBR EnabledMedia Encryption
LockedLocking Enabled
Locking Supported

Revision 1.0

2

1

Feature Code
Version5 - 15
•
•
•
•
•
•
•
•
•

5

0

(LSB)
Reserved

MBR Done

LengthMBR
Media
EnabledEncryption
Reserved

LockedLocking
EnabledLocking
Supported= 0x0002= 0x1 or any version that supports the defined features in this SSC= 0x0C
= **
= **
=1
= **
= **
=1

Page 13 of 81

TCG Storage Opal SSC
Specification Version 1.0
3.1.1.4

TCG Copyright

Opal SSC Feature (Feature Code = 0x0200)
Table 6 Level 0 Discovery - Opal SSC Feature Descriptor
Bit

Byte
0

7

6

5

4

(MSB)

1
2
3
4

(MSB)

5
6

(MSB)

3

2

1

0

Feature Code
Version(LSB)
Reserved

LengthBase ComID
Number of ComIDs

7
8

(LSB)
(LSB)
Range
Crossing

Reserved for future common SSC parameters

9 - 19Reserved for future common SSC parameters

•
•
•
•
•
•

= 0x0200= 0x1 or any version that supports the defined features in this SSC= 0x10= VU= 0x0001 (minimum value)= VU1

Feature Code
VersionLengthBase ComID
Number of ComIDs
Range Crossing

Note 1: Range Crossing Values:• 0 = The SD supports commands addressing consecutive LBAs in more than one LBA range if all the
LBA ranges addressed are unlocked. See Section 4.3.5• 1 = The SD terminates commands addressing consecutive LBAs in more than one LBA range. See
Section 4.3.5

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 (O)An Opal SSC compliant SD MAY support the Stack Protocol Reset command. Refer to [2] for details.

Revision 1.0

Page 14 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

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, the physical 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, reference “Invalid Transfer Lengthparameter on IF-SEND” in [6].
Data generated in response to methods contained within an IF-SEND command payload subpacket (including
the required ComPacket / Packet / Subpacket overhead data) SHALL fit entirely within the response buffer. If
the method response and its associated protocol overhead do not fit completely within the response buffer, theTPer1) 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 thatmethod’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.
• IF-SEND commands with a Security Protocol values of 0x01.
• IF-RECV commands with a Security Protocol values of 0x02 when Protocol Stack Reset is supported• IF-SEND commands with a Security Protocol values of 0x02 when Protocol Stack Reset is supported

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.

•

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 [6] with “Other Invalid Command parameter”, or•follow the requirements defined in [2] for “Inactive or Unsupported ComID parameter on IF-SEND” or“Inactive or Unsupported ComID parameter on IF-RECV”.

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

Revision 1.0

Page 15 of 81

TCG Storage Opal SSC
Specification Version 1.0
3.3.4.1
3.3.4.1.1

TCG Copyright

Payload Encoding
Stream Encoding Modifications

The TPer SHALL support tokens listed in Table 7. If an unsupported token is encountered, the TPer SHALL
treat this as a streaming protocol violation and return an error per the definition in section 3.3.4.1.3.
Table 7 Supported Tokens
Acronym

SL
EL
SN
EN
CALL
EOD
EOS
ST
ET
MT

MeaningTiny atom
Short atom
Medium atom
Long atom
Start List
End List
Start Name
End NameCall
End of Data
End of session
Start transaction
End of transaction
Empty atom

The TPer SHALL support tha above token atoms with the B bit set to 0 or 1 and the S bit set to 0.

3.3.4.1.2

TCG Packets

Within a single IF-SEND/IF-RECV command, the TPer SHALL support a ComPacket containing one Packet,
which contains one Subpacket. The Host MAY discover TPer support of capabilites beyond this requirement in
the parameters returned in response to a Properties method.
The TPer MAY ignore Credit Control Subpackets sent by the host. The host MAY discover TPer support ofCredit 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 thehost and 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] fordetails 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 thepayload (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 [6].
Revision 1.0

Page 16 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG CopyrightInterface initiated TCG reset events SHALL result in:
1. All open sessions SHALL be aborted;
2. All uncommitted transactions SHALL be aborted;
3. All pending session startup activities SHALL be aborted;
4. All TCG command and response buffers SHALL be invalidated;
5. All related method processing SHALL be aborted;
6. For each ComID, the state of the synchronous protocol stack SHALL transition to “Awaiting IF-SEND”
state;
7. No notification of these events SHALL be sent to the host.

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

Revision 1.0

Page 17 of 81

TCG Storage Opal SSC
Specification Version 1.0

4

TCG Copyright

Opal SSC-compliant Functions and SPs

4.1 Session Manager
4.1.1 Methods
4.1.1.1 Properties (M)An Opal compliant SD SHALL support the Properties method. The requirements for support of the various
TPer and Host properties, and the requirements for their values, are shown in Table 8.
Table 8 Properties Requirements
Property Name
MaxComPacketSize

TPer Property Requirements andValues Reported(M)
2048 minimum

MaxResponseComPacketSize(M)
2048 minimum

MaxPacketSize(M)
2028 minimum

MaxIndTokenSize(M)
1992 minimum

MaxPackets(M)
1 minimum

MaxSubpackets(M)
1 minimum

MaxMethods(M)
1 minimum

MaxSessions(M)
1 minimum(M)
2 minimum(M)
1 minimum(M)
VU

MaxAuthentications
MaxTransactionLimit
DefSessionTimeout

Revision 1.0

Host Property Requirements andValues Accepted(M)
Initial Assumption: 2048
Minimum allowed: 2048
Maximum allowed: VU(N)
Although this is a legal hostproperty, there is no requirement
for the TPer to use it. The TPer
MAY ignore this host property andnot list it in the HostProperties
result of the Properties method
response.
(M)
Initial Assumption: 2028
Minimum allowed: 2028
Maximum allowed: VU(M)
Initial Assumption: 1992
Minimum allowed: 1992
Maximum allowed: VU(M)
Initial Assumption: 1
Minimum allowed: 1
Maximum allowed: VU(M)
Initial Assumption: 1
Minimum allowed: 1
Maximum allowed: VU(M)
Initial Assumption: 1
Minimum allowed: 1
Maximum allowed: VU
N/A – not a host property
N/A – not a host property
N/A – not a host property
N/A – not a host property

Page 18 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright4.1.1.2 StartSession (M)An Opal-compliant SD SHALL support the following parameters for the StartSession method:
•
•
•
•
•

HostSessionID
SPID
Write
HostChallenge
HostSigningAuthority= support for “True" is (M), support for "False" is (N)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.

Revision 1.0

Page 19 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

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

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

4.2.1.1

SPInfo (M)4.2.1.2

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 9 Admin SP - SPInfo Table Preconfiguration

T

SPTemplates (M)*ST1 = this version number or any version number that complies with this SSC.
Table 10 Admin SP - SPTemplates Table Preconfiguration
UID
00 00 00 03
00 00 00 01
00 00 00 03
00 00 00 02

4.2.1.3

TemplateID

Name

00 00 02 04 00 00 00 01“Base”

00 00 02 04 00 00 00 02“Admin”

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

Table (M)00 00 00 01
00 00 00 01

Revision 1.0“Table”

ObjectPage 20 of 81

MaxSize

MinSize

LastID

RowBytes

RowsFree

Rows

NumColumns

ColumnKind

TemplateID

CommonName

Name

UID

Table 11 Admin SP - Table Table Preconfiguration

00 00 00 01
00 00 00 02“SPInfo”

Object00 00 00 01
00 00 00 03“SPTemplates”

Object00 00 00 01
00 00 00 06"MethodID"

Object00 00 00 01
00 00 00 07"AccessControl"

Object00 00 00 01
00 00 00 08"ACE"

Object00 00 00 01
00 00 00 09"Authority"

Object00 00 00 01
00 00 00 0B"C_PIN"

Object00 00 00 01
00 00 02 01"TPerInfo"

Object00 00 00 01
00 00 02 04"Template"

Object00 00 00 01
00 00 02 05"SP"

Object4.2.1.4 MethodID (M)The following table contains Optional rows as designated by (O).
*MT1 = refer to section 5.2.1 for details on the requirements for supporting Activate.
.
Table 12 Admin SP - MethodID Table Preconfiguration
UID
00 00 00 06
00 00 00 08
00 00 00 06
00 00 00 0D
00 00 00 06
00 00 00 16
00 00 00 06
00 00 00 17
00 00 00 06
00 00 02 02(O)
00 00 00 06
00 00 02 03*MT1

Revision 1.0

Name

CommonName

TemplateID"Next""GetACL"
"Get"
"Set"
"Revert""Activate"

Page 21 of 81

MaxSize

MinSize

LastID

RowBytes

RowsFree

Rows

NumColumns

ColumnKind

TemplateID

UID

CommonName

TCG CopyrightName

TCG Storage Opal SSC
Specification Version 1.0

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright4.2.1.5 AccessControl (M)The following table contains Optional rows identified by (O)*AC1 = TT TT TT TT is a shorthand for the LSBs of the Table object UIDs
*AC2 = TT TT TT TT is a shorthand for the LSBs of the SPTemplates object UIDs
*AC3 = TT TT TT TT is a shorthand for the LSBs of the MethodID object UIDs
*AC4 = TT TT TT TT is a shorthand for the LSBs of the ACE object UIDs
*AC5 = TT TT TT TT is a shorthand for the LSBs of the Authority object UIDs
*AC6 = TT TT TT TT is a shorthand for the LSBs of the Template object UIDs
*AC7 = TT TT TT TT is a shorthand for the LSBs of the SP object UIDs
*AC8 = refer to section 5.2.1 for details on the requirements for supporting Activate
Notes:•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.

ACE_Anybody
ACE_Anybody

ACE_Anybody

ACE_Anybody
ACE_Anybody

ACE_Anybody

Get
Get

Next

TableObjSPInfoObj

Table

00 00 00 01
TT TT TT TT*AC1
00 00 00 02
00 00 00 01

00 00 00 01
00 00 00 00

Table

SPInfoRevision 1.0

Page 22 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- Iinformative text

InvokingID

UID

Table association- Informative text

Table 13 Admin SP - AccessControl Table Preconfiguration

Revision 1.0
00 00 00 08
TT TT TT TT*AC4
ACEObjGet

ACE_Anybody

ACE_Anybody

Authority

Next

ACE_Anybody

ACE_Anybody

Authority

00 00 00 09
00 00 00 00

ACE_Anybody

ACE_Anybody

Next

ACE

00 00 00 08
00 00 00 00

ACE_Anybody

ACE_Anybody

Get

MethodIDObj

00 00 00 06
TT TT TT TT*AC3

ACE_Anybody

ACE_Anybody

Next

MethodID

00 00 00 06
00 00 00 00

ACE_Anybody

ACE_Anybody

Get

SPTemplatesObj

00 00 00 03
TT TT TT TT*AC2

ACE_Anybody

ACE_Anybody

Next

SPTemplates

00 00 00 03
00 00 00 00

SPTemplates

MethodID

ACE

Page 23 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- Iinformative text

InvokingID

UID

Table association- Informative text

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
C_PIN_SID
Get

C_PIN_SID
Set

Next

C_PIN

00 00 00 0B
00 00 00 00

ACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_C_PIN_SID_Set_PIN ACE_C_PIN_SID_Get_NOPIN ACE_Anybody

00 00 00 0B
00 00 00 01

00 00 00 0B
00 00 00 01

Get

AuthorityObj

00 00 00 09
TT TT TT TT*AC5

CommonName

MethodID

InvokingID Name
- Iinformative text

InvokingID

ACE_Anybody

C_PIN

Page 24 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

ACE_Anybody GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_Makers_Set_Enabled ACE_Anybody ACL

Set

Makers00 00 00 09
00 00 00 03

UID

Table association- Informative text

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
Next

ACE_Anybody ACE_Anybody

Get

Template00 00 02 04
00 00 00 00

ACE_Anybody ACE_Anybody

Next

Get

TemplateObj

00 00 02 04
TT TT TT TT*AC6

ACE_Anybody ACE_Anybody

SP

SPObj

SP

ACE_Anybody ACE_Anybody

00 00 02 05
00 00 00 00

00 00 02 05
TT TT TT TT*AC7

ACE_Anybody

ACE_Anybody

Get

TPerInfoObj

00 00 02 01
00 03 00 01

ACE_Anybody

ACE_C_PIN_MSID_Get_PIN

Get

C_PIN_MSID

00 00 00 0B
00 00 84 02

TPerInfo

Template

Page 25 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- Iinformative text

InvokingID

UID

Table association- Informative text

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightACE_Anybody

4.2.1.6 ACE (M)The following table contains Optional rows designated with (O).
*ACE1 = This row is (M) if the TPer supports either Activate or Revert, and (N) otherwise.

Name

BooleanExpr

Columns

CommonName

UID

Table
Assocuiation- Informative
text

Table 14 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_Makers_Set_Enabled"

SID

Enabled"ACE_C_PIN_SID_Get_NOPIN"

AdminsOR SID

UID, CharSet, TryLimit,
Tries, Persistence"ACE_C_PIN_SID_Set_PIN"

SID

PIN

"ACE_C_PIN_MSID_Get_PIN"

Anybody

UID, PIN

BaseACEs

Authority

C_PIN
00 00 00 08
00 00 8C 02
00 00 00 08
00 00 8C 03
00 00 00 08
00 00 8C 04
SP

Revision 1.0

Page 26 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACLACE_Anybody

RemoveACEACL

AddACEACL

Log

ACL
ACE_SP_SID

CommonName

ACE_SP_SID

RevertActivate

MethodID

SPObj

*AC8

SPObj

(O)

00 00 02 05
TT TT TT TT*AC7

InvokingID

InvokingID Name
- Iinformative text

TCG Copyright00 00 02 05
TT TT TT TT
*AC7

UID

Table association- Informative text

TCG Storage Opal SSC
Specification Version 1.0

4.2.1.7"ACE_SP_SID"

Columns

00 00 00 08
00 03 00 02

BooleanExpr

CommonName

Name

*ACE1

TCG Copyright

UID

Table
Assocuiation- Informativetext

TCG Storage Opal SSC
Specification Version 1.0

SID

All

Authority (M)

LogTo

Log

Uses

Limit

ClockEnd

ClockStart

ResponseExch
Null
Null
Null

Null

ResponseSign
Null
Null
Null

Null

Credential
Null
Null

None

Null

None

F

C_PIN_SID

None

T

Operation

PresentCertificate

None

F

None

HashAndSign
None
None

T

None

Secure
None
None

F

None

EnabledT

Password

Class
Null

00 00 00 09
00 00 00 06

Null

00 00 00 09
00 00 00 03

F

Null

"SID"

F

00 00 00 09
00 00 00 02

T

Null

IsClass"Makers"T

Name"Anybody""Admins"

T

UID

F

00 00 00 09
00 00 00 01

4.2.1.8

CommonName

Table 15 Admin SP - Authority Table Preconfiguration

C_PIN (M)
Table 16 Admin SP - C_PIN Table Preconfiguration

UID
00 00 00 0B
00 00 00 01
00 00 00 0B
00 00 84 02
Revision 1.0

Name

CommonName

PIN

CharSet

TryLimit

Tries

Persistence"C_PIN_SID"

MSID

Null

VU

VU

FALSE

"C_PIN_MSID"

MSID
Page 27 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

The PIN column value of C_PIN_SID is set to the PIN column value of C_PIN_MSID in OFS

4.2.2 Base Template Methods
Refer to Section 4.2.1.4 for supported Base template methods.

Revision 1.0

Page 28 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright4.2.3 Admin Template Tables
4.2.3.1 TPerInfo (M)*TP1 = this version or any version that supports the defined features in this SSC.
*TP2 = The SSC column is a list of names and SHALL have “Opal” as one of the list elements.

00 00 02 01
00 03 00 01

SSC

SpaceForIssuanceProtocolVersion

Firmware Version

Generation

UID

Bytes

GUDID

Table 17 Admin SP - TPerInfo Table Preconfiguration

1*TP1[“Opal”]*TP2

4.2.3.2 Template (M)The following table contains an Optional row as designated by (O).
*T1 = refer to section 5.1 for Interface Control details.
Table 18 Admin SP - Template Table Preconfiguration
UID
00 00 02 04
00 00 00 01
00 00 02 04
00 00 00 02
00 00 02 04
00 00 00 06
00 00 02 04
00 00 00 07
(O)
*T1

Name

Revision Number"Base"

1"Admin"1"Locking"

1"Interface Control"

1Instances

MaxInstances

VU

VU

1

1

1

1

1

1

4.2.3.3 SP (M)*SP1 = This row only exists in the Admin SP's OFS when the Locking SP is created by the manufacturer.

Revision 1.0

Manufactured

FALSE"Locking"

Manufactured-Inactive
OR
Manufactured

FALSE

Bytes

FrozenDateOfIssue

EffectiveAuth"Admin"ORG

LifeCycle

00 00 02 05
00 00 00 01
00 00 02 05
00 00 00 02
*SP1

Name

UID

Table 19 Admin SP - SP Table Preconfiguration

Page 29 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright4.2.4 Admin Template Methods
Refer to 4.2.1.4 for Admin SP supported methods.

Revision 1.0

Page 30 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

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)4.3.1.2

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 20 Locking SP - SPInfo Table Preconfiguration

T

SPTemplates (M)*SP1 = This version number or any number that supports the defined features in this SSC*SP2 = refer to section 5.1 for Interface Control details
Table 21 Locking SP - SPTemplates Table Preconfiguration
UID
00 00 00 03
00 00 00 01
00 00 00 03
00 00 00 02
00 00 00 03
00 00 00 03
(O)
*SP2

TemplateID

Name

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

00 00 02 04 00 00 00 01"Base"

00 00 02 04 00 00 00 06"Locking"

00 00 02 04 00 00 00 07"Interface Control"

00 00 00 02*SP1

4.3.1.3 Table (M)The following table contains Optional rows designated with (O).
*TT1 = only one of the two K_AES* table is required*TT2 = refer to section 5.1 for Interface Control details

Revision 1.0

Page 31 of 81

MaxSize

MinSize

LastID

Object

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

Rows

ObjectNumColumns"Table"Column00 00 00 01
00 00 00 01

Kind

Name

TemplateID

UID

CommonName

Table 22 Locking SP - Table Table Preconfiguration

Object

00 00 00 01
00 00 00 08"ACE"

Object00 00 00 01
00 00 00 09"Authority"

Object00 00 00 01
00 00 00 0B"C_PIN"

Object00 00 00 01
00 00 08 01"LockingInfo"

Object00 00 00 01
00 00 08 02"Locking"

Object"MBRControl"

Object

"MBR"

Byte

"K_AES_128”

Object"K_AES_256"

Object"RestrictedCommands"

Object"DataStore"

Byte

00 00 00 01
00 00 08 03
00 00 00 01
00 00 08 04
00 00 00 01
00 00 08 05*TT1
00 00 00 01
00 00 08 06*TT1
00 00 00 01
00 00 0C 01(O)*TT200 00 00 01
00 00 10 01

0x08000000
min

0x00000400
min

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

The "boolean_ACE" type (00000005 000040E) SHALL include the OR boolean operator.

•

The "AC_element" type (00000005 00000801) SHALL support at least 9 entries (4 User authorities and1 Admin authority.)

Revision 1.0

Page 32 of 81

MaxSize"AccessControl"

MinSize00 00 00 01
00 00 00 07

LastID

Object

RowBytes"MethodID"

RowsFree00 00 00 01
00 00 00 06

Rows

ObjectNumColumns"SPTemplates"

ColumnName

00 00 00 01
00 00 00 03

Kind

UID

TemplateID

TCG CopyrightCommonName

TCG Storage Opal SSC
Specification Version 1.0

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright4.3.1.5 MethodID (M)*MT1 = refer to section 5.2.3 for details on the requirements for supporting RevertSP.
Table 23 Locking SP - MethodID Table Preconfiguration
UID
00 00 00 06
00 00 00 08
00 00 00 06
00 00 00 0D
00 00 00 06
00 00 00 10
00 00 00 06
00 00 00 11*MT1
00 00 00 06
00 00 00 16
00 00 00 06
00 00 00 17

Name

CommonName

TemplateID"Next""GetACL""GenKey""RevertSP"
"Get"
"Set"

4.3.1.6 AccessControl (M)The following table contains Optional rows designated with (O).
*AC1 = refer to section 5.2.3 for details on the requirements for supporting RevertSP*AC2 = TT TT TT TT is a shorthand for the LSBs of the Table object UIDs
*AC3 = TT TT TT TT is a shorthand for the LSBs of the SPTemplates object UIDs
*AC4 = TT TT TT TT is a shorthand for the LSBs of the MethodID object UIDs
*AC5 = TT TT TT TT is a shorthand for the LSBs of the ACE object UIDs
*AC6 = only K_AES_128 or K_AES_256 related rows mandatory*AC7 = TT TT TT TT is a shorthand for the LSB of the Authority object UIDs
*AC8 = TT TT TT TT is a shorthand for the LSBs of the RestrictedCommands object UIDs
Notes:•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.

SP

Revision 1.0

Page 33 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative oly

Table 24 Locking SP - AccessControl Table Preconfiguration

Revision 1.0
00 00 00 03
TT TT TT TT*AC3SPTemplatesObj
Get

ACE_Anybody

ACE_Anybody

MethodID

Next

ACE_Anybody

ACE_Anybody

MethodID

00 00 00 06
00 00 00 00

ACE_Anybody

ACE_Anybody

Next

SPTemplates

00 00 00 03
00 00 00 00

ACE_Anybody

ACE_Anybody

Next

Table

00 00 00 01
00 00 00 00

ACE_Anybody ACE_Anybody

ACE_Anybody ACE_Anybody

Get

Get

00 00 00 01
TT TT TT TT*AC2TableObjSPInfoSPInfoObj

00 00 00 02
00 00 00 01

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

Table

SPTemplates

Page 34 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

ACE_Anybody GetACLACL

ACE_Admin

RevertSPThisSP00 00 00 00 InvokingID
00 00 00 01

*AC1
UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
ACE_ACE_Get_All
Set

ACE_Authority_Get_All
Set

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression ACE_ACE_Set_BooleanExpression

00 00 00 08
00 03 80 00

00 00 00 08
00 03 90 00

ACE_Anybody

ACE_ACE_Get_All

Get

ACEObj00 00 00 08
TT TT TT TT*AC5

ACE_Anybody

ACE_Anybody

Next

ACE

00 00 00 08
00 00 00 00

ACE_Anybody

ACE_Anybody

Get

MethodIDObj

00 00 00 06
TT TT TT TT
*AC4

ACE

Page 35 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0*AC600 00 00 08
00 03 B0 00
ACE_K_AES_128_GlobalRange_GenKey
Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody*AC600 00 00 08
00 03 B0 01
ACE_K_AES_128_Range1_GenKey
Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

Page 36 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0*AC600 00 00 08
00 03 B0 00 (+NNNN)
ACE_K_AES_128_RangeNNNN _GenKey
Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody*AC600 00 00 08
00 03 B8 00
ACE_K_AES_256_GlobalRange_GenKey
Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

Page 37 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
00 00 00 08
00 03 B8 00 (+NNNN)
ACE_K_AES_256_RangeNNNN _GenKey
Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_Locking_GlobalRange_Get_
RangeStartToActiveKey
Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody*AC600 00 00 08
00 03 D0 00

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_K_AES_256_Range1_GenKey

00 00 00 08
00 03 B8 01*AC6Page 38 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
ACE_Locking_Range1_Get_
RangeStartToActiveKey

ACE_Locking_RangeNNNN_Get_
RangeStartToActiveKey
Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_Locking_GlobalRange_Set_RdLockedSet

ACE_ACE_Set_BooleanExpression

ACE_Anybody

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

Page 39 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_ACE_Set_BooleanExpression ACL

Set

00 00 00 08
00 03 D0 01

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

00 00 00 08
00 03 E0 00

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
00 00 00 08
00 03 E0 00 (+NNNN)

00 00 00 08
00 03 E0 01

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_Locking_GlobalRange_Set_WrLocked ACE_Locking_RangeNNNN_Set_RdLocked ACE_Locking_Range1_Set_RdLocked

00 00 00 08
00 03 E8 00

Page 40 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
00 00 00 08
00 03 E8 01

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_Locking_RangeNNNN_Set_WrLocked ACE_Locking_Range1_Set_WrLocked

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

Set

ACE_MBRControl_Set_Done

00 00 00 08
00 03 F8 01

Page 41 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
00 00 00 09
00 00 00 00
Authority
Next

ACE_Anybody

ACE_Anybody

00 00 00 09
TT TT TT TT*AC7
AuthorityObj
Get

ACE_Authority_Get_All

ACE_Anybody

Set

ACE_DataStore_Get_All

00 00 00 08
00 03 FC 00

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

ACE_Anybody

Authority

Page 42 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_ACE_Set_BooleanExpression ACE_ACE_Set_BooleanExpression ACL

Set

ACE_DataStore_Set_All

00 00 00 08
00 03 FC 01

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0

00 00 00 09
00 03 00 00 (+MMMM)
UserMMMM
Set

ACE_Authority_Set_Enabled

ACE_Anybody

C_PIN

Next

ACE_Anybody

ACE_Anybody

C_PIN

00 00 00 0B
00 00 00 00

ACE_Anybody

ACE_Authority_Set_Enabled

ACE_Authority_Set_Enabled

ACE_Anybody

Set

AdminXXXX

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

Set

User1

00 00 00 09
00 03 00 01

ACE_Anybody

ACE_Authority_Set_Enabled

Set

Admin200 00 00 09
00 01 00 02

Page 43 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
C_PIN_AdminXXXX
Get

C_PIN_User1
Get

Get

C_PIN_Admin100 00 00 0B
00 01 00 01

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

ACE_Anybody

ACE_Anybody

Page 44 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_C_PIN_Admins_Get_All_NOPIN ACE_C_PIN_Admins_Get_All_NOPIN ACE_C_PIN_Admins_Get_All_NOPIN ACL

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

00 00 00 0B
00 03 00 01

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
C_PIN_AdminXXXXSet

C_PIN_User1
Set

Set

C_PIN_Admin100 00 00 0B
00 01 00 01

ACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_C_PIN_User1_Set_PIN ACE_C_PIN_Admins_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

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

Page 45 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_C_PIN_Admins_Get_All_NOPIN ACL

Get

C_PIN_UserMMMM

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

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
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

ACE_Anybody

ACE_Anybody

Get

LockingInfoObj

00 00 08 01
00 00 00 01

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

LockingInfo

Locking

Page 46 of 81

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

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
00 00 08 02
00 03 00 00 (+NN NN)
Locking_RangeNNNN
Get

ACE_Locking_RangeNNNN_Get_
RangeStartToActiveKey

ACE_Anybody

00 00 08 02
00 00 00 01

Locking_GlobalRange

Set

ACE_Locking_GlblRng_Admins_Set,
ACE_Locking_GlobalRange_Set_RdLocked,
ACE_Locking_GlobalRange_Set_WrLocked

ACE_Anybody

ACE_Anybody

ACE_Locking_Range1_Get_
RangeStartToActiveKey

Get

Locking_Range1

00 00 08 02
00 03 00 01

Page 47 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
MBRControlObj
Get

MBRControlObj

Set

ACE_Anybody

ACE_Anybody

ACE_MBRControl_Admins_Set,
ACE_Anybody
ACE_MBRControl_Set_Done

00 00 08 03
00 00 00 01

00 00 08 03
00 00 00 01

ACE_Anybody

ACE_Locking_Admins_RangeStartToLocked,
ACE_Locking_RangeNNNN_Set_RdLocked,
ACE_Locking_RangeNNNN_Set_WrLocked

Set

Locking_RangeNNNN

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

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

MBRControl

Page 48 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

ACE_Locking_Admins_RangeStartToLocked,
ACE_Locking_Range1_Set_RdLocked,
ACL
ACE_Locking_Range1_Set_WrLocked
Log

Set

Locking_Range1

00 00 08 02
00 03 00 01

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
00 00 08 05
00 00 00 01
K_AES_128_GlobalRange_Key
Get

ACE_K_AES_Mode

ACE_Anybody

00 00 08 05
00 03 00 01

K_AES_ 128 _Range1_Key
Get

ACE_K_AES_Mode

ACE_Anybody

ACE_Anybody

ACE_Admin

Set

MBR

00 00 08 04
00 00 00 00

ACE_Anybody

ACE_Anybody

Get

MBR

00 00 08 04
00 00 00 00

MBR

K_AES_128

Page 49 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
00 00 08 05
00 00 00 01
K_AES_128_GlobalRange_Key
GenKey

ACE_K_AES_ 128 _GlobalRange_GenKey

ACE_Anybody

00 00 08 05
00 03 00 01

K_AES_ 128 _Range1_Key
GenKey

ACE_K_AES_ 128 _Range1_GenKey

ACE_Anybody

ACE_Anybody

ACE_K_AES_ModeGet

K_AES_ 128 _RangeNNNN_Key

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

Page 50 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
00 00 08 06
00 00 00 01
K_AES_256_GlobalRange_Key
Get

ACE_K_AES_Mode

ACE_Anybody

00 00 08 06
00 03 00 01

K_AES_ 256_Range1_Key
Get

ACE_K_AES_Mode

ACE_Anybody

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

K_AES_256

Page 51 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_K_AES_ 128 _RangeNNNN_GenKey ACL

GenKeyK_AES_ 128 _RangeNNNN_Key

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

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
00 00 08 06
00 00 00 01
K_AES_256_GlobalRange_Key
GenKey

ACE_K_AES_ 256_GlobalRange_GenKey

ACE_Anybody

00 00 08 06
00 03 00 01

K_AES_ 256_Range1_Key
GenKey

ACE_K_AES_ 256_Range1_GenKey

ACE_Anybody

ACE_Anybody

ACE_K_AES_ModeGet

K_AES_ 256_RangeNNNN_Key

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

Page 52 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightRevision 1.0
RestrictedCommandsObj
Get

ACE_Anybody

ACE_Anybody

DataStore
Get

ACE_DataStore_Get_All

ACE_Anybody

DataStore
00 00 0C 01
TT TT TT TT
*AC8

(O)

00 00 10 01
00 00 00 00

ACE_Anybody

ACE_Anybody

Next

RestrictedCommands

00 00 0C 01
00 00 00 00(O)

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

RestrictedCommands

Page 53 of 81

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_K_AES_ 256_RangeNNNN_GenKey ACL

GenKeyK_AES_ 256_RangeNNNN_Key

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

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0
TCG CopyrightLogToDeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACLACE_Anybody

RemoveACEACL

AddACEACL

Log

ACE_DataStore_Set_All ACL

CommonName

MethodID

InvokingID Name
- informative only
DataStore

Set

InvokingID

TCG Copyright00 00 10 01
00 00 00 00

UID

Table Association- informative oly

TCG Storage Opal SSC
Specification Version 1.0

4.3.1.7 ACE (M)The following table contains Optional rows designated with (O).

Name

BooleanExpr

Columns

CommonName

UID

Table Association-Informative Column

Table 25 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"ACE_ACE_Get_All"

AdminsAll"ACE_ACE_Set_BooleanExpression"

AdminsBooleanExpr"ACE_Authority_Get_All"

AdminsAll"ACE_Authority_Set_Enabled"

AdminsEnabled"ACE_C_PIN_Admins_Get_All_NOPIN"

Admins

UID, CharSet, TryLimit,
Tries, Persistence"ACE_C_PIN_Admins_Set_PIN"

AdminsPIN"ACE_C_PIN_User1_Set_PIN"

Admins OR User1

PIN"ACE_C_PIN_UserMMMM_Set_PIN"

AdminsOR

PIN

Base ACEs

ACE
00 00 00 08
00 03 80 00
00 00 00 08
00 03 80 01
Authority
00 00 00 08
00 03 90 00
00 00 00 08
00 03 90 01
C_PIN

(O)

00 00 00 08
00 03 A0 00
00 00 00 08
00 03 A0 01
00 00 00 08
00 03 A8 01
00 00 00 08
00 03 A8 00

Revision 1.0

Page 54 of 81

(+MMMM)

Columns

BooleanExpr

CommonName

TCG Copyright

Name

UID

Table Association-Informative Column

TCG Storage Opal SSC
Specification Version 1.0

UserMMMM

K_AES
00 00 00 08
00 03 BF FF"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
00 00 00 08
00 03 B0 00(+NNNN)"ACE_K_AES_128_Range1_
GenKey"AdminsAll"ACE_K_AES_128_RangeNNNN_
GenKey"AdminsAll

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

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

K_AES_128(O)
K_AES_256

Locking
RangeStart, RangeLength,
ReadLockEnabled,
WriteLockEnabled,
ReadLocked, WriteLocked,
LockOnReset, ActiveKey
RangeStart, RangeLength,
ReadLockEnabled,
WriteLockEnabled,
ReadLocked, WriteLocked,
LockOnReset, ActiveKey
RangeStart, RangeLength,
ReadLockEnabled,
WriteLockEnabled,
ReadLocked, WriteLocked,
LockOnReset, ActiveKey

00 00 00 08
00 03 D0 00"ACE_Locking_GlobalRange_Get_
RangeStartToActiveKey"

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

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

Admins"ACE_Locking_GlobalRange_Set_RdLocked"

AdminsReadLocked"ACE_Locking_Range1_Set_RdLocked"

AdminsReadLocked"ACE_Locking_RangeNNNN_Set_RdLocked"

AdminsReadLocked

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

Revision 1.0

Page 55 of 81

00 00 00 08
00 03 F0 01

CommonName

Columns

00 00 00 08
00 03 F0 00

BooleanExpr

00 00 00 08
00 03 E8 00
00 00 00 08
00 03 E8 01
00 00 00 08
00 03 E8 00(+NNNN)TCG Copyright"ACE_Locking_GlobalRange_Set_WrLocked"

AdminsWriteLocked"ACE_Locking_Range1_Set_WrLocked"

AdminsWriteLocked"ACE_Locking_RangeNNNN_Set_WrLocked"

AdminsWriteLocked"ACE_Locking_GlblRng_Admins_Set"

AdminsReadLockEnabled,
WriteLockEnabled,
ReadLocked, WriteLocked"ACE_Locking_Admins_RangeStartToLocked"

AdminsRangeStart, RangeLength,
ReadLockEnabled,
WriteLockEnabled,
ReadLocked, WriteLocked"ACE_MBRControl_Admins_Set"

AdminsEnable, Done

"ACE_MBRControl_Set_Done"

AdminsDone"ACE_DataStore_Get_All"

AdminsAll"ACE_DataStore_Set_All"

Admins

All

Name

UID

Table Association-Informative Column

TCG Storage Opal SSC
Specification Version 1.0

MBRControl
00 00 00 08
00 03 F8 00
00 00 00 08
00 03 F8 01
DataStore
00 00 00 08
00 03 FC 00
00 00 00 08
00 03 FC 01

Revision 1.0

Page 56 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright4.3.1.8 Authority (M)The following table contains Optional rows designated with (O).
Notes:
1. Admin1 is required; any additional Admin authorities are (O).
2. User1 through User4 SHALL be implemented.

4.3.1.9 C_PIN (M)The following table includes Optional rows designated with (O)Revision 1.0

Page 57 of 81

LogTo

Log

Uses

Limit

ClockEnd

ClockStart

ResponseExch
Null
Null
Null
Null
Null

Null

ResponseSign
Null
Null
Null
Null
Null
Null

Credential
Null

None
None
Password
None

Null

Password

C_PIN_Admin1

Password

F

Null

F

C_PIN_UserMMMM C_PIN_User1

PresentCertificate
F

Operation

HashAndSign
None

None

None

None

F

None

None

F

F

None

T

F

None

Secure
None
None
None

F

F

None

EnabledF

Class

00 00 00 09
00 03 00 00(+MM MM)2
(O)

Null

F

Null

00 00 00 09
00 03 00 01

AdminsT

Admins00 00 00 09
00 03 00 00

T

Null

F

T

Users

00 00 00 09
00 01 00 00(+XX XX)1
(O)

T

Users

"Admin1"F"AdminXXXX"

CommonName

00 00 00 09
00 01 00 01"Users"T"User1"F"UserMMMM"

00 00 00 09
00 00 00 02

IsClass

00 00 00 09
00 00 00 01"Admins" "Anybody" NameUID

Table 26 Locking SP - Authority Table Preconfiguration

TCG Storage Opal SSC
Specification Version 1.0

TCG CopyrightNotes:
1. If the Locking SP's original life cycle state is Manufactured-Inactive, see Section 5.2.1.1 for the initialvalue of C_PIN_Admin1.PIN. If the Locking SP's original life cycle state is Manufactured, then the initialvalue of C_PIN_Admin1.PIN is the same as the Admin SP's C_PIN_MSID.PIN value.

Table 27 Locking SP - C_PIN Table Preconfiguration
UID
00 00 00 0B
00 01 00 01
00 00 00 0B
00 01 00 00(+XX XX)(O)
00 00 00 0B
00 03 00 01
00 00 00 0B
00 03 00 00(+MM MM)(O)

Name

CommonName

PIN
SID orMSID1

CharSet

TryLimit

Tries

Persistence

Null

0

0

FALSE

"C_PIN_AdminXXXX"

“”

Null

0

0

FALSE

"C_PIN_User1"

“”

Null

0

0

FALSE

"C_PIN_UserMMMM"

“”

Null

0

0

FALSE

"C_PIN_Admin1"

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

Revision 1.0

Page 58 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright4.3.3 Locking Template Tables
4.3.3.1 LockingInfo (M)Note:
1. The MaxRanges column specifies the number of supported ranges and SHALL have a minimum of 4
ranges.

KeysAvailableCfg

MaxRanges
41

MaxReEncryptions

EncryptSupport

00 00 08 01
00 00 00 01

4.3.3.2

Media Encryption

Version

Name

UID

Table 28 Locking SP - LockingInfo Table Preconfiguration

Locking (M)The following table contains Optional rows designated with (O).
*LT1 = The ActiveKey can be a K_AES_128 object reference (UID) or a K_AES_256 object reference (UID)

Page 59 of 81

GeneralStatus

LastReEncState

LastReEncryptLBA

Power Cycle

ContOnResetF

VerifyMode

LockOnResetF

AdvKeyMode

WriteLockedF

ReEncyptRequest

ReadLockedF

ReEncryptState

WriteLockEnabled

0

NextKey

ReadLockEnabled

0

K_AES_128[256]_GlobalRange_Key*LT1
ActiveKey

RangeLength"Locking_GlobalRange"

Revision 1.0

RangeStart

Name

00 00 08 02
00 00 00 01

CommonName

UID

Table 29 Locking SP - Locking Table Preconfiguration

K_AES_128[256]_RangeNNNN_Key*LT1

ActiveKey

Table 30 Locking SP - MBRControl Table Preconfiguration
UID
00 00 08 03
00 00 00 01

EnableDone

DoneOnReset

False

False

Power Cycle

4.3.3.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.3.5 K_AES_128 or K_AES_256 (M)At least one of the following two tables SHALL be supported.
The following table contains Optional rows designated with (O).
*K1 = indirectly writable using the GenKey Method.

Revision 1.0

Page 60 of 81

GeneralStatus

Power Cycle

MBRControl (M)LastReEncStateF

LastReEncryptLBA

K_AES_128[256]_Range1_Key*LT1F

ContOnReset

Power Cycle

F

VerifyMode

WriteLocked

F

AdvKeyMode

ReadLocked0

ReEncyptRequest

WriteLockEnabled

000 00 08 02
00 03 NN NN

ReEncryptState

ReadLockEnabledF

NextKey

RangeLength

F

LockOnReset

RangeStart

F

CommonName

F

Name"Locking_Range1"

0

UID

0

00 00 08 02
00 03 00 01

4.3.3.3

TCG Copyright"Locking_RangeNNNN"TCG Storage Opal SSC
Specification Version 1.0

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

UID

Name

Key

Mode

CommonName

Table 31 Locking SP - K_AES_128 Table Preconfiguration

00 00 08 05
00 00 00 01"K_AES_128_GlobalRange_Key"

VU
*K1

VU

"K_AES_128_Range1_Key"

VU
*K1

VU

"K_AES_128_RangeNNNN_Key"

VU
*K1

VU

00 00 08 05
00 03 00 01
00 00 08 05
00 03 NN NN(O)

00 00 08 06
00 00 00 01
00 00 08 06
00 03 00 01
00 00 08 06
00 03 NN NN(O)"K_AES_256_GlobalRange_Key""K_AES_256_Range1_Key""K_AES_256_RangeNNNN_Key"

VU
*K1
VU
*K1
VU
*K1

Mode

Key

CommonName

UID

Name

Table 32 Locking SP - K_AES_256 Table Preconfiguration

VU
VU
VU

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

Revision 1.0

Page 61 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright4.3.5 SD Read/Write Data Command Locking Behavior
The SD SHALL terminate with a "Data Protection Error" as defined in [6]:•Read commands that address consecutive LBAs in one or more locked LBA ranges. Locked range is
ReadLockEnabled=True and ReadLocked=True.

•

Write commands that address consecutive LBAs in one or more LBA ranges for which
WriteLockEnabled=True and WriteLocked=True.

If the storage device receives a read or write command that spans multiple LBA ranges and the LBA ranges are
not locked, the storage device SHALL either:•

Process the data transfer, if Range Crossing = 0 (in Level 0 Discovery Opal SSC Feature, see 3.1.1)
OR•

Terminate the command with “Other Invalid Command Parameter” as defined in [6],if Range Crossing = 1 (in Level 0 Discovery Opal SSC Feature, see 3.1.1)

The SD SHALL abort the following commands:•

For SCSI [4] commands:•• READ LONG(10)• READ LONG(16)• WRITE LONG(10), (WR_UNCOR = 0)
• WRITE LONG(16), (WR_UNCOR = 0)
For ATA [5] devices:• READ LONG (obsolete)• WRITE LONG (obsolete)• SCT READ LONG
• SCT WRITE LONG

Revision 1.0

Page 62 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright4.3.6 Interface Control Template Tables
See Section 5.1 for further details on the Interface Control Template
4.3.6.1

RestrictedCommands (O)Table 33 RestrictedCommands Table Preconfiguration

UID
VU

Next
VU

CommandMask
VU

ComandFilter
VU

Allowed
VU

AllowedTrueOnReset
VU

AllowedFalseOnReset
VU

4.3.7 Non Template Tables
4.3.7.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 1 KB in size (the Table table object that represents the DataStore table SHALL have a Rows
column value of at least 0x00000400). The access control for modification or retrieval of data in the table initiallyrequires a member of the Admins class authority. These access control settings are personalizable. Initial
DataStore content value is VU.

Revision 1.0

Page 63 of 81

TCG Storage Opal SSC
Specification Version 1.0

5

TCG CopyrightAppendix – SSC Specific Features

5.1 Interface Control Template
5.1.1 Overview
The Interface Control template enables TPer control over selected interface commands. The benefit is the
reduction of undesired side effects. These commands MAY change the runtime or permanent configuration of
the Storage Device as a whole. As such, it is in the spirit of being a trusted peripheral that the use of suchcommands be restricted.
Some examples of interface command operations that MAY be restricted are:
• Downloading new firmware• Changing the maximum LBA accessible• Enabling or disabling Storage Device features• Forcing read errors• Changing power-on default settings• Changing Storage Device timing parameters• Reading and writing raw data
• Formatting the Storage Device
This template provides facilities to restrict unauthorized use of certain commands via the host interface.
The template UID SHALL be 00 00 02 04 00 00 00 07

5.1.2 Data Structures
5.1.2.1 RestrictedCommands (Object Table)
The RestrictedCommands table contains rules about host interface command restrictions.
The RestrictedCommands table usage model is defined below. The number of actual commands are VU. See
Section 5.1.4 for table row examples.
The table SHALL contain at least one required row. The required row has the following attributes:•

The UID of the required row is the UID of the RestrictedCommands table, plus one•

SHALL NOT match any command•

SHALL NOT be deletable.

Table 34 RestrictedCommands Table Description
Column
UID
Next

Type
uid
uid

CommandMask{bytes}CommandFilter{bytes}

Revision 1.0

Description
The UID of this row
The UID of the next row to be processed.
Exactly one row SHALL have a Next column
value of Null, which marks the last row to beprocessed. See examples in Section 5.1.4
Interface-dependent binary mask of interface
command and parameters. Refer to Section
5.1.4 Examples
Interface-dependent binary filter of interface
command and parameters. Refer to Section
5.1.4 Examples

Page 64 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

ColumnAllowedTypebooleanAllowedTrueOnReset

reset_types

AllowedFalseOnReset

reset_types

Description
If this flag is True, then execution of thedescribed command is not restricted;
otherwise, the command is not allowed.
Reset types that force the Allowed column to
True
Reset types that force the Allowed column to
False

Table 35 CommandMask and CommandFilter (ATA)
ByteOffset
0
1
2
4
6
12

Length11226Vendor specific

ATA Command Parameter
CommandDeviceFeatures
Count
LBA
Optional data transferred from the host

Table 36 CommandMask and CommandFilter (ATAPI)
ByteOffset
0
1
2
3
4
7
19 or 23

Length1
111312 or 16VU

ATA Command Parameter
CommandDeviceFeatures
Count
LBA
Packet (Command)
Optional data transferred from the host

Table 37 CommandMask and CommandFilter (SCSI)
ByteOffset
0
VU

LengthVU
VU

SCSI Field
CDB
Optional data transferred from the host

5.1.3 Descriptions
A TPer MAY support at most one SP that incorporates the Interface Control Template.
When a TCG reset that is listed in the AllowedTrueOnReset column occurs, the TPer SHALL immediately set
the value of the Allowed column to True. When a TCG reset that is listed in the AllowedFalseOnResetcolumn occurs, the TPer SHALL immediately set the value of the Allowed column to False. A TCG reset type
Revision 1.0

Page 65 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

SHALL NOT be listed in both the AllowedTrueOnReset and the AllowedFalseOnReset columns. If a
TCG reset occurs that is not in either AllowedTrueOnReset or the AllowedFalseOnReset columns, thevalue of the Allowed column SHALL NOT be changed.

Rows SHALL always be processed starting with the required row, and proceeding in the order specified by the
Next column. The command parameters are to be bit-AND’d with the CommandMask column, and the resultcompared to the CommandFilter column. If the comparison matches, the value of the Allowed column
determines if the command is restricted or not. This process is performed for all rows from the beginning of thetable until the first match is made. If no match is made, then this facility does not restrict the processing of thecommand.
If the comparison matches and the value of the Allowed column is False, the SD SHALL terminate thecommand with a “Data Protection Error” as defined in [7].
See Figure 1 for an example of using the rules in the RestrictedCommands table.

Figure 1 Command Processing Example// Parse the interface command against the RestrictedCommands table
row=First// Always start at the beginning of the table
restrict = false
matched = false
while ( (matched==false) AND (restrict==false) AND (row != NULL) ){If (CommandFilter[row] ==( (incoming command and parameters) bitwise-AND (CommandMask[row] )) ){matched = true
restrict = Allowed[row]}else
row = Next}
if (restrict == true)
then terminate the command
else allow the command to proceed to the next level of command processing

5.1.3.1 Interface Control Template-Specific Life Cycle State Descriptions/Exceptions
A Manufactured SP instantiated with the Interface Control Template has the following characteristics based on
the current life cycle state of that SP:oManufactured Inactive: restrictions SHALL NOT be applied to the interface commands.

o

Manufactured: restrictions SHALL be applied to the interface commands.

Revision 1.0

Page 66 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright5.1.4 Examples
These tables show some example commands for which control of execution MAY be desirable.

AllowedTrueOnReset

AllowedFalseOnReset

False(null)(Power Cycle)

READ BUFFER
E4 00 0000 0000 000000000000

False(null)(Power Cycle)

WRITE BUFFER
E8 00 0000 0000 000000000000

False(null)(Power Cycle)

SET FEATURES
enable SATA features
EF 00 0010 0000 000000000000

False(null)(Power Cycle)

SET FEATURES
disable SATA features
EF 00 0090 0000 000000000000

False(null)(Power Cycle)

SET MAX ADDRESS(non-volatile)
F9 00 0000 0001 000000000000

False(null)(Power Cycle)

SET MAX ADDRESS EXT(non-volatile)
37 00 0000 0001 000000000000

False(null)(Power Cycle)

WRITE UNCORRECTABLE EXT
45 00 0000 0000 000000000000

False(null)(Power Cycle)

00 00 0C 01
00 00 00 0A

FF 00 0000
0000
000000000000
FF 00 0000
0000
000000000000

READ LONG
22 00 0000 0000 000000000000

False(null)(Power Cycle)

00 00 0C 01
00 00 00 0B

FF 00 0000
0000
000000000000

WRITE LONG
32 00 0000 0000 000000000000

False(null)(Power Cycle)

CommandMask

AllowedTable 38 Example RestrictedCommands Table (ATA)

UID

Next

00 00 0C 01
00 00 00 01

00 00 0C 01
00 00 00 02

00 00 0C 01
00 00 00 02

00 00 0C 01
00 00 00 03

FF 00 0000
0000
000000000000

00 00 0C 01
00 00 00 03

00 00 0C 01
00 00 00 04

FF 00 0000
0000
000000000000

00 00 0C 01
00 00 00 05

FF 00 00FF
0000
000000000000

00 00 0C 01
00 00 00 06

FF 00 00FF
0000
000000000000

00 00 0C 01
00 00 00 07

FF 00 0000
0001
000000000000

00 00 0C 01
00 00 00 07

00 00 0C 01
00 00 00 08

FF 00 0000
0001
000000000000

00 00 0C 01
00 00 00 08

00 00 0C 01
00 00 00 09

00 00 0C 01
00 00 00 09
00 00 0C 01
00 00 00 0A

00 00 0C 01
00 00 00 04
00 00 0C 01
00 00 00 05
00 00 0C 01
00 00 00 06

Revision 1.000

ComandFilter
DO NOT MATCH ANYCOMMAND
FF

Page 67 of 81

00 00 0C 01
00 00 00 0D

FF 00 0000
0000
0000000000FF
FFFF

00 00 0C 01
00 00 00 0E

FF 00 0000
0000
0000000000FF
FFFF

00 00 0C 01
00 00 00 0F

FF 00 00FF
0000
000000000000

00 00 0C 01
00 00 00 0F

00 00 0C 01
00 00 00 10

FF 00 00FF
0000
000000000000

00 00 0C 01
00 00 00 10

00 00 0C 01
00 00 00 11

FF 00 00FF
0000
000000000000

00 00 0C 01
00 00 00 0B

00 00 0C 01
00 00 00 0C

00 00 0C 01
00 00 00 0D
00 00 0C 01
00 00 00 0E

00 00 0C 01
00 00 00 11

00 00 0C 01
00 00 00 12

00 00 0C 01
00 00 00 12

00 00 0C 01
00 00 00 13

00 00 0C 01
00 00 00 13

00 00 0C 01
00 00 00 14

Revision 1.0

FF 00 0000
0000
0000000000FF

FF 00 0000
0000
000000000000
FF 00 00FF
0000
000000000000

AllowedFalseOnReset

00 00 0C 01
00 00 00 0C

FF 00 00FF
0000
0000000000FF
FFFF

AllowedTrueOnReset

Next

AllowedUID

TCG CopyrightCommandMask

TCG Storage Opal SSC
Specification Version 1.0

SCT READ/WRITE LONG
(via SMART WRITE LOG)
B0 00 00D6 0000 0000000000E0
0001 <data xfered>False(null)(Power Cycle)

SCT READ/WRITE LONG
(via WRITE LOG EXT)
3F 00 0000 0000 0000000000E0
0001 <data xfered>False(null)(Power Cycle)

SCT READ/WRITE LONG
(via WRITE LOG DMA EXT)
57 00 0000 0000 0000000000E0
0001 <data xfered>False(null)(Power Cycle)

SET FEATURES
enable PUIS
EF 00 0006 0000 000000000000

False(null)(Power Cycle)

SET FEATURES
disable PUIS
EF 00 0086 0000 000000000000

False(null)(Power Cycle)

SMART DISABLE OPERATIONS
B0 00 00D9 0000 000000000000

False(null)(Power Cycle)

False(null)(Power Cycle)

False(null)(Power Cycle)

False(null)(Power Cycle)

ComandFilter

WRITE LOG DMA EXT(host vendor specific log)
57 00 0000 0000 000000000080
57 00 0000 0000 000000000081...
57 00 0000 0000 00000000009F
WRITE LOG EXT(host vendor specific log)
3F 00 0000 0000 000000000080
3F 00 0000 0000 000000000081...
3F 00 0000 0000 00000000009F
DCO RESTORE
B3 00 00C0 0000 000000000000

Page 68 of 81

AllowedTrueOnReset

AllowedFalseOnReset

DCO SET
B3 00 00C30000 000000000000

False(null)(Power Cycle)

DOWNLOAD MICROCODE
92 00 0000 0000 000000000000

False(null)(Power Cycle)

00 00 0C 01
00 00 00 17

FF 00 0000
0000
000000000000
FF 00 0000
0000
000000000000

READ LONG W/O RETRIES
23 00 0000 0000 000000000000

False(null)(Power Cycle)

00 00 00 00
00 00 00 00

FF 00 0000
0000
000000000000

WRITE LONG W/O RETRIES
33 00 0000 0000 000000000000

False(null)(Power Cycle)

Next

00 00 0C 01
00 00 00 14

00 00 0C 01
00 00 00 15

00 00 0C 01
00 00 00 15

00 00 0C 01
00 00 00 16

00 00 0C 01
00 00 00 16
00 00 0C 01
00 00 00 17

CommandMask
FF 00 00FF
0000
000000000000

UID

Revision 1.0

TCG Copyright

AllowedTCG Storage Opal SSC
Specification Version 1.0

ComandFilter

Page 69 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright00 00 0C 01
00 00 00 02

00 00 0C 01
00 00 00 03

FF 00 00FF
0000
000000000000

00 00 0C 01
00 00 00 03

00 00 0C 01
00 00 00 04

FF 00 00FF
0000
000000000000

00 00 0C 01
00 00 00 05

FF 00 00FF
0000
000000000000

00 00 0C 01
00 00 00 06

FF 00 00FF
0000
000000000000

00 00 0C 01
00 00 00 07

FF 00 00 00
000000
FF 01 00 00
00 00 00 00 00
00 00 00
00 00 00 00
FF

00 00 0C 01
00 00 00 04
00 00 0C 01
00 00 00 05

00 00 0C 01
00 00 00 06

00 00 0C 01
00 00 00 07

00 00 0C 01
00 00 00 08

Revision 1.0

00 00 0C 01
00 00 00 08

00 00 0C 01
00 00 00 09

00

FF 00 00 00
000000
FF 01 00 00
00 00 00 00 00
00 00 00
00 00 00 00
FF
FF 00 00 00
000000FF FF 00 00
00 00 00 00 00
00 00 00

AllowedFalseOnReset

Next
00 00 0C 01
00 00 00 02

AllowedTrueOnReset

UID
00 00 0C 01
00 00 00 01

AllowedCommandMask

Table 39 Example RestrictedCommands Table (ATAPI)

False(null)(PowerCycle)DCO RESTORE
B3 00 00C0 0000 000000000000

False(null)(PowerCycle)DCO SET
B3 00 00C30000 000000000000

False(null)(PowerCycle)SET FEATURES
enable PUIS
EF 00 0006 0000 000000000000

False(null)(PowerCycle)SET FEATURES
disable PUIS
EF 00 0086 0000 000000000000

False(null)(PowerCycle)

PACKET
MODE SELECT (6)(allow SP=0 for mode page 1Ah)
A0 00 00 00 000000
15 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00<HDR>
1A<PAGE CODE>

True(PowerCycle)(null)

False(null)(PowerCycle)

True(PowerCycle)(null)

Comand Filter
DO NOT MATCH ANY COMMANDFF

PACKET
MODE SELECT (6)(restrict SP=1 for mode page 1Ah)
A0 00 00 00 000000
15 01 00 00 00 00 00 00 00 00 00 00
00 00 00 00<HDR>
1A<PAGE CODE>
PACKET
READ BUFFER (10)(allow mode 1Ch)A0 00 00 00 000000
3C 1C 00 00 00 00 00 00 00 00 00 00

Page 70 of 81

00 00 0C 01
00 00 00 0B

00 00 0C 01
00 00 00 0D

00 00 0C 01
00 00 00 0E

00 00 0C 01
00 00 00 0F

00 00 0C 01
00 00 00 10

00 00 0C 01
00 00 00 11

Revision 1.0

00 00 0C 01
00 00 00 0B

00 00 0C 01
00 00 00 0C

00 00 0C 01
00 00 00 0E

00 00 0C 01
00 00 00 0F

00 00 0C 01
00 00 00 10

00 00 0C 01
00 00 00 11

00 00 0C 01
00 00 00 12

PACKET
READ BUFFER (10)(restrict all other modes)
A0 00 00 00 000000
3C FF 00 00 00 00 00 00 00 00 00 00
PACKET
READ LONG(10)A0 00 00 00 000000
3E 00 00 00 00 00 00 00 00 00 00 00
PACKET
WRITE BUFFER (allow mode 04h)
A0 00 00 00 000000
3B 04 00 00 00 00 00 00 00 00 00 00
PACKET
WRITE BUFFER (allow mode 05h)
A0 00 00 00 000000
3B 05 00 00 00 00 00 00 00 00 00 00
PACKET
WRITE BUFFER (allow mode 06h)
A0 00 00 00 000000
3B 06 00 00 00 00 00 00 00 00 00 00
PACKET
WRITE BUFFER (allow mode 07h)
A0 00 00 00 000000
3B 07 00 00 00 00 00 00 00 00 00 00
PACKET
WRITE BUFFER (allow mode 0Eh)
A0 00 00 00 000000
3B 0E 00 00 00 00 00 00 00 00 00 00
PACKET
WRITE BUFFER (allow mode 0Fh)
A0 00 00 00 000000
3B 0F 00 00 00 00 00 00 00 00 00 00

AllowedFalseOnReset

00 00 0C 01
00 00 00 0A

00 00 0C 01
00 00 00 0A

FF 00 00 00
000000FF FF 00 00
00 00 00 00 00
00 00 00
FF 00 00 00
000000FF 00 00 00
00 00 00 00 00
00 00 00
FF 00 00 00
000000FF FF 00 00
00 00 00 00 00
00 00 00
FF 00 00 00
000000FF FF 00 00
00 00 00 00 00
00 00 00
FF 00 00 00
000000FF FF 00 00
00 00 00 00 00
00 00 00
FF 00 00 00
000000FF FF 00 00
00 00 00 00 00
00 00 00
FF 00 00 00
000000FF FF 00 00
00 00 00 00 00
00 00 00
FF 00 00 00
000000FF FF 00 00
00 00 00 00 00
00 00 00

Comand Filter

AllowedTrueOnReset

00 00 0C 01
00 00 00 09

Next

AllowedUID

TCG CopyrightCommandMask

TCG Storage Opal SSC
Specification Version 1.0

False(null)(PowerCycle)

False(null)(PowerCycle)

True(PowerCycle)(null)

True(PowerCycle)(null)

True(PowerCycle)(null)

True(PowerCycle)(null)

True(PowerCycle)(null)

True(PowerCycle)(null)

Page 71 of 81

00 00 0C 01
00 00 00 12

Revision 1.0

00 00 00 00
00 00 00 00

AllowedFalseOnReset

FF 00 00 00
000000FF 00 00 00
00 00 00 00 00
00 00 00

Comand Filter

AllowedTrueOnReset

Next

AllowedUID

TCG CopyrightCommandMask

TCG Storage Opal SSC
Specification Version 1.0

False(null)(PowerCycle)

PACKET
WRITE LONG(10)A0 00 00 00 000000
3F 00 00 00 00 00 00 00 00 00 00 00

Page 72 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright00 00 0C 01
00 00 00 01

00 00 0C 01
00 00 00 02

00 00 0C 01
00 00 00 02

00 00 0C 01
00 00 00 03

00 00 0C 01
00 00 00 03

00 00 0C 01
00 00 00 04

00 00 0C 01
00 00 00 04

00 00 0C 01
00 00 00 05

00 00 0C 01
00 00 00 05

00 00 0C 01
00 00 00 06

00 00 0C 01
00 00 00 06

00 00 0C 01
00 00 00 07

00 00 0C 01
00 00 00 07
00 00 0C 01
00 00 00 08
00 00 0C 01
00 00 00 09
00 00 0C 01
00 00 00 0A
00 00 0C 01
00 00 00 0B
00 00 0C 01
00 00 00 0C
Revision 1.0

00 00 0C 01
00 00 00 08
00 00 0C 01
00 00 00 09
00 00 0C 01
00 00 00 0A
00 00 0C 01
00 00 00 0B
00 00 0C 01
00 00 00 0C
00 00 0C 01
00 00 00 0D

00
FF 00 00 00 00 00
00 00 00 00
FF 00 00 00 00 00
00 00 00 00
FF 00 00 00 00 00
00 00 00 00
00 00 00 00 00 00
FF 00 00 00 00 00
00 00 00 00
00 00 00 00 00 00
FF 1F 00 00 00 00
00 00 00 00
FF 1F 00 00 00 00
00 00 00 00
FF 1F 00 00 00 00
00 00 00 00
FF 1F 00 00 00 00
00 00 00 00
FF 1F 00 00 00 00
00 00 00 00
FF 1F 00 00 00 00
00 00 00 00
FF 1F 00 00 00 00
00 00 00 00

AllowedFalseOnReset

Next

AllowedTrueOnReset

UID

CommandMask

Table 40 Example RestrictedCommands Table (SCSI)

CommandFilter

AllowedFF

False(null)

False(null)

False(null)

False(null)(PowerCycle, HW
reset)

False(null)(PowerCycle, HW
reset)

True(PowerCycle, HW
reset)(null)

False(null)(PowerCycle, HW
reset)

True(PowerCycle, HW
reset)(null)

True(PowerCycle, HW
reset)(null)

True(PowerCycle, HW
reset)(null)

True(PowerCycle, HW
reset)(null)

True(PowerCycle, HW
reset)(null)READ LONG(10)3E 00 00 00 00 00 00 00 00 00
WRITE LONG(10)3F 00 00 00 00 00 00 00 00 00
READ LONG(16)9E 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
WRITE LONG(16)9F 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
READ BUFFER (allow mode 1Ch)
3C 1C 00 00 00 00 00 00 00 00
READ BUFFER (restrict all othermodes)
3C FF 00 00 00 00 00 00 00 00
WRITE BUFFER (allow mode04h)
3B 04 00 00 00 00 00 00 00 00
WRITE BUFFER (allow mode05h)
3B 05 00 00 00 00 00 00 00 00
WRITE BUFFER (allow mode06h)
3B 06 00 00 00 00 00 00 00 00
WRITE BUFFER (allow mode07h)
3B 07 00 00 00 00 00 00 00 00
WRITE BUFFER (allow mode
0Eh)
3B 0E 00 00 00 00 00 00 00 00

Page 73 of 81(PowerCycle, HW
reset)(PowerCycle, HW
reset)(PowerCycle, HW
reset)

00 00 0C 01
00 00 00 0E

Revision 1.0

00 00 0C 01
00 00 00 0E
00 00 00 00
00 00 00 00

FF 1F 00 00 00 00
00 00 00 00
FF 1F 00 00 00 00
00 00 00 00

CommandFilter
WRITE BUFFER (allow mode
0Fh)
3B 0F 00 00 00 00 00 00 00 00
WRITE BUFFER(restrict all other modes)

AllowedFalseOnReset

00 00 0C 01
00 00 00 0D

Next

AllowedTrueOnResetUID

TCG CopyrightCommandMask

TCG Storage Opal SSC
Specification Version 1.0

True(PowerCycle, HW
reset)(null)

False(null)(PowerCycle, HW
reset)

Allowed3B FF 00 00 00 00 00 00 00 00

Page 74 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

5.2 Opal SSC-Specific Methods
5.2.1 Activate – Admin Template SP Object Method
Activate is an Opal SSC-specific method for managing the life cycle of SPs created in manufacturing, whose

initial life cycle state is “Manufactured-Inactive”.
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 TPerowner 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.
Support for Activate within transactions is (N), and the behavior is out of the scope of this document.
If the Locking SP was created in manufacturing, and its Original Factory State is Manufactured-Inactive (seesection 5.3.2), support for Activate on the Locking SP’s object in the SP Table is mandatory.
If Activate is invoked on the Locking SP while ATA Security is Enabled (i.e., a User Password is set), themethod invocation SHALL fail with a status of FAIL.
The MethodID for Activate SHALL be 00 00 00 06 00 00 02 03.
5.2.1.1 Side effects of Activate
Upon successful activation of an SP that was in the “Manufactured-Inactive” state, the following changes
SHALL be made:o

The LifeCycleState column of SP’s object in the Admin SP’s SP table SHALL change to“Manufactured”.

o

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 aknown PIN credential.

oAny TPer functionality affected by the life cycle state of the SP based on the templates incorporated
into it is modified as defined in the appropriate Template reference section of the Core Spec, and as
defined in the “State transitions for Manufactured SPs” section (section 5.3.2.2) and “State behaviors
for Manufactured SPs” section (section 5.3.2.3) of this specification.

Revision 1.0

Page 75 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright5.2.2 Revert – Admin Template SP Object Method
Revert is an Opal SSC-specific method for managing the life cycle of SPs created in manufacturing.

SPObjectUID.Revert[ ]=>[ ]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 theTPer owner (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.
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 themethod invocation if invoked outside of a transaction. The TPer MAY prepare a CloseSession method for
retrieval by the host to indicate that the session has been aborted.
Support for Revert within transactions is (N), and the behavior is out of the scope of this document.
Support for Revert on the Admin SP’s object in the SP table is optional.
Support for Revert on the Locking SP’s object in the SP Table is optional.
Invocation of Revert is permitted on Manufactured SPs that are in any life cycle state.
The MethodID for Revert SHALL be 00 00 00 06 00 00 02 02.
5.2.2.1.1

Side effects of Revert

Upon successful invocation of the Revert method, the following changes SHALL be made:o

The row in the Admin SP’s SP table that represents this SP SHALL revert to its original factory values.

o

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 revert the personalized values totheir original factory values. The mechanism for secure erasure is implementation-specific. Informativenote: Reverting the Locking SP will cause the media encryption keys to be eradicated, which has theside effect of securely erasing all data in the User LBA portion of the SD.
ooWhen Revert is successfully invoked on the SP object for the Admin SP (UID = 00 00 02 05 00
00 00 01), the entire TPer SHALL revert to its Original Factory State, including all
personalization of the Admin SP itself. All issued SPs SHALL be deleted, and all Manufactured
SPs SHALL revert to Original Factory State.

Any TPer functionality affected by the life cycle state of the SP based on the templates incorporated
into it is modified as defined in the appropriate Template reference section of the Core Spec, and as
defined in the “State transitions for Manufactured SPs” section (section 5.3.2.2) and “State behaviors
for Manufactured SPs” section (section 5.3.2.3) of this specification.

5.2.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.

Revision 1.0

Page 76 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

ThisSP.RevertSP[ KeepGlobalRangeKey = boolean ]=>[ ]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
owner to 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 report status of the method invocation if invoked outside of a transaction, and then immediately abortthe session. The TPer MAY prepare a CloseSession method for retrieval by the host to indicate that thesession has been aborted.
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.
The MethodID for RevertSP SHALL be 00 00 00 06 00 00 00 11.
5.2.3.1 KeepGlobalRangeKey parameter (Locking Template-specific)
The optional KeepGlobalRangeKey parameter is a Locking Template-specific optional parameter. Thisparameter 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 TCG management of the SD's locking and media encryption
features to be disabled without causing a cryptographic erase of the user data associated with the Global
locking range.
When this parameter is present and set to True, the TPer SHALL continue to use the media encryption key
associated with the Global locking range after the Locking SP transitions to the “Manufactured-Inactive” state.
The following condition SHALL guarantee that the TPer can comply with the request to keep the Global Range’s
media encryption key:o

The Global Range is either Read Unlocked or Write Unlocked at the time of invocation of RevertSP

If the TPer cannot comply with the request to keep the Global Range’s media encryption key, then the method
invocation 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.2.3.2 Side effects of RevertSP
Upon successful invocation of the RevertSP method, the following changes SHALL be made:o

The SP’s object in the Admin SP’s SP table SHALL revert to its original factory values.

o

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 revert the personalized values totheir original factory values. The mechanism for secure erasure is implementation-specific. The
exception to the secure erasure is the value of the Global Range’s media encryption key(K_AES_{128,256}_GlobalRange_Key) in the Locking SP, if the KeepGlobalRangeKey parameter ispresent and set to True. Informative note: Reverting the Locking SP will cause the media encryption
keys to be eradicated (except for the GlobalRange key if the KeepGlobalRangeKey parameter ispresent and set to True), which has the side effect of securely erasing all data in the User LBA portionof the SD.

o

Any TPer functionality affected by the life cycle state of the SP based on the templates incorporated
into it is modified as defined in the appropriate Template reference section of the Core Spec, and as

Revision 1.0

Page 77 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyrightdefined in the “State transitions for Manufactured SPs” section (section 5.3.2.2) and “State behaviors
for Manufactured SPs” section (section 5.3.2.3) of this specification.

Revision 1.0

Page 78 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright

5.3 Life Cycle
5.3.1 Issued vs. Manufactured SPs
5.3.1.1 Issued SPs
The Core Specification describes the life cycle states for SPs that are created through the issuance process.
For Opal SSC-compliant TPers that support issuance, refer to the Core Specification for the life cycle states andlife cycle management.
5.3.1.2 Manufactured SPs
The Core Specification defines the life cycle and life cycle management of Manufactured SPs as
implementation-specific.
Opal SSC-compliant SPs that are created in manufacturing (Manufactured SPs) SHALL NOT have
implementation-specific life cycle, and SHALL conform to the life cycle defined in section 5.3.2.

5.3.2 Manufactured SP Life Cycle States
The state diagram for Manufactured SPs is shown in Figure 2.
Figure 2 Life Cycle State Diagram for Manufactured SPs

Manufactured Disabled

Manufactured Inactive

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.2.2 and 5.2.3) on the SP will cause the SP totransition 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 or
Manufactured.
If the Locking SP is a Manufactured SP, support of the Manufactured state is mandatory and support of the
Manufactured-Inactive state is optional for the Locking SP.
The other states in the state diagram are beyond the scope of this document.

5.3.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 desirable 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
Revision 1.0

Page 79 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG CopyrightInstances 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 initialrequired access control settings of an SP based on the Templates incorporated into the SP, prior topersonalization.
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.3.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 FACTORYSTATE” (5.3.2.2.2). As the only mandatory state for the Admin SP is Manufactured, the only mandatorytransition is from Manufactured to Manufactured with the side effect of reverting the entire TPer to its Original
Factory State. See section 5.2.2 for details.
If the Locking SP is a Manufactured SP, support for the “ANY STATE to ORIGINAL FACTORY STATE”
transition (5.3.2.2.2) is mandatory. Specifically, support for the transition from Manufactured to either
Manufactured-Inactive or Manufactured is mandatory, depending on the Locking SP’s Original Factory State.
This transition is accomplished via the Revert or RevertSP method (see sections 5.2.2 and 5.2.3).
If the Locking SP’s Original Factory State is Manufactured-Inactive, then support for the “Manufactured-Inactive
to Manufactured” transition (5.3.2.2.1) is mandatory. This transition is accomplished via the Activate method(see section 5.2).
5.3.2.2.1

Manufactured-Inactive to Manufactured

Triggers:•

The Activate method (see section 5.2) 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 for taking ownership of the SP with aknown 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 invocationof the Activate method), the SD SHALL NOT destroy any user data.
5.3.2.2.2

ANY STATE to ORIGINAL FACTORY STATE

Triggers:•

Revert or RevertSP is successfully invoked on the SP.

Side effects:•

The value in the LifeCycleState column of the SP’s object in the Admin SP’s SP table changes to thevalue of the SP’s Original Factory State.

Revision 1.0

Page 80 of 81

TCG Storage Opal SSC
Specification Version 1.0

TCG Copyright•

The SP itself reverts to its Original Factory State, as described in the sections 5.2.2 and 5.2.3.

•

If the SP’s Original Factory State was Manufactured-Inactive, any functionality enabled by the
templates incorporated into the SP becomes inactive.

5.3.2.3
5.3.2.3.1

State behaviors for Manufactured SPs
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 TCG management of the SD's locking andmedia encryption features SHALL be disabled.
5.3.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 by the Core Specification.
When the Locking SP is in the Manufactured state, the TCG management of the SD's locking and media
encryption features SHALL be enabled.
5.3.2.4 Locking SP Life Cycle Interactions with the ATA Security Feature Set
The storage device MAY support the ATA Security feature set when the Locking SP is in the Nonexistent state(for TPers that support issuance of the Locking SP) or the Manufactured-Inactive state (for TPers that contain amanufactured Locking SP). In all other life cycle states for the Locking SP, the storage device SHALL reportthat the ATA Security feature set is “not supported” (IDENTIFY DEVICE, word 82, bit 1 = 0).
When ATA Security is Enabled (i.e., a User Password is set), the TPer SHALL prohibit a Manufactured Locking
SP from transitioning out of the Manufactured-Inactive state (see section 5.2)

5.3.3 Type Table Modification
In order to accommodate the additional life cycle states defined in Opal, the life_cycle_state type SHALL
be defined as follows for Opal:
Table 41 LifeCycle Type Table Modification
UID
Name
00 00 00 05 life_cycle_state
00 00 04 05

Revision 1.0

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

Page 81 of 81