TCG Storage
Security Subsystem Class:
Opal
Specification Version 2.00
Revision 1.00

February 24, 2012

Contact: admin@trustedcomputinggroup.org

TCG PUBLISHED
Copyright © TCG 2012

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

Disclaimers, Notices, and License Terms
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 this specification, and TCG
disclaims all liability for cost of procurement of substitute goods or services, lost profits, loss of use, lossof data or any incidental, consequential, direct, indirect, or special damages, whether under contract, tort,
warranty or otherwise, arising in any way out of use or reliance upon this specification or any information
herein.
This document is copyrighted by Trusted Computing Group (TCG), and no license, express or
implied, is granted herein other than as follows: You may not copy or reproduce the document
or distribute it to others without written permission from TCG, except that you may freely do sofor the purposes of (a) examining or implementing TCG specifications or (b) developing, testing,or promoting information technology standards and best practices, so long as you distributethe document with these disclaimers, notices, and license terms.
Contact the Trusted Computing Group at www.trustedcomputinggroup.org for information on specification
licensing through membership agreements.
Any marks and brands contained herein are the property of their respective owners.

Revision 1.00

Page ii of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

Change History
Version / Revision

Date

Version 1.00 Rev 1.00

27 January, 2009

Version 1.00 Rev 2.00

20 April, 2009

Version 1.00 Rev 3.00

18 December, 2009

Description
First publication
Changed TCG Storage Architecture Core Specificationreference and Opal SSC specification numbering
Corrected the definition of LockingEnabled bit
Clarified Revert when Manufactured-Inactive

Version 2.00 Rev 1.00

24 February, 2012

Added LBA range alignment restriction information
mechanism
Added SecretProtect table as Mandatory in the Locking
SP media encryption keys
Added Sector Table access granularity reporting
mechanism
Added support for SEDs with SID values not equal to
MSID
Added support for Admin authorities in the Admin SP
Provided an optional ability to disable the SID authority in
the Admin SP
Added a programmatic TPer reset mechanism
Made Additional DataStore Feature Set mandatory for
SEDs compliant with Opal v2.00
Added a mechanism for disallowing User authorities tochange their C_PIN values
Allowed modification of CommonName columns in
Locking and Authority tables of the Locking SP
Made Authenticate method of the Base templatemandatory
Made Random method of the Crypto template mandatory

Version 2.00 Rev 1.00

Revision 1.00

24 February, 2012

Second Publication

Page iii of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

TABLE OF CONTENTS

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

2

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

3

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

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

OPAL SSC FEATURES.................................................................................................................................... 13
3.1
SECURITY PROTOCOL 1 SUPPORT ................................................................................................................. 13
3.1.1
Level 0 Discovery (M).......................................................................................................................... 13
3.1.1.1
Level 0 Discovery Header ........................................................................................................... 13
3.1.1.2
TPer Feature (Feature Code = 0x0001) ....................................................................................... 14
3.1.1.3
Locking Feature (Feature Code = 0x0002) .................................................................................. 14
3.1.1.3.1 LockingEnabled Definition ....................................................................................................... 15
3.1.1.4
Geometry Reporting Feature (Feature Code = 0x0003) .............................................................. 15
3.1.1.4.1 Overview ................................................................................................................................... 15
3.1.1.4.2 Align .......................................................................................................................................... 16
3.1.1.4.3 LogicalBlockSize ...................................................................................................................... 16
3.1.1.4.4 AlignmentGranularity................................................................................................................ 16
3.1.1.4.5 LowestAlignedLBA .................................................................................................................. 16
3.1.1.5
Opal SSC V2.00 Feature (Feature Code = 0x0203) .................................................................... 16
3.2
SECURITY PROTOCOL 2 SUPPORT ................................................................................................................. 17
3.2.1
ComID Management ............................................................................................................................ 17
3.2.2
Stack Protocol Reset (M) ..................................................................................................................... 17
3.2.3
TPER_RESET command (M) ............................................................................................................... 17
3.3
COMMUNICATIONS ....................................................................................................................................... 19
3.3.1
Communication Properties .................................................................................................................. 19
3.3.2
Supported Security Protocols .............................................................................................................. 19
3.3.3
ComIDs ................................................................................................................................................ 19
3.3.4
Synchronous Protocol .......................................................................................................................... 20
3.3.4.1
Payload Encoding ........................................................................................................................ 21
3.3.4.1.1 Stream Encoding Modifications ................................................................................................ 21
3.3.4.1.2 TCG Packets .............................................................................................................................. 21
3.3.4.1.3 Payload Error Response ............................................................................................................ 21
3.3.5
Storage Device Resets .......................................................................................................................... 21

Revision 1.00

Page iv of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

3.3.5.1
Interface Resets ........................................................................................................................... 21
3.3.5.2
TCG Reset Events ....................................................................................................................... 22
3.3.6
Protocol Stack Reset Commands (M) .................................................................................................. 22
4

OPAL SSC-COMPLIANT FUNCTIONS AND SPS ...................................................................................... 23
4.1
SESSION MANAGER ...................................................................................................................................... 23
4.1.1
Methods ............................................................................................................................................... 23
4.1.1.1
Properties (M).............................................................................................................................. 23
4.1.1.2
StartSession (M) .......................................................................................................................... 24
4.1.1.3
SyncSession (M) .......................................................................................................................... 24
4.1.1.4
CloseSession (O) ......................................................................................................................... 24
4.2
ADMIN SP..................................................................................................................................................... 25
4.2.1
Base Template Tables .......................................................................................................................... 25
4.2.1.1
SPInfo (M) ................................................................................................................................... 25
4.2.1.2
SPTemplates (M) ......................................................................................................................... 25
4.2.1.3
Table (M)..................................................................................................................................... 26
4.2.1.4
MethodID (M) ............................................................................................................................. 27
4.2.1.5
AccessControl (M) ...................................................................................................................... 27
4.2.1.6
ACE (M) ...................................................................................................................................... 34
4.2.1.7
Authority (M) .............................................................................................................................. 35
4.2.1.8
C_PIN (M)................................................................................................................................... 35
4.2.2
Base Template Methods ....................................................................................................................... 36
4.2.3
Admin Template Tables ....................................................................................................................... 37
4.2.3.1
TPerInfo (M) ............................................................................................................................... 37
4.2.3.2
Template (M) ............................................................................................................................... 37
4.2.3.3
SP (M) ......................................................................................................................................... 38
4.2.4
Admin Template Methods .................................................................................................................... 38
4.2.5
Crypto Template Tables ....................................................................................................................... 39
4.2.6
Crypto Template Methods .................................................................................................................... 39
4.2.6.1
Random ....................................................................................................................................... 39
4.3
LOCKING SP ................................................................................................................................................. 40
4.3.1
Base Template Tables .......................................................................................................................... 40
4.3.1.1
SPInfo (M) ................................................................................................................................... 40
4.3.1.2
SPTemplates (M) ......................................................................................................................... 40
4.3.1.3
Table (M)..................................................................................................................................... 40
4.3.1.4
Type (N) ...................................................................................................................................... 42
4.3.1.5
MethodID (M) ............................................................................................................................. 42
4.3.1.6
AccessControl (M) ...................................................................................................................... 42
4.3.1.7
ACE (M) ...................................................................................................................................... 65
4.3.1.8
Authority (M) .............................................................................................................................. 68
4.3.1.9
C_PIN (M)................................................................................................................................... 69
4.3.1.10
SecretProtect (M) ........................................................................................................................ 70
4.3.2
Base Template Methods ....................................................................................................................... 70
4.3.3
Crypto Template Tables ....................................................................................................................... 71
4.3.4
Crypto Template Methods .................................................................................................................... 71
4.3.4.1
Random ....................................................................................................................................... 71
4.3.5
Locking Template Tables ..................................................................................................................... 72
4.3.5.1
LockingInfo (M) .......................................................................................................................... 72
4.3.5.2
Locking (M) ................................................................................................................................ 72
4.3.5.2.1 Geometry Reporting Feature Behavior ...................................................................................... 73
4.3.5.2.2 LockOnReset Restrictions ......................................................................................................... 74
4.3.5.3
MBRControl (M) ......................................................................................................................... 74
4.3.5.3.1 DoneOnReset Restrictions ......................................................................................................... 75
4.3.5.4
MBR (M) ..................................................................................................................................... 75
4.3.5.5
K_AES_128 or K_AES_256 (M) ................................................................................................ 75
4.3.6
Locking Template Methods .................................................................................................................. 76

Revision 1.00

Page v of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

4.3.7
SD Read/Write Data Command Locking Behavior .............................................................................. 77
4.3.8
Interface Control Template Tables ...................................................................................................... 78
4.3.8.1
RestrictedCommands (O) ............................................................................................................ 78
4.3.9
Non Template Tables ........................................................................................................................... 78
4.3.9.1
DataStore (M) .............................................................................................................................. 78
5

APPENDIX – SSC SPECIFIC FEATURES.................................................................................................... 79
5.1
INTERFACE CONTROL TEMPLATE ................................................................................................................. 79
5.1.1
Overview .............................................................................................................................................. 79
5.1.2
Data Structures .................................................................................................................................... 79
5.1.2.1
RestrictedCommands (Object Table) .......................................................................................... 79
5.1.3
Descriptions ......................................................................................................................................... 80
5.1.3.1
Interface Control Template-Specific Life Cycle State Descriptions/Exceptions ......................... 81
5.1.4
Examples .............................................................................................................................................. 82
5.2
OPAL SSC-SPECIFIC METHODS .................................................................................................................... 90
5.2.1
Activate – Admin Template SP Object Method .................................................................................... 90
5.2.1.1
Activate Support .......................................................................................................................... 90
5.2.1.2
Side effects of Activate ............................................................................................................... 90
5.2.2
Revert – Admin Template SP Object Method ....................................................................................... 91
5.2.2.1
Revert Support ............................................................................................................................. 91
5.2.2.2
Side effects of Revert .................................................................................................................. 91
5.2.2.2.1 Effects of Revert on the PIN Column Value of C_PIN_SID ..................................................... 92
5.2.3
RevertSP – Base Template SP Method ................................................................................................ 92
5.2.3.1
RevertSP Support ........................................................................................................................ 92
5.2.3.2
KeepGlobalRangeKey parameter (Locking Template-specific).................................................. 92
5.2.3.3
Side effects of RevertSP .............................................................................................................. 93
5.3
LIFE CYCLE .................................................................................................................................................. 94
5.3.1
Issued vs. Manufactured SPs ............................................................................................................... 94
5.3.1.1
Issued SPs .................................................................................................................................... 94
5.3.1.2
Manufactured SPs ........................................................................................................................ 94
5.3.2
Manufactured SP Life Cycle States ...................................................................................................... 94
5.3.2.1
State definitions for Manufactured SPs ....................................................................................... 94
5.3.2.2
State transitions for Manufactured SPs........................................................................................ 95
5.3.2.2.1 Manufactured-Inactive to Manufactured ................................................................................... 95
5.3.2.2.2 ANY STATE to ORIGINAL FACTORY STATE .................................................................... 95
5.3.2.3
State behaviors for Manufactured SPs ......................................................................................... 96
5.3.2.3.1 Manufactured-Inactive .............................................................................................................. 96
5.3.2.3.2 Manufactured............................................................................................................................. 96
5.3.2.4
Locking SP Life Cycle Interactions with the ATA Security Feature Set .................................... 96
5.3.3
Type Table Modification ...................................................................................................................... 96
5.4
BYTE TABLE ACCESS GRANULARITY ........................................................................................................... 97
5.4.1
Table Table Modification..................................................................................................................... 97
5.4.1.1
MandatoryWriteGranularity ........................................................................................................ 97
5.4.1.1.1 Object Tables............................................................................................................................. 97
5.4.1.1.2 Byte Tables ................................................................................................................................ 97
5.4.1.2
RecommendedAccessGranularity ............................................................................................... 98
5.4.1.2.1 Object Tables............................................................................................................................. 98
5.4.1.2.2 Byte Tables ................................................................................................................................ 98
5.5
EXAMPLES OF ALIGNMENT GEOMETRY REPORTING..................................................................................... 99

Revision 1.00

Page vi of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

TablesTable 1 Opal SSC Terminology .................................................................................................................... 9
Table 2 SP Table Legend ........................................................................................................................... 10
Table 3 Level 0 Discovery Header .............................................................................................................. 13
Table 4 Level 0 Discovery - TPer Feature Descriptor ................................................................................. 14
Table 5 Level 0 Discovery - Locking Feature Descriptor ............................................................................ 14
Table 6 Level 0 Discovery - Geometry Reporting Feature Descriptor ........................................................ 15
Table 7 Level 0 Discovery - Opal SSC V2.00 Feature Descriptor .............................................................. 16
Table 8 TPER_RESET Command .............................................................................................................. 18
Table 9 ComID Assignments ...................................................................................................................... 20
Table 10 Supported Tokens ........................................................................................................................ 21
Table 11 reset_types ................................................................................................................................... 22
Table 12 Properties Requirements ............................................................................................................. 23
Table 13 Admin SP - SPInfo Table Preconfiguration .................................................................................. 25
Table 14 Admin SP - SPTemplates Table Preconfiguration ....................................................................... 25
Table 15 Admin SP - Table Table Preconfiguration ................................................................................... 26
Table 16 Admin SP - MethodID Table Preconfiguration ............................................................................. 27
Table 17 Admin SP - AccessControl Table Preconfiguration ..................................................................... 28
Table 18 Admin SP - ACE Table Preconfiguration ..................................................................................... 34
Table 19 Admin SP - Authority Table Preconfiguration .............................................................................. 35
Table 20 Admin SP - C_PIN Table Preconfiguration .................................................................................. 35
Table 21 Admin SP – TPerInfo Columns .................................................................................................... 37
Table 22 Admin SP - TPerInfo Table Preconfiguration ............................................................................... 37
Table 23 Admin SP - Template Table Preconfiguration ............................................................................. 37
Table 24 Admin SP - SP Table Preconfiguration ........................................................................................ 38
Table 25 Locking SP - SPInfo Table Preconfiguration ............................................................................... 40
Table 26 Locking SP - SPTemplates Table Preconfiguration ..................................................................... 40
Table 27 Locking SP - Table Table Preconfiguration ................................................................................. 41
Table 28 Locking SP - MethodID Table Preconfiguration ........................................................................... 42
Table 29 Locking SP - AccessControl Table Preconfiguration ................................................................... 43
Table 30 Locking SP - ACE Table Preconfiguration ................................................................................... 65
Table 31 Locking SP - Authority Table Preconfiguration ............................................................................ 68
Table 32 Locking SP - C_PIN Table Preconfiguration ................................................................................ 69
Table 33 Locking SP - SecretProtect Table Preconfiguration .................................................................... 70
Table 34 Locking SP – LockingInfo Columns ............................................................................................. 72
Table 35 Locking SP - LockingInfo Table Preconfiguration ........................................................................ 72
Table 36 Locking SP - Locking Table Preconfiguration .............................................................................. 73
Table 37 Locking SP - MBRControl Table Preconfiguration ....................................................................... 75
Table 38 Locking SP - K_AES_128 Table Preconfiguration....................................................................... 75
Table 39 Locking SP - K_AES_256 Table Preconfiguration....................................................................... 75
Table 40 RestrictedCommands Table Preconfiguration ............................................................................. 78
Table 41 RestrictedCommands Table Description ..................................................................................... 79
Table 42 CommandMask and CommandFilter (ATA) ................................................................................. 80
Table 43 CommandMask and CommandFilter (ATAPI) ............................................................................. 80
Table 44 CommandMask and CommandFilter (SCSI) ............................................................................... 80
Table 45 Example RestrictedCommands Table (ATA) ............................................................................... 82
Table 46 Example RestrictedCommands Table (ATAPI) ........................................................................... 85
Table 47 Example RestrictedCommands Table (SCSI) ............................................................................. 88
Table 48 LifeCycle Type Table Modification ............................................................................................... 96
Table 49 Table Table Additional Columns .................................................................................................. 97

Revision 1.00

Page vii of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

Introduction

1

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 to
the policies of the trusted platform, and the lifecycle state of the Storage Device as a Trusted Peripheral.

1.2 Scope and Intended Audience
This specification defines the Opal Security Subsystem Class (SSC). Any SD that claims OPAL SSC
compatibility SHALL conform to this specification.
The intended audience for this specification is both trusted Storage Device manufacturers and developers 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 2.00
[3]. NIST, FIPS-197, 2001, “Advanced Encryption Standard (AES)”[4]. [INCITS T10/1731-D], “Information technology - SCSI Primary Commands - 4 (SPC-4)“[5]. [INCITS T13/2015-D], "Information technology - ATA/ATAPI Command Set - 2 (ACS-2)"[6]. Trusted Computing Group (TCG), “TCG Storage Interface Interactions Specification“, Version 1.02
[7]. Trusted Computing Group (TCG), “TCG Storage Security Subsystem Class: Opal”, Version 1.00
[8]. Trusted Computing Group (TCG), “TCG Storage Opal SSC Feature Set: Additional DataStore Tables”,
Version 1.00

Revision 1.00

Page 8 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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 created and preconfigured
during the SD manufacturing process

N/A

Not Applicable.

Original Factory State (OFS)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.00

Page 9 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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

R-W
Read-only

Read-only

Arial-Narrow

Not
DefinedValue
Opal SSC specified

VU

(N)

Access Control
Fixed

Fixed

Not Defined












Arial Narrowbold-under

Arial-Narrow

Revision 1.00

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 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 10 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

Opal SSC Overview

2

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

Page 11 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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

2.10 Mandatory Feature Sets
An Opal SSC compliant SD SHALL support the following TCG Storage Feature Sets:
1) Additional DataStore Tables Feature Set (refer to [8])Revision 1.00

Page 12 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

Opal SSC Features3

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 Specific

Revision 1.00

= VU
= 0x00000001 or
any version that supports the defined features in this SSC= VU

Page 13 of 100

TCG Storage Opal SSC
Specification Version 2.00
3.1.1.2

TCG Copyright 2012

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

Byte
0

7

6

5

(MSB)

1
2
3
4

4

2

ComID Mgmt
Supported

0

(LSB)

VersionReserved

1

Feature Code (0x0001)
Reserved

Reserved

LengthStreaming Buffer Mgmt
Supported
Supported

5 - 15










3

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

2

1Feature Code (0x0002)
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
= **
= See 3.1.1.3.1=1Page 14 of 100

TCG Storage Opal SSC
Specification Version 2.00

3.1.1.3.1

TCG Copyright 2012

LockingEnabled Definition

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

3.1.1.4
3.1.1.4.1

Geometry Reporting Feature (Feature Code = 0x0003)
Overview

This information indicates support for logical block and physical block geometry. This feature MAY be returnedin the Level 0 Discovery response. See [2] for additional information.
Table 6 Level 0 Discovery - Geometry Reporting Feature Descriptor
Bit
Byte
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Revision 1.00

7

6

5

(MSB)

4

3

2

1

Feature Code (0x0003)
Version0(LSB)

Reserved
LengthReserved

ALIGN

Reserved(MSB)
LogicalBlockSize
(LSB)
(MSB)

AlignmentGranularity

(LSB)
(MSB)

LowestAlignedLBA(LSB)Page 15 of 100

TCG Storage Opal SSC
Specification Version 2.00



TCG Copyright 2012

The Feature Code field SHALL be set to 0x0003.
The Version field SHALL be set to 0x01.
The Length field SHALL be set to 0x1C.

3.1.1.4.2

Align

If the value of the AlignmentRequired column of the LockingInfo table is TRUE, then the ALIGN bit shall be set
to one. If the value of the AlignmentRequired column of the LockingInfo table is FALSE, then the ALIGN bit shallbe cleared to zero.

3.1.1.4.3

LogicalBlockSize

LogicalBlockSize SHALL be set to the value of the LogicalBlockSize column in the LockingInfo table.

3.1.1.4.4

AlignmentGranularity

AlignmentGranularity SHALL be set to the value of the AlignmentGranularity column in the LockingInfo table.

3.1.1.4.5

LowestAlignedLBA

LowestAlignedLBA SHALL be set to the value of the LowestAlignedLBA column in the LockingInfo table.

3.1.1.5

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

Byte

7

0
1
2
3
4
5
6

6
(MSB)

12

3

2

1

Feature Code (0x0203)(LSB)
Reserved(MSB)

Base ComID(LSB)

Number of ComIDs

(LSB)
Range
Crossing
Behavior

Reserved for future common SSC parameters
(MSB)
(MSB)

Number of Locking SP Admin Authorities Supported
Number of Locking SP User Authorities Supported

13

Initial C_PIN_SID PIN Indicator

14

Behavior of C_PIN_SID PIN upon TPer Revert

15-19

Reserved for future common SSC parameters

Revision 1.00

0Length
(MSB)

8
9

4

Version

7

10
11

5

Page 16 of 100

(LSB)
(LSB)

TCG Storage Opal SSC
Specification Version 2.00













TCG Copyright 2012

Feature Code= 0x0203
Version= 0x1 or any version that supports the defined features in this SSC
Length= 0x10Base ComID= VU
Number of ComIDs= 0x0001 (minimum value)
Range Crossing Behavior= VU
o 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.7
o 1 = The SD terminates commands addressing consecutive LBAs in more than one LBA range.
See Section 4.3.7
Number of Locking SP Admin Authorities = 4 (minimum value)
Number of Locking SP User Authorities = 8 (minimum value)
Initial C_PIN_SID PIN Indicator = VU
o 0x00 = The initial C_PIN_SID PIN value is equal to the C_PIN_MSID PIN value
o 0xFF = The initial C_PIN_SID PIN value is VU, and MAY not be equal to the C_PIN_MSID PIN
value
o 0x02 – 0x0F = Reserved
Behavior of C_PIN_SID PIN upon TPer Revert = VU
o 0x00 = The C_PIN_SID PIN value becomes the value of the C_PIN_MSID PIN column after
successful invocation of Revert on the Admin SP’s object in the SP table
o 0xFF = The C_PIN_SID PIN value changes to a VU value after successful invocation of Reverton the Admin SP’s object in the SP table, and MAY not be equal to the C_PIN_MSID PIN value

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

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

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

3.2.3 TPER_RESET command (M)If the TPER_RESET command is enabled, it SHALL cause the following before the TPer accepts the next IFSEND or IF-RECV command:a) all dynamically allocated ComIDs SHALL return to the Inactive state;b) all open sessions SHALL be aborted on all ComIDs;c) all uncommitted transactions SHALL be aborted on all ComIDs;d) the synchronous protocol stack for all ComIDs SHALL be reset to its initial state
Revision 1.00

Page 17 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012e) all TCG command and response buffers SHALL be invalidated for all ComIDs;f)

all related method processing occurring on all ComIDs SHALL be aborted;g) TPer’s knowledge of the host’s communications capabilities, on all ComIDs, SHALL be reset to theinitial minimum assumptions defined in the TCG Core Specification or the TPer’s SSC definition;h) the values of the ReadLocked and WriteLocked columns SHALL be set to True for all Locking SP’s
Locking objects that contain the Programmatic enumeration value in the LockedOnReset column;i)the value of the Done column of the Locking SP’s MBRControl table SHALL be set to False, if the
DoneOnReset column contains the Programmatic enumeration value.

The TPER_RESET command is delivered by the transport IF-SEND command. If the TPER_RESET commandis enabled, the TPer SHALL accept and acknowledge it at the interface level. If the TPER_RESET command isdisabled, the TPer SHALL abort it at the interface level with the “Other Invalid Command Parameter” status (see[6]). There is no IF-RECV response to the TPER_RESET command.
The TPER_RESET command is defined in Table 8.
The Transfer Length SHALL be non-zero. All data transferred SHALL be ignored.
Table 8 TPER_RESET Command

Revision 1.00

FIELD

VALUE

Command

IF-SEND

Protocol ID

0x02

Transfer Length

Non-zero

ComID

0x0004

Page 18 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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, 0x02.
 IF-SEND commands with a Security Protocol values of 0x01, 0x02.

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

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



have the ComID Extension values = 0x0000 for all statically allocated ComIDs.

keep all statically allocated ComIDs in the Active state.

Revision 1.00

Page 19 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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

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

Description

0x0000Reserved

0x0001

Level 0 Device Discovery

0x0002-0x0003

Reserved for TCG

0x0004

TPER_RESET command

0x0005-0x07FF

Reserved for TCG

0x0800-0x0FFF

Vendor Unique

0x1000-0xFFFF

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

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

Revision 1.00

Page 20 of 100

TCG Storage Opal SSC
Specification Version 2.00
3.3.4.1
3.3.4.1.1

TCG Copyright 2012

Payload Encoding
Stream Encoding Modifications

The TPer SHALL support tokens listed in Table 10. 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 10 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 the 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 capabilities 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.00

Page 21 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

Interface 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.5.2 TCG Reset Events
Table 11 replaces the definition of TCG reset_types that are defined in [2]:Table 11 reset_types
Enumeration value

Associated Value

0

Power Cycle

1

Hardware2

HotPlug

3

Programmatic

4-15

Reserved

16-31

Vendor Unique

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

Revision 1.00

Page 22 of 100

TCG Storage Opal SSC
Specification Version 2.00

4

TCG Copyright 2012

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 12.
Table 12 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.00

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 23 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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

HostSessionID
SPID
Write
HostChallenge
HostSigningAuthority

4.1.1.3

SyncSession (M)= support for “True" is (M), support for "False" is (N)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.00

Page 24 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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

T

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

Revision 1.00

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

Page 25 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

4.2.1.3 Table (M)Refer to section 5.4 for a description and requirements of the MandatoryWriteGranularity andRecommendedAccessGranularity columns.

RecommendedAccess
Granularity“SPTemplates”

Object0

000 00 00 01
00 00 00 06"MethodID"

Object0

000 00 00 01
00 00 00 07"AccessControl"

Object0

000 00 00 01
00 00 00 08"ACE"

Object0

000 00 00 01
00 00 00 09"Authority"

Object0

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

Object0

000 00 00 01
00 00 02 01"TPerInfo"

Object0

000 00 00 01
00 00 02 04"Template"

Object0

000 00 00 01
00 00 02 05"SP"

Object00

UID

MaxSize00 00 00 01
00 00 00 03

MinSize0

LastID0

RowBytes

ObjectRowsFree“SPInfo”

Rows

00 00 00 01
00 00 00 02

NumColumns

0

Column0

Kind
ObjectTemplateID“Table”

CommonName

00 00 00 01
00 00 00 01

Name

MandatoryWrite
Granularity

Table 15 Admin SP - Table Table Preconfiguration

Begin Informative Content[2] states, “The Table table in the Admin SP includes a row for each table that the TPer supports, in addition toa row for each table that exists in the Admin SP.” However, the Opal SSC requires only the tables from theAdmin SP to be included in the Admin SP’s Table table, as indicated in Table 15.
End Informative Content

Revision 1.00

Page 26 of 100

TCG Storage Opal SSC
Specification Version 2.00
4.2.1.4

TCG Copyright 2012

MethodID (M)*MT1 = refer to section 5.2.2 for details on the requirements for supporting Revert.
*MT2 = refer to section 5.2.1 for details on the requirements for supporting Activate.
.
Table 16 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 00 1C
00 00 00 06
00 00 02 02*MT1
00 00 00 06
00 00 02 03*MT2
00 00 00 06
00 00 06 01

Name

CommonName

TemplateID"Next""GetACL"
"Get"
"Set"
"Authenticate""Revert""Activate"“Random”

4.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.2 for details on the requirements for supporting Revert*AC9 = 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.

Revision 1.00

Page 27 of 100

Revision 1.00

00 00 00 06
00 00 00 00

MethodID

Next

ACE_Anybody

ACE_Anybody

00 00 00 06
TT TT TT TT*AC3

MethodIDObj

Get

ACE_Anybody

ACE_Anybody

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

ACE_Anybody

ACE_Anybody

Get

SPInfoObj

00 00 00 02
00 00 00 01

ACE_Anybody

ACE_Anybody

Get

TableObj

00 00 00 01
TT TT TT TT*AC1

ACE_Anybody

ACE_Anybody

Next

Table

00 00 00 01
00 00 00 00

Table

SPInfoSPTemplates

MethodID

Page 28 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative text

InvokingID

UID

Table association- Informative text

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Table 17 Admin SP - AccessControl Table Preconfiguration

Revision 1.00
00 00 00 09
00 00 02 01
Admin1Set

ACE_Set_Enabled

ACE_Anybody

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

AdminXXSet

ACE_Set_Enabled

ACE_Anybody

ACE_Anybody

ACE_Set_EnabledSet

Makers00 00 00 09
00 00 00 03

Next

Get

ACE_Anybody ACE_Anybody

ACE_Anybody ACE_Anybody

Authority

00 00 00 09
00 00 00 00

AuthorityObj

00 00 00 09
TT TT TT TT*AC5

ACE_Anybody

ACE_Anybody

Get

ACEObj00 00 00 08
TT TT TT TT*AC4

ACE_Anybody

ACE_Anybody

Next

ACE

00 00 00 08
00 00 00 00

ACE

Authority

C_PIN

Page 29 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative text

InvokingID

UID

Table association- Informative text

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
00 00 00 0B
00 00 84 02
C_PIN_MSID
Get

ACE_C_PIN_MSID_Get_PIN

ACE_Anybody

00 00 00 0B
00 00 02 01

C_PIN_Admin1

Get

ACE_C_PIN_SID_Get_NOPIN

ACE_Anybody

Get

C_PIN_SID

00 00 00 0B
00 00 00 01

Next

C_PIN

CommonName

MethodID

InvokingID Name
- informative text

00 00 00 0B InvokingID
00 00 00 00

ACE_Anybody

ACE_Anybody

Page 30 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

ACE_Anybody GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_C_PIN_SID_Set_PIN ACE_C_PIN_SID_Get_NOPIN ACE_Anybody ACL

Set

C_PIN_SID

00 00 00 0B
00 00 00 01

UID

Table association- Informative text

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
Set

Get

ACE_Anybody

Set

C_PIN_Admin100 00 00 0B
00 00 02 01

Get

C_PIN_AdminXX

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

CommonName

MethodID

InvokingID Name
- informative text

InvokingID

ACE_Anybody

ACE_Anybody

ACE_Anybody

Page 31 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_C_PIN_Admins_Set_PIN ACE_C_PIN_Admins_Set_PIN ACE_C_PIN_SID_Get_NOPIN ACL

C_PIN_AdminXX

TPerInfoObj

ACE_Anybody

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

TPerInfo
00 00 02 01
00 03 00 01

UID

Table association- Informative text

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
Get

Next

Template

ACE_Anybody ACE_Anybody

Authenticate

TemplateObj

00 00 02 04
00 00 00 00

ACE_Anybody ACE_Anybody ACE_Anybody

RandomNext

ThisSP00 00 02 04
TT TT TT TT*AC6

ACE_Anybody ACE_Anybody

ThisSP

SP

00 00 00 00
00 00 00 01

SP

ACE_Anybody ACE_Anybody ACE_Anybody

00 00 00 00
00 00 00 01

00 00 02 05
00 00 00 00

CommonName

MethodID

InvokingID Name
- informative text

InvokingID

ACE_Anybody

Template

Page 32 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_TPerInfo_Set_ProgrammaticResetEnable ACL

Set

TPerInfoObj

00 00 02 01
00 03 00 01

UID

Table association- Informative text

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
*AC800 00 02 05
TT TT TT TT
*AC7
SPObj
Revert

ACE_SP_SID,
ACE_Admin

ACE_Anybody*AC900 00 02 05
TT TT TT TT
*AC7
SPObj
Activate

ACE_SP_SID

ACE_Anybody

CommonName

MethodID

InvokingID Name
- informative text

Page 33 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

ACE_Anybody GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_Anybody ACL

Get

SPObj

00 00 02 05
TT TT TT TT InvokingID
*AC7

UID

Table association- Informative text

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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
Association- Informative
text

Table 18 Admin SP - ACE Table Preconfiguration

00 00 00 08
00 00 00 01"ACE_Anybody"

AnybodyAll

00 00 00 08
00 00 00 02"ACE_Admin"

AdminsAll

00 00 00 08
00 03 00 01"ACE_Set_Enabled"

SID

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"ACE_C_PIN_Admins_Set_PIN"

AdminsOR SIDPIN

00 00 00 08
00 03 00 03"ACE_TPerInfo_Set_ProgrammaticR
esetEnable"

SID

ProgrammaticResetEnable

00 00 00 08
00 03 00 02"ACE_SP_SID"

SID

All

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
00 00 00 08
00 03 A0 01
TPerInfo

SP*ACE1

Revision 1.00

Page 34 of 100

TCG Storage Opal SSC
Specification Version 2.00
4.2.1.7
Notes:TCG Copyright 2012

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

LogTo

Log

Uses

Limit

ClockEnd

ClockStart

ResponseExch
Null
Null
Null
Null
Null

Null

ResponseSign
Null
Null
Null
Null
Null
Null

Credential
Null
Null

None

Null

None

F

C_PIN_AdminXX C_PIN_Admin1 C_PIN_SID

None

F

Operation

None

F

None

None

F

None

PresentCertificate

None

F

None

HashAndSign
None
None
None

T

Password

Secure
None
None
None

F

Password

EnabledT

Password

Class
Null

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

Null

00 00 00 09
00 00 02 01

F

Null

"AdminXX"

F

00 00 00 09
00 00 00 06

T

Null

"Admin1"F

00 00 00 09
00 00 00 03

F

Admins"SID"

F

00 00 00 09
00 00 00 02

T

AdminsIsClass"Makers"T

Name"Anybody""Admins"

T

UID

F

00 00 00 09
00 00 00 01

4.2.1.8

CommonName

Table 19 Admin SP - Authority Table Preconfiguration

C_PIN (M)
Table 20 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.00

Name

CommonName

PIN

CharSet

TryLimit

Tries

Persistence"C_PIN_SID"

VU

Null

VU

VU

FALSE

"C_PIN_MSID"

MSID

Page 35 of 100

TCG Storage Opal SSC
Specification Version 2.00
UID
00 00 00 0B
00 00 02 01
00 00 00 0B
00 00 02 00
(+XX)
(O)

Name

TCG Copyright 2012

CommonName

PIN

CharSet

TryLimit

Tries

Persistence"C_PIN_Admin1"

“”

Null

0

0

FALSE

"C_PIN_AdminXX"

“”

Null

0

0

FALSE

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

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

Revision 1.00

Page 36 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

4.2.3 Admin Template Tables
4.2.3.1 TPerInfo (M)The TPerInfo table has the following columns, in addition to those defined in [2]:Table 21 Admin SP – TPerInfo Columns
Column Number
0x08Column Name
ProgrammaticResetEnable

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

*TP1 = the value in the GUDID column SHALL comply with the format defined in [2].
*TP2 = this version or any version that supports the defined features in this SSC.
*TP3 = 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

VU
*TP1

1
*TP2

ProgrammaticResetEnable

SSC

SpaceForIssuanceProtocolVersion

Firmware Version

Generation

UID

Bytes

GUDID

Table 22 Admin SP - TPerInfo Table Preconfiguration[“Opal”]
*TP3

FALSE

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 23 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

Revision 1.00

Name
"Base""Admin""Locking""Interface Control"

Revision Number
11
11

Instances

MaxInstances

VU

VU

1

1

1

1

1

1

Page 37 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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.

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

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

Revision 1.00

Page 38 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

4.2.5 Crypto Template Tables
An Opal SSC compliant SD is not required to support any Crypto template tables.

4.2.6 Crypto Template Methods
Refer to section 4.2.1.4 for supported methods.

4.2.6.1 Random
The TPer SHALL implement the Random method with the constraints stated in this subsection. TPer support of
the following parameters is mandatory:


Count

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

Revision 1.00

Page 39 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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 25 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 26 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

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"

Version
00 00 00 02*SP1
00 00 00 02*SP1
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
Refer to section 5.4 for a description and requirements of the MandatoryWriteGranularity andRecommendedAccessGranularity columns.

Revision 1.00

Page 40 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

MandatoryWrite
Granularity

RecommendedAccess
Granularity

00 00 00 01
00 00 00 03"SPTemplates"

Object0

000 00 00 01
00 00 00 06"MethodID"

Object0

000 00 00 01
00 00 00 07"AccessControl"

Object0

000 00 00 01
00 00 00 08"ACE"

Object0

000 00 00 01
00 00 00 09"Authority"

Object0

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

Object0

000 00 00 01
00 00 00 1D"SecretProtect"

Object0

000 00 00 01
00 00 08 01"LockingInfo"

Object0

000 00 00 01
00 00 08 02"Locking"

Object0

0"MBRControl"

Object

0

0

"MBR"

Byte

VU

VU

"K_AES_128”

Object00"K_AES_256"

Object00"RestrictedCommands"

Object00"DataStore"

Byte

VU

VU

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

Revision 1.00

0x08000000
min

0x00A00000
min

Page 41 of 100

MaxSize

0

MinSize0

LastID

Object

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

Rows

0

NumColumns

0

ColumnObjectKind"Table"TemplateID

Name

00 00 00 01
00 00 00 01

CommonName

UID

Table 27 Locking SP - Table Table Preconfiguration

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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 23 entries (8 User authorities, 4Admin authorities, and 11 Boolean operators).

4.3.1.5 MethodID (M)*MT1 = refer to section 5.2.3 for details on the requirements for supporting RevertSP.
Table 28 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
00 00 00 06
00 00 00 1C
00 00 00 06
00 00 06 01

Name

CommonName

TemplateID"Next""GetACL""GenKey""RevertSP"
"Get"
"Set"
"Authenticate"“Random”

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 SecretProtect object UIDs
*AC9 = 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).

Revision 1.00

Page 42 of 100

Revision 1.00
Get

Get

ACE_Anybody

ACE_Anybody

Next

ACE_Anybody

ACE_Anybody

Next

Table

00 00 00 01
00 00 00 00

ACE_Anybody ACE_Anybody

ACE_Anybody ACE_Anybody

TableObj

00 00 00 01
TT TT TT TT*AC2

SPInfoObj

SPTemplates

SPTemplates

SPInfo00 00 00 02
00 00 00 01

Authenticate

ThisSP00 00 00 00
00 00 00 01

ACE_Anybody ACE_Anybody

RandomThisSP00 00 00 00
00 00 00 01

ACE_Anybody ACE_Anybody ACE_Anybody

ACE_Admin

RevertSPThisSP00 00 00 00
00 00 00 01*AC1

00 00 00 03
00 00 00 00

SP

Table

Page 43 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID



UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

The ACL column is readable only via the GetACL method.

Table 29 Locking SP - AccessControl Table Preconfiguration

Revision 1.00
ACEObjGet

ACE_ACE_Get_All
Set

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression ACE_ACE_Get_All

00 00 00 08
TT TT TT TT*AC500 00 00 08
00 03 80 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*AC4

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*AC3

MethodID

ACE

Page 44 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
ACE_C_PIN_UserMMMM_Set_PIN
Set

ACE_User1_Set_CommonName

Set

Set

ACE_C_PIN_User1_Set_PIN

00 00 00 08
00 03 A8 01

Set

ACE_Authority_Get_All

00 00 00 08
00 03 90 00

ACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression ACE_ACE_Set_BooleanExpression ACE_ACE_Set_BooleanExpression ACE_ACE_Set_BooleanExpression

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

00 00 00 08
00 04 40 01

Page 45 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

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

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_K_AES_128_Range1_GenKey ACE_K_AES_128_GlobalRange_GenKey ACE_UserMMMM_Set_CommonName*AC600 00 00 08
00 03 B0 01

Page 46 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

00 00 00 08
00 03 B8 00*AC6Revision 1.00
00 00 00 08
00 03 B0 00 (+NNNN)

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_K_AES_256_Range1_GenKey ACE_K_AES_256_GlobalRange_GenKey ACE_K_AES_128_RangeNNNN _GenKey*AC600 00 00 08
00 03 B8 01*AC6Page 47 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
ACE_Anybody

00 00 00 08
00 03 B8 00 (+NNNN)

InvokingID

Set

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

Page 48 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

ACE_Locking_GlobalRange_Get_
InvokingID Name
ACE_K_AES_256_RangeNNNN _GenKey
RangeStartToActiveKey- informative only

00 00 00 08
00 03 D0 00

ACE_ACE_Set_BooleanExpression ACE_ACE_Set_BooleanExpression

Set

ACE_Locking_Range1_Get_
RangeStartToActiveKey

00 00 00 08
00 03 D0 01

*AC6
UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
00 00 00 08
00 03 E0 00

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_Locking_Range1_Set_RdLocked ACE_Locking_GlobalRange_Set_RdLocked

00 00 00 08
00 03 E0 01

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Page 49 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

ACE_Locking_RangeNNNN_Get_
RangeStartToActiveKey
Set

InvokingID

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

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
00 00 00 08
00 03 E8 00

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

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_Locking_Range1_Set_WrLocked ACE_Locking_GlobalRange_Set_WrLocked ACE_Locking_RangeNNNN_Set_RdLocked

00 00 00 08
00 03 E8 01

Page 50 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
ACE_Anybody

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

Set

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_MBRControl_Set_DoneToDOR ACE_Locking_RangeNNNN_Set_WrLocked

00 00 00 08
00 03 F8 01

ACE_ACE_Set_BooleanExpression ACE_ACE_Set_BooleanExpression

Set

ACE_DataStore_Get_All

00 00 00 08
00 03 FC 00

Page 51 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
Next

ACE_Anybody

Get

ACE_Authority_Get_All,
ACE_Anybody_Get_CommonName

ACE_Anybody

Set

ACE_Admins_Set_CommonName

ACE_Anybody

ACE_Anybody

Authority

AuthorityObj

Admin100 00 00 09
00 00 00 00

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

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_DataStore_Set_All

00 00 00 08
00 03 FC 01

Authority

Page 52 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
User1
Set

UserMMMM

Set

Set

AdminXXXX

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

Set

Admin200 00 00 09
00 01 00 02

ACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_Authority_Set_Enabled,
ACE_Authority_Set_Enabled,
ACE_Authority_Set_Enabled,
ACE_Authority_Set_Enabled,
ACE_UserMMMM_Set_CommonName ACE_User1_Set_CommonName ACE_Admins_Set_CommonName ACE_Admins_Set_CommonName

00 00 00 09
00 03 00 01

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

Page 53 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
C_PIN_AdminXXXX
Get

C_PIN_User1
Get

Get

C_PIN_Admin100 00 00 0B
00 01 00 01

Next

C_PIN

00 00 00 0B
00 00 00 00

ACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_C_PIN_Admins_Get_All_NOPIN ACE_C_PIN_Admins_Get_All_NOPIN ACE_C_PIN_Admins_Get_All_NOPIN ACE_Anybody

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

00 00 00 0B
00 03 00 01

C_PIN

Page 54 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
C_PIN_AdminXXXXSet

C_PIN_User1
Set

Set

C_PIN_Admin100 00 00 0B
00 01 00 01

Get

C_PIN_UserMMMM

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

ACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_C_PIN_User1_Set_PIN ACE_C_PIN_Admins_Set_PIN ACE_C_PIN_Admins_Set_PIN ACE_C_PIN_Admins_Get_All_NOPIN

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

00 00 00 0B
00 03 00 01

Page 55 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
00 00 08 01
00 00 00 01
LockingInfoObj
Get

ACE_Anybody

ACE_Anybody

Locking
Next

ACE_Anybody

ACE_Anybody

Locking

00 00 08 02
00 00 00 00

ACE_Anybody

ACE_Anybody

Get

SecretProtectObj

00 00 00 1D
TT TT TT TT*AC8

ACE_Anybody

ACE_Anybody

Next

SecretProtect

00 00 00 1D
00 00 00 00

ACE_Anybody

ACE_C_PIN_UserMMMM_Set_PIN

Set

C_PIN_UserMMMM

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

SecretProtect

LockingInfo

Page 56 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
Get

Get

ACE_Anybody

Get

Locking_GlobalRange

00 00 08 02
00 00 00 01

ACE_Anybody

ACE_Anybody

ACE_Locking_Range1_Get_
ACE_Locking_GlobalRange_Get_
RangeStartToActiveKey,
RangeStartToActiveKey,
ACE_Anybody_Get_CommonName ACE_Anybody_Get_CommonName

Locking_Range1

Locking_RangeNNNN

ACE_Locking_RangeNNNN_Get_
RangeStartToActiveKey,
ACE_Anybody_Get_CommonName

00 00 08 02
00 03 00 01

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

Page 57 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
00 00 08 02
00 03 00 01
Locking_Range1
Set
ACE_Locking_Admins_RangeStartToLOR,
ACE_Locking_Range1_Set_RdLocked,
ACE_Locking_Range1_Set_WrLocked,
ACE_Admins_Set_CommonName

ACE_Anybody

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

Locking_RangeNNNN
Set

ACE_Locking_Admins_RangeStartToLOR,
ACE_Locking_RangeNNNN_Set_RdLocked,
ACE_Locking_RangeNNNN_Set_WrLocked,
ACE_Admins_Set_CommonName

ACE_Anybody

ACE_Anybody

ACE_Locking_GlblRng_Admins_Set,
ACE_Locking_GlobalRange_Set_RdLocked,
ACE_Locking_GlobalRange_Set_WrLocked,
ACE_Admins_Set_CommonName

Set

Locking_GlobalRange

00 00 08 02
00 00 00 01

Page 58 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
00 00 08 04
00 00 00 00
MBR
Get

ACE_Anybody

ACE_Anybody

00 00 08 04
00 00 00 00
MBR
Set

ACE_Admin

ACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_MBRControl_Admins_Set,
ACE_MBRControl_Set_DoneToDORACE_Anybody

Get

MBRControlObj

00 00 08 03
00 00 00 01

Set

MBRControlObj

00 00 08 03
00 00 00 01

MBRControl

MBR

K_AES_128

Page 59 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
00 00 08 05
00 03 00 01
K_AES_128_Range1_Key
Get

ACE_K_AES_Mode

ACE_Anybody

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

K_AES_128_RangeNNNN_Key
Get

ACE_K_AES_Mode

ACE_Anybody

ACE_Anybody

ACE_K_AES_ModeGet

K_AES_128_GlobalRange_Key

00 00 08 05
00 00 00 01

Page 60 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
00 00 08 05
00 03 00 01
K_AES_128_Range1_Key
GenKey

ACE_K_AES_128_Range1_GenKey

ACE_Anybody

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

K_AES_128_RangeNNNN_Key

GenKey

ACE_K_AES_128_RangeNNNN_GenKey

ACE_Anybody

ACE_Anybody

ACE_K_AES_128_GlobalRange_GenKey

GenKeyK_AES_128_GlobalRange_Key

00 00 08 05
00 00 00 01

Page 61 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
00 00 08 06
00 03 00 01
K_AES_256_Range1_Key
Get

ACE_K_AES_Mode

ACE_Anybody

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

K_AES_256_RangeNNNN_Key
Get

ACE_K_AES_Mode

ACE_Anybody

ACE_Anybody

ACE_K_AES_ModeGet

K_AES_256_GlobalRange_Key

00 00 08 06
00 00 00 01

K_AES_256

Page 62 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
00 00 08 06
00 03 00 01
K_AES_256_Range1_Key
GenKey

ACE_K_AES_256_Range1_GenKey

ACE_Anybody

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

K_AES_256_RangeNNNN_Key

GenKey

ACE_K_AES_256_RangeNNNN_GenKey

ACE_Anybody

ACE_Anybody

ACE_K_AES_256_GlobalRange_GenKey

GenKeyK_AES_256_GlobalRange_Key

00 00 08 06
00 00 00 01

Page 63 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

Revision 1.00
DataStore
Get

DataStore
Set

ACE_Anybody

ACE_Anybody

ACE_DataStore_Set_All ACE_DataStore_Get_All

00 00 10 01
00 00 00 00

ACE_Anybody

ACE_Anybody

Get

RestrictedCommandsObj

00 00 0C 01
TT TT TT TT
*AC9

(O)

00 00 10 01
00 00 00 00

ACE_Anybody

ACE_Anybody

Next

RestrictedCommands

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

RestrictedCommands

DataStore

Page 64 of 100

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.00
TCG Copyright 2012

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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

Name

BooleanExpr

Columns

CommonName

UID

Table Association-Informative Column

Table 30 Locking SP - ACE Table Preconfiguration

00 00 00 08
00 00 00 01"ACE_Anybody"

AnybodyAll

00 00 00 08
00 00 00 02"ACE_Admin"

AdminsAll

00 00 00 08
00 00 00 03"ACE_Anybody_Get_CommonName"

Anybody

UID, CommonName

00 00 00 08
00 00 00 04"ACE_Admins_Set_CommonName"

AdminsCommonName"ACE_ACE_Get_All"

AdminsAll"ACE_ACE_Set_BooleanExpression"

AdminsBooleanExpr"ACE_Authority_Get_All"

AdminsAll"ACE_Authority_Set_Enabled"

AdminsEnabled"ACE_User1_Set_CommonName"

AdminsCommonName"ACE_UserMMMM_Set_CommonName"

AdminsCommonName"ACE_C_PIN_Admins_Get_All_NOPIN"

Admins

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

AdminsPIN

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
00 00 00 08
00 04 40 01
00 00 00 08
00 04 40 00(+NN NN)
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(+MMMM)"ACE_C_PIN_User1_Set_PIN""ACE_C_PIN_UserMMMM_Set_PIN"

Admins OR User1*ACE1
Admins OR
UserMMMM
*ACE1

PIN
PIN

K_AES
00 00 00 08
00 03 BF FF
Revision 1.00

"ACE_K_AES_Mode"

Anybody

Page 65 of 100

Mode

Name

BooleanExpr

Columns

CommonName

TCG Copyright 2012

UID

Table Association-Informative Column

TCG Storage Opal SSC
Specification Version 2.00

00 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

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

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

Page 66 of 100

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 2012

"ACE_Locking_GlobalRange_Set_WrLocked"

AdminsWriteLocked"ACE_Locking_Range1_Set_WrLocked"

AdminsWriteLocked"ACE_Locking_RangeNNNN_Set_WrLocked"

AdminsWriteLocked

AdminsReadLockEnabled,
WriteLockEnabled,
ReadLocked,
WriteLocked,
LockOnReset"ACE_Locking_Admins_RangeStartToLOR"

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

AdminsEnable, Done,
DoneOnReset"ACE_MBRControl_Set_DoneToDOR"

AdminsDone, DoneOnReset"ACE_DataStore_Get_All"

AdminsAll"ACE_DataStore_Set_All"

Admins

All

Name

UID

Table Association-Informative Column

TCG Storage Opal SSC
Specification Version 2.00

"ACE_Locking_GlblRng_Admins_Set"

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

Page 67 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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

Page 68 of 100

LogTo

Log

Uses

Limit

ClockEnd

ClockStart

ResponseExch
Null
Null
Null
Null
Null

Null

ResponseSign
Null
Null
Null
Null
Null
Null

None
None
Password
Password

Credential

Password

Null

Password

F

Null

F

C_PIN_Admin4 C_PIN_Admin3 C_PIN_Admin2 C_PIN_Admin1

PresentCertificate
F

Operation

HashAndSign
None
None

None

F

None

None

F

F

None

Secure
None
None
None
None

F

F

None

Enabled
F

F

None

Class
Null
Null
AdminsF

AdminsF

T

AdminsF

T

AdminsF

T

AdminsIsClass"AdminXXXX"

Revision 1.00

CommonName"Admin4"00 00 00 09
00 01 00 00(+XX XX)1(O)"""Admin3"00 00 00 09
00 01 00 04"""Admin2"00 00 00 09
00 01 00 03"""Admin1"

00 00 00 09
00 01 00 02

F"""Admins"

00 00 00 09
00 01 00 01

T"""Anybody"

00 00 00 09
00 00 00 02

F

""

Name

00 00 00 09
00 00 00 01

""

UID

Table 31 Locking SP - Authority Table Preconfiguration

LogTo

Log

Uses

Limit

ClockEnd

ClockStart

ResponseExch
Null
Null
Null

ResponseSign
Null
Null
Null

Credential
Null

None

C_PIN_UserMMMM C_PIN_User1

PresentCertificate

None

F

Operation

HashAndSign
None
None

F

None

Secure
None
None

F

Password

EnabledF

Password

Class
Null

F

F

Users

F

T

Users

IsClass"UserMMMM"

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

T

""

Name

00 00 00 09
00 03 00 00

TCG Copyright 2012

""

UID

TCG Storage Opal SSC
Specification Version 2.00

4.3.1.9 C_PIN (M)The following table includes Optional rows designated with (O)Notes:
1. If the Locking SP's original life cycle state is Manufactured-Inactive, see Section 5.2.1.2 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 32 Locking SP - C_PIN Table Preconfiguration
UID
00 00 00 0B
00 01 00 01
00 00 00 0B
00 01 00 02
00 00 00 0B
00 01 00 03
00 00 00 0B
00 01 00 04
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
Revision 1.00

Name

PIN
SID orMSID1

CharSet

TryLimit

Tries

Persistence

Null

0

0

FALSE

"C_PIN_Admin2"

“”

Null

0

0

FALSE

"C_PIN_Admin3"

“”

Null

0

0

FALSE

"C_PIN_Admin4"

“”

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"

CommonName

Page 69 of 100

TCG Storage Opal SSC
Specification Version 2.00
UID(+MM MM)(O)TCG Copyright 2012

Name

CommonName

PIN

CharSet

TryLimit

Tries

Persistence

4.3.1.10 SecretProtect (M)At least one of the objects shown in Table 33 SHALL be supported
Table 33 Locking SP - SecretProtect Table Preconfiguration
UID
00 00 00 1D
00 00 00 1D
00 00 00 1D
00 00 00 1E

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

ColumnNumber

ProtectMechanisms

0x03

VU

0x03

VU

Note: The “VU” entries in Table 33 indicate that there is no requirement set by this specification as to the value
reported. It is NOT a requirement to report the “Vendor Unique” protection_types value.

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

Revision 1.00

Page 70 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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

4.3.4 Crypto Template Methods
Refer to section 4.3.1.5 for supported methods.

4.3.4.1 Random
Refer to section 4.2.6.1 for additional constraints imposed on the Random method.

Revision 1.00

Page 71 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

4.3.5 Locking Template Tables
4.3.5.1 LockingInfo (M)The LockingInfo table has the following columns, in addition to those defined in [2]:Table 34 Locking SP – LockingInfo Columns
Column Number
0x07
0x08
0x09
0x0A






Column Name
AlignmentRequired
LogicalBlockSize
AlignmentGranularity
LowestAlignedLBAIsUniqueColum Typebooleanuinteger_4
uinteger_8
uniteger_8

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

LowestAlignedLBA

AlignmentGranularity

LogicalBlockSize

AlignmentRequired

81

KeysAvailableCfg

Media Encryption

MaxReEncryptions

Version

MaxRanges

00 00 08 01
00 00 00 01

EncryptSupport

UID

Name

Table 35 Locking SP - LockingInfo Table Preconfiguration

Note:
1. The MaxRanges column specifies the number of supported ranges and SHALL have a minimum of 8
ranges.
4.3.5.2

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)*LT2 = Only a limited set of LockOnReset values is required to be supported by Opal SSC SDs. Refer to section
4.3.5.2.2 for details.

Revision 1.00

Page 72 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

F

Power Cycle*LT2

K_AES_128[256]_Range1_Key
*LT1

0

0

F

F

F

F

Power Cycle*LT2

K_AES_128[256]_RangeNNNN_Key*LT1

Power Cycle*LT2

GeneralStatusF

LastReEncStateF

LastReEncryptLBA

F

ContOnReset0

VerifyMode0

AdvKeyMode

WriteLockedF

ReEncyptRequest

ReadLockedF

ReEncryptState

WriteLockEnabledF

NextKey

ReadLockEnabledF

K_AES_128[256]_GlobalRange_Key
ActiveKey*LT1

RangeLength
0

LockOnReset

RangeStart"Locking_RangeNNNN"

4.3.5.2.1

CommonName"Locking_Range1"

00 00 08 02
00 03 NN NN"""Locking_GlobalRange"

00 00 08 02
00 03 00 01

0

""

Name

00 00 08 02
00 00 00 01

""

UID

Table 36 Locking SP - Locking Table Preconfiguration

Geometry Reporting Feature Behavior

The following behaviors SHALL be implemented
4.3.5.2.1.1

RangeStart Behavior

This column value defines the starting LBA value for this range. In non-Global Range rows, this column MAY be
modifiable based on access control settings. Changes to this column are subject to the same constraints andchecks defined for this column when rows of the Locking table are created (see [2]).

Revision 1.00

Page 73 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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

4.3.5.2.1.2

RangeLength Behavior

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

4.3.5.2.2

LockOnReset Restrictions

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

4.3.5.3 MBRControl (M)*MC1 = Only a limited set of DoneOnReset values is required to be supported by Opal SSC SDs. Refer tosection 4.3.5.3.1 for details.

Revision 1.00

Page 74 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

Table 37 Locking SP - MBRControl Table Preconfiguration

4.3.5.3.1

UID

EnableDone

DoneOnReset

00 00 08 03
00 00 00 01

False

False

Power Cycle*MC1

DoneOnReset Restrictions

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

4.3.5.4 MBR (M)The MBR minimum size SHALL be 128 MB (0x08000000).
The initial contents of the MBR table SHALL be vendor unique.

4.3.5.5 K_AES_128 or K_AES_256 (M)At least one of the following two tables SHALL be supported.
The following table contains Optional rows designated with (O).
*K1 = indirectly writable using the GenKey Method.

UID

Name

Key

Mode

CommonName

Table 38 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)

Revision 1.00

Mode

"K_AES_256_GlobalRange_Key"

Key

Name

00 00 08 06
00 00 00 01

CommonName

UID

Table 39 Locking SP - K_AES_256 Table Preconfiguration

VU
*K1

VU

Page 75 of 100

Key

Mode

"K_AES_256_Range1_Key"

VU
*K1

VU

"K_AES_256_RangeNNNN_Key"

VU
*K1

VU

UID
00 00 08 06
00 03 00 01
00 00 08 06
00 03 NN NN(O)

CommonName

TCG Copyright 2012Name

TCG Storage Opal SSC
Specification Version 2.00

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

Revision 1.00

Page 76 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

4.3.7 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.00

Page 77 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

4.3.8 Interface Control Template Tables
See Section 5.1 for further details on the Interface Control Template
4.3.8.1

RestrictedCommands (O)Table 40 RestrictedCommands Table Preconfiguration

UID
VU

Next
VU

CommandMask
VU

ComandFilter
VU

Allowed
VU

AllowedTrueOnReset
VU

AllowedFalseOnReset
VU

4.3.9 Non Template Tables
4.3.9.1 DataStore (M)The DataStore is a byte table. It can be used by the host for generic secure data storage. The DataStore table
SHALL be at least 10MB in size (the Table table object that represents the DataStore table SHALL have a
Rows column value of at least 0x00A00000). The access control for modification or retrieval of data in the table
initially requires a member of the Admins class authority. These access control settings are personalizable.
Initial DataStore content value is VU.

Revision 1.00

Page 78 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

Appendix – SSC Specific Features

5

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 is 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 41 RestrictedCommands Table Description
Column
UID
Next

Type
uid
uid

CommandMask{bytes}CommandFilter{bytes}

Revision 1.00

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 79 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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 42 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 43 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 44 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.00

Page 80 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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 [6].
See Figure 3 for an example of using the rules in the RestrictedCommands table.

Figure 3 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.00

Page 81 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

5.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 45 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.00

00

ComandFilter
DO NOT MATCH ANYCOMMAND
FF

Page 82 of 100

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

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 Copyright 2012

CommandMask

TCG Storage Opal SSC
Specification Version 2.00

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 83 of 100

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

TCG Copyright 2012

AllowedTCG Storage Opal SSC
Specification Version 2.00

ComandFilter

Page 84 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 201200 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.00

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

Command 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 85 of 100

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

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

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

Command Filter
PACKET
READ BUFFER (10)(restrict all other modes)

AllowedTrueOnReset

00 00 0C 01
00 00 00 09

Next

AllowedUID

TCG Copyright 2012

CommandMask

TCG Storage Opal SSC
Specification Version 2.00

False

(null)(PowerCycle)

False(null)(PowerCycle)

True(PowerCycle)(null)

True(PowerCycle)(null)

True(PowerCycle)(null)

True(PowerCycle)(null)

True(PowerCycle)(null)

True(PowerCycle)(null)

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

Page 86 of 100

00 00 0C 01
00 00 00 12

Revision 1.00

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

Command Filter

AllowedTrueOnReset

Next

AllowedUID

TCG Copyright 2012

CommandMask

TCG Storage Opal SSC
Specification Version 2.00

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 87 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 201200 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.00

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 47 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 88 of 100(PowerCycle, HW
reset)(PowerCycle, HW
reset)(PowerCycle, HW
reset)

00 00 0C 01
00 00 00 0E

Revision 1.00

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 Copyright 2012

CommandMask

TCG Storage Opal SSC
Specification Version 2.00

True

(PowerCycle, HW
reset)(null)

False(null)(PowerCycle, HW
reset)

Allowed3B FF 00 00 00 00 00 00 00 00

Page 89 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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(Manufactured SP), 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.
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 Activate Support
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.
5.2.1.2 Side effects of Activate
Upon successful activation of an SP that was in the “Manufactured-Inactive” state, the following changes
SHALL be made: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.00

Page 90 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

5.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(Manufactured SP).
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.
Invocation of Revert is permitted on Manufactured SPs that are in any life cycle state. Successful invocation ofRevert on a Manufactured SP that is in the Manufactured-Inactive life cycle state SHALL have no effect on the
SP.
This method operates within a Read-Write session to the Admin SP. The TPer SHALL revert the SP
immediately after the method is successfully invoked outside of a transaction. If Revert is invoked on the
Admin SP’s object in the SP table, the TPer SHALL abort the session immediately after reporting status of 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.
The MethodID for Revert SHALL be 00 00 00 06 00 00 02 02.
5.2.2.1 Revert Support
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 mandatory. (Note that the OFS of the Admin SP
is Manufactured, see 5.3.2).
If the Locking SP was created in manufacturing, support for Revert on the Locking SP’s object in the SP Tableis mandatory.
5.2.2.2 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: Unless already in the Manufactured-Inactive life cycle state, reverting the Locking SP will cause
the media encryption keys to be eradicated, which has the side effect of securely erasing all data in theUser LBA portion of the SD.

oWhen Revert is successfully invoked on the SP object for the Admin SP (UID = 00 00 02 05 00 00 0001), the entire TPer SHALL revert to its Original Factory State, including all personalization of the
Admin SP itself, with the exception of the PIN column value of the C_PIN_SID object. See section
5.2.2.2.1 for the effects of Revert upon the PIN column value of the C_PIN_SID object. All issued SPs
SHALL be deleted, and all Manufactured SPs SHALL revert to Original Factory State. Manufactured
SPs that were in the Manufactured-Inactive life cycle state SHALL be unaffected.

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

Page 91 of 100

TCG Storage Opal SSC
Specification Version 2.00
5.2.2.2.1

TCG Copyright 2012

Effects of Revert on the PIN Column Value of C_PIN_SID

When Revert is successfully invoked on the SP object for the Admin SP (UID = 00 00 02 05 00 00 00 01), thePIN column value of the C_PIN_SID object SHALL be affected as follows:
1. If the SID authority has never been successfully authenticated, then the C_PIN_SID PIN column
SHALL remain at its current value.
2. If the SID authority has previously been successfully authenticated, then:a) If the value of the “Behavior of C_PIN_SID PIN upon TPer Revert” field in the Opal SSC V2.00
Level 0 Feature Descriptor is 0x00, then the C_PIN_SID PIN column SHALL be set to the PIN
column value of the C_PIN_MSID object. Additionally, the “Initial C_PIN_SID PIN Indicator”
field SHALL be set to 0x00 upon completion of the Revert.
b) If the value of the “Behavior of C_PIN_SID PIN upon TPer Revert” field in the Opal SSC V2.00
Level 0 Feature Descriptor is not 0x00, then the C_PIN_SID PIN column SHALL be set to a
vendor unique (VU) value.
Begin Informative Content
For the case where the “Initial C_PIN_SID PIN Indicator” and “Behavior of C_PIN_SID PIN upon TPer Revert”
fields are both 0x00, the above rules for Revert are backward compatible with Opal v1.00.
End Informative Content

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 (Manufactured SP).
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.
The MethodID for RevertSP SHALL be 00 00 00 06 00 00 00 11.
5.2.3.1 RevertSP Support
Support for RevertSP within transactions is (N), and the behavior is out of the scope of this document.
If the Locking SP was created in manufacturing, support for RevertSP on the Locking SP is mandatory.
5.2.3.2 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:
Revision 1.00

Page 92 of 100

TCG Storage Opal SSC
Specification Version 2.00o

TCG Copyright 2012

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.3 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
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.00

Page 93 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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 4.
Figure 4 Life Cycle State Diagram for Manufactured SPs

Manufactured Disabled

Manufactured Inactive

Legend:Mandatory
Optional
Not Required

Manufactured Disabled Frozen
Manufactured
Manufactured Frozen

Manufactured Failed

Additional state transitions may exist depending on the states supported by the SD and the SP’s Original
Factory State. Invoking Revert or RevertSP (see sections 5.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.00

Page 94 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

Instances column of the appropriate objects in the Admin SP’s Template table. Sessions cannot be

opened to SPs in the Manufactured-Inactive state. Only SPs whose Original Factory State was
Manufactured-Inactive can return to the Manufactured-Inactive state.
If the Locking SP is a Manufactured SP, support for the Manufactured-Inactive state is optional for the
Locking SP.
2. Manufactured: This is the standard operational state of a Manufactured SP, and defines the 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.00

Page 95 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012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 48 LifeCycle Type Table Modification
UID
Name
00 00 00 05 life_cycle_state
00 00 04 05

Revision 1.00

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 96 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

5.4 Byte Table Access Granularity
Begin Informative Content
While the general architecture defined in [2] allows data to be written into byte tables starting at any arbitrary
byte boundary and with any arbitrary byte length, certain types of storage devices work more efficiently whendata is written aligned to a larger block boundary. This section defines extensions to [2] that allow a device toreport the restrictions that it enforces when the host invokes the Set method on byte tables.
End Informative Content

5.4.1 Table Table Modification
In order to allow a storage device to report its mandatory and recommended data alignment restrictions whenaccessing byte tables, the Table table SHALL contain the additional columns shown in Table 49.
Table 49 Table Table Additional Columns
Column Number
0x0D
0x0E

Column Name
MandatoryWriteGranularity
RecommendedAccessGranularity

IsUniqueColum Typeuinteger_4
uinteger_4

5.4.1.1 MandatoryWriteGranularity
This column is used to report the granularity that the storage device enforces when the host invokes the Set
method on byte tables.
This column SHALL NOT be modifiable by the host.
5.4.1.1.1

Object Tables

For rows in the Table table that pertain to object tables, the value of this column SHALL be zero.
5.4.1.1.2

Byte Tables

For rows in the Table table that pertain to byte tables, this column indicates the mandatory access granularity(in bytes) for the Set method for the table described in this row of the Table table. The
MandatoryWriteGranularity column indicates the alignment requirement for both the access start offset (theWhere parameter) and length (number of bytes in the Values parameter).
The value of this column SHALL be less than or equal to the value in the RecommendedAccessGranularity
column in the same row of the Table table.
MandatoryWriteGranularity SHALL be less than or equal to 8192.
When the host invokes the Set method on a byte table, if ValidMandatoryGranularity (see Figure 5) is False,then the method SHALL fail with status INVALID_PARAMETER.
If the TPer does not have a requirement on mandatory alignment for the byte table described in a row of theTable table, then its MandatoryWriteGranularity column SHALL be set to 1.

Revision 1.00

Page 97 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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

5.4.1.2 RecommendedAccessGranularity
This column is used to report the granularity that the storage device recommends when the host invokes the
Set or Get method on byte tables.
This column SHALL NOT be modifiable by the host.
5.4.1.2.1

Object Tables

For rows in the Table table that pertain to object tables, the value of this column SHALL be zero.
5.4.1.2.2

Byte Tables

For rows in the Table table that pertain to byte tables, this column indicates the recommended accessgranularity (in bytes) for the Set and Get method for the table described in this row of the Table table. The
RecommendedAccessGranularity column indicates the alignment of data for the Set and Get method thatallows for optimal Set/Get performance.
If the TPer does not have a recommended alignment for the byte table described in a row of the Table table,
then its RecommendedAccessGranularity column SHALL be set to 1.
When the host invokes the Set method on a byte table, if ValidRecommendedGranularity (see Figure 6) isFalse, then the performance of the TPer MAY be reduced when processing the method.
Figure 6 ValidRecommendedGranularity for Set
For the Set method:
ValidRecommendedGranularity is True ifa) (x modulo RecommendedAccessGranularity) = 0
andb) (y modulo RecommendedAccessGranularity) = 0
where:
x = the start offset of the Set method(i.e., the value of the Where parameter)y = the number of data bytes being set(i.e., the length of the Values parameter)

Revision 1.00

Page 98 of 100

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

When the host invokes the Get method on a byte table, if ValidRecommendedGranularity (see Figure 7) isFalse, then the performance of the TPer MAY be reduced when processing the method.

Figure 7 ValidRecommendedGranularity for Get
For the Get method:
ValidRecommendedGranularity is True ifa) (x modulo RecommendedAccessGranularity) = 0
andb) (y modulo RecommendedAccessGranularity) = 0
where:
x = the start offset of the Get method(i.e., the value of the startRow component of the Cellblock parameter)y = the number of data bytes being retrieved(i.e., the difference of the endRow and startRow components of the
Cellblock parameter, plus one)

5.5 Examples of Alignment Geometry Reporting
Figure 8 illustrates reporting for a typical legacy storage device where there is one logical block per physicalblock on the media.
Figure 8 - Example: AlignmentGranularity=1, Lowest Aligned LBA=00
Alignment
Granularity

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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

1

2
3
4
5
6
AlignmentGranularity

7

8

9

10 11 12 13 14
AlignmentGranularity

15

16

17 18
...

19

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

Revision 1.00

1

2

3
4
5
6
7
AlignmentGranularity

8

9

10 11
...

Page 99 of 100

12

TCG Storage Opal SSC
Specification Version 2.00

TCG Copyright 2012

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

Revision 1.00

. . . 1230 1231
AlignmentGranularity

1232

1233

1234
...
3233
AlignmentGranularity

3234
...
...

Page 100 of 100