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

August 5, 2015

Contact: admin@trustedcomputinggroup.org

TCG PUBLISHED
Copyright © TCG 2015

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

Copyright © 2015 Trusted Computing Group, Incorporated.
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, isgranted herein other than as follows: You may not copy or reproduce the document or distribute it toothers without written permission from TCG, except that you may freely do so for the purposes of (a)examining or implementing TCG specifications or (b) developing, testing, or promoting information
technology standards and best practices, so long as you distribute the document with these disclaimers,
notices, and license terms.
Contact the Trusted Computing Group at www.trustedcomputinggroup.org for information on specification
licensing through membership agreements.
Any marks and brands contained herein are the property of their respective owners.

Revision 1.00

Page ii

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

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

27 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 templatemandatory

Revision 1.00

Page iii

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

Version / Revision

Date

Version 2.01 Rev 1.00

5 August 2015

Description
Fixed Table column values in Table 33 “Locking SP SecretProtect Table Preconfiguration”.
Updated reference [4] to latest version 1.04.
Moved SP life cycle and ATA Security Feature Set
interactions in Appendix 5.3.2.4 to [4].
Moved list of aborted ATA/SCSI commands from section
4.3.7 to [4].
Added PSID Feature Set as mandatory.
Removed Interface Control Template.
Moved interactions between Activate and ATA Security
in section 5.1.1 to [4].

Revision 1.00

Page iv

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

TABLE OF CONTENTS
1INTRODUCTION ................................................................................................................................... 1
1.1
1.2
1.3
1.4
1.5
1.6
1.7

2

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

3

DOCUMENT PURPOSE .....................................................................................................................................1
SCOPE AND INTENDED AUDIENCE ..................................................................................................................1
KEY WORDS ...................................................................................................................................................1
DOCUMENT REFERENCES ...............................................................................................................................1
DOCUMENT PRECEDENCE ...............................................................................................................................1
SSC TERMINOLOGY .......................................................................................................................................2
LEGEND ..........................................................................................................................................................2

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

OPAL SSC FEATURES ........................................................................................................................ 6
3.1
SECURITY PROTOCOL 1 SUPPORT ...................................................................................................................6
3.1.1
Level 0 Discovery (M)............................................................................................................................6
3.1.1.1
Level 0 Discovery Header .............................................................................................................6
3.1.1.2
TPer Feature (Feature Code = 0x0001) .........................................................................................7
3.1.1.3
Locking Feature (Feature Code = 0x0002)....................................................................................7
3.1.1.3.1 LockingEnabled Definition .........................................................................................................8
3.1.1.4
Geometry Reporting Feature (Feature Code = 0x0003) ................................................................8
3.1.1.4.1 Overview .....................................................................................................................................8
3.1.1.4.2 Align ............................................................................................................................................93.1.1.4.3 LogicalBlockSize ........................................................................................................................93.1.1.4.4 AlignmentGranularity..................................................................................................................93.1.1.4.5 LowestAlignedLBA ....................................................................................................................93.1.1.5
Opal SSC V2.00 Feature (Feature Code = 0x0203) ......................................................................9
3.2
SECURITY PROTOCOL 2 SUPPORT ................................................................................................................. 10
3.2.1
ComID Management ............................................................................................................................ 10
3.2.2
Stack Protocol Reset (M) ..................................................................................................................... 10
3.2.3
TPER_RESET command (M) ............................................................................................................... 10
3.3
COMMUNICATIONS ....................................................................................................................................... 11
3.3.1
Communication Properties .................................................................................................................. 11
3.3.2
Supported Security Protocols .............................................................................................................. 11
3.3.3
ComIDs ................................................................................................................................................ 11
3.3.4
Synchronous Protocol .......................................................................................................................... 12
3.3.4.1
Payload Encoding ........................................................................................................................ 12
3.3.4.1.1 Stream Encoding Modifications ................................................................................................ 12
3.3.4.1.2 TCG Packets .............................................................................................................................. 13
3.3.4.1.3 Payload Error Response ............................................................................................................ 13
3.3.5
Storage Device Resets .......................................................................................................................... 13
3.3.5.1
Interface Resets ........................................................................................................................... 13
3.3.5.2
TCG Reset Events ....................................................................................................................... 13
3.3.6
Protocol Stack Reset Commands (M) .................................................................................................. 14

Revision 1.00

Page v

TCG Storage Opal SSC
Specification Version 2.01
4

TCG Copyright 2015
Published

OPAL SSC-COMPLIANT FUNCTIONS AND SPS............................................................................. 15
4.1
SESSION MANAGER ...................................................................................................................................... 15
4.1.1
Methods ............................................................................................................................................... 15
4.1.1.1
Properties (M).............................................................................................................................. 15
4.1.1.2
StartSession (M) .......................................................................................................................... 16
4.1.1.3
SyncSession (M).......................................................................................................................... 16
4.1.1.4
CloseSession (O) ......................................................................................................................... 16
4.2
ADMIN SP..................................................................................................................................................... 16
4.2.1
Base Template Tables .......................................................................................................................... 16
4.2.1.1
SPInfo (M)................................................................................................................................... 16
4.2.1.2
SPTemplates (M) ......................................................................................................................... 16
4.2.1.3
Table (M)..................................................................................................................................... 17
4.2.1.4
MethodID (M) ............................................................................................................................. 18
4.2.1.5
AccessControl (M) ...................................................................................................................... 18
4.2.1.6
ACE (M) ...................................................................................................................................... 24
4.2.1.7
Authority (M) .............................................................................................................................. 25
4.2.1.8
C_PIN (M)................................................................................................................................... 26
4.2.2
Base Template Methods ....................................................................................................................... 26
4.2.3
Admin Template Tables ....................................................................................................................... 27
4.2.3.1
TPerInfo (M) ............................................................................................................................... 27
4.2.3.2
Template (M) ............................................................................................................................... 27
4.2.3.3
SP (M) ......................................................................................................................................... 27
4.2.4
Admin Template Methods .................................................................................................................... 28
4.2.5
Crypto Template Tables ....................................................................................................................... 28
4.2.6
Crypto Template Methods .................................................................................................................... 28
4.2.6.1
Random ....................................................................................................................................... 28
4.3
LOCKING SP ................................................................................................................................................. 28
4.3.1
Base Template Tables .......................................................................................................................... 28
4.3.1.1
SPInfo (M)................................................................................................................................... 28
4.3.1.2
SPTemplates (M) ......................................................................................................................... 29
4.3.1.3
Table (M)..................................................................................................................................... 29
4.3.1.4
Type (N) ...................................................................................................................................... 30
4.3.1.5
MethodID (M) ............................................................................................................................. 30
4.3.1.6
AccessControl (M) ...................................................................................................................... 31
4.3.1.7
ACE (M) ...................................................................................................................................... 53
4.3.1.8
Authority (M) .............................................................................................................................. 56
4.3.1.9
C_PIN (M)................................................................................................................................... 57
4.3.1.10
SecretProtect (M) ........................................................................................................................ 58
4.3.2
Base Template Methods ....................................................................................................................... 58
4.3.3
Crypto Template Tables ....................................................................................................................... 58
4.3.4
Crypto Template Methods .................................................................................................................... 58
4.3.4.1
Random ....................................................................................................................................... 58
4.3.5
Locking Template Tables ..................................................................................................................... 58
4.3.5.1
LockingInfo (M) .......................................................................................................................... 58
4.3.5.2
Locking (M) ................................................................................................................................ 59
4.3.5.2.1 Geometry Reporting Feature Behavior ...................................................................................... 60
4.3.5.2.2 LockOnReset Restrictions ......................................................................................................... 61
4.3.5.3
MBRControl (M) ......................................................................................................................... 61
4.3.5.3.1 DoneOnReset Restrictions......................................................................................................... 62
4.3.5.4
MBR (M) ..................................................................................................................................... 62
4.3.5.5
K_AES_128 or K_AES_256 (M) ................................................................................................ 62
4.3.6
Locking Template Methods .................................................................................................................. 62
4.3.7
SD Read/Write Data Command Locking Behavior.............................................................................. 63
4.3.8
Non Template Tables ........................................................................................................................... 63
4.3.8.1
DataStore (M) .............................................................................................................................. 63

Revision 1.00

Page vi

TCG Storage Opal SSC
Specification Version 2.01
5

TCG Copyright 2015
Published

APPENDIX – SSC SPECIFIC FEATURES ......................................................................................... 64
5.1
OPAL SSC-SPECIFIC METHODS .................................................................................................................... 64
5.1.1
Activate – Admin Template SP Object Method .................................................................................... 64
5.1.1.1
Activate Support .......................................................................................................................... 64
5.1.1.2
Side effects of Activate ............................................................................................................... 64
5.1.2
Revert – Admin Template SP Object Method....................................................................................... 64
5.1.2.1
Revert Support ............................................................................................................................. 65
5.1.2.2
Side effects of Revert .................................................................................................................. 65
5.1.2.2.1 Effects of Revert on the PIN Column Value of C_PIN_SID..................................................... 65
5.1.3
RevertSP – Base Template SP Method ................................................................................................ 66
5.1.3.1
RevertSP Support ........................................................................................................................ 66
5.1.3.2
KeepGlobalRangeKey parameter (Locking Template-specific).................................................. 66
5.1.3.3
Side effects of RevertSP .............................................................................................................. 67
5.2
LIFE CYCLE .................................................................................................................................................. 67
5.2.1
Issued vs. Manufactured SPs ............................................................................................................... 67
5.2.1.1
Issued SPs .................................................................................................................................... 67
5.2.1.2
Manufactured SPs........................................................................................................................ 67
5.2.2
Manufactured SP Life Cycle States...................................................................................................... 67
5.2.2.1
State definitions for Manufactured SPs ....................................................................................... 68
5.2.2.2
State transitions for Manufactured SPs........................................................................................ 68
5.2.2.2.1 Manufactured-Inactive to Manufactured ................................................................................... 68
5.2.2.2.2 ANY STATE to ORIGINAL FACTORY STATE .................................................................... 69
5.2.2.3
State behaviors for Manufactured SPs......................................................................................... 69
5.2.2.3.1 Manufactured-Inactive .............................................................................................................. 69
5.2.2.3.2 Manufactured............................................................................................................................. 69
5.2.3
Type Table Modification ...................................................................................................................... 69
5.3
BYTE TABLE ACCESS GRANULARITY ........................................................................................................... 69
5.3.1
Table Table Modification..................................................................................................................... 70
5.3.1.1
MandatoryWriteGranularity ........................................................................................................ 70
5.3.1.1.1 Object Tables............................................................................................................................. 70
5.3.1.1.2 Byte Tables ................................................................................................................................ 70
5.3.1.2
RecommendedAccessGranularity ............................................................................................... 70
5.3.1.2.1 Object Tables............................................................................................................................. 71
5.3.1.2.2 Byte Tables ................................................................................................................................ 71
5.4
EXAMPLES OF ALIGNMENT GEOMETRY REPORTING..................................................................................... 72

Revision 1.00

Page vii

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

TABLES
Table 1 Opal SSC Terminology .................................................................................................................... 2
Table 2 SP Table Legend ............................................................................................................................. 2
Table 3 Level 0 Discovery Header ................................................................................................................ 6
Table 4 Level 0 Discovery - TPer Feature Descriptor ................................................................................... 7
Table 5 Level 0 Discovery - Locking Feature Descriptor .............................................................................. 7
Table 6 Level 0 Discovery - Geometry Reporting Feature Descriptor .......................................................... 8
Table 7 Level 0 Discovery - Opal SSC V2.00 Feature Descriptor ................................................................ 9
Table 8 TPER_RESET Command .............................................................................................................. 11
Table 9 ComID Assignments ...................................................................................................................... 12
Table 10 Supported Tokens ........................................................................................................................ 12
Table 11 reset_types ................................................................................................................................... 13
Table 12 Properties Requirements ............................................................................................................. 15
Table 13 Admin SP - SPInfo Table Preconfiguration .................................................................................. 16
Table 14 Admin SP - SPTemplates Table Preconfiguration ....................................................................... 16
Table 15 Admin SP - Table Table Preconfiguration ................................................................................... 17
Table 16 Admin SP - MethodID Table Preconfiguration ............................................................................. 18
Table 17 Admin SP - AccessControl Table Preconfiguration ..................................................................... 19
Table 18 Admin SP - ACE Table Preconfiguration ..................................................................................... 24
Table 19 Admin SP - Authority Table Preconfiguration .............................................................................. 25
Table 20 Admin SP - C_PIN Table Preconfiguration .................................................................................. 26
Table 21 Admin SP – TPerInfo Columns .................................................................................................... 27
Table 22 Admin SP - TPerInfo Table Preconfiguration ............................................................................... 27
Table 23 Admin SP - Template Table Preconfiguration ............................................................................. 27
Table 24 Admin SP - SP Table Preconfiguration ........................................................................................ 28
Table 25 Locking SP - SPInfo Table Preconfiguration ............................................................................... 28
Table 26 Locking SP - SPTemplates Table Preconfiguration..................................................................... 29
Table 27 Locking SP - Table Table Preconfiguration ................................................................................. 29
Table 28 Locking SP - MethodID Table Preconfiguration ........................................................................... 30
Table 29 Locking SP - AccessControl Table Preconfiguration ................................................................... 31
Table 30 Locking SP - ACE Table Preconfiguration ................................................................................... 53
Table 31 Locking SP - Authority Table Preconfiguration ............................................................................ 56
Table 32 Locking SP - C_PIN Table Preconfiguration ................................................................................ 57
Table 33 Locking SP - SecretProtect Table Preconfiguration .................................................................... 58
Table 34 Locking SP – LockingInfo Columns ............................................................................................. 58
Table 35 Locking SP - LockingInfo Table Preconfiguration ........................................................................ 59
Table 36 Locking SP - Locking Table Preconfiguration .............................................................................. 59
Table 37 Locking SP - MBRControl Table Preconfiguration....................................................................... 61
Table 38 Locking SP - K_AES_128 Table Preconfiguration....................................................................... 62
Table 39 Locking SP - K_AES_256 Table Preconfiguration....................................................................... 62
Table 40 LifeCycle Type Table Modification ............................................................................................... 69
Table 41 Table Table Additional Columns .................................................................................................. 70

Revision 1.00

Page viii

TCG Storage Opal SSC
Specification Version 2.01

1

TCG Copyright 2015
Published

Introduction

1.1 Document Purpose
The Storage Workgroup specifications provide a comprehensive architecture for putting Storage Devices underpolicy control as determined by the trusted platform host, the capabilities of the Storage Device to conform 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.01
[3]. NIST, FIPS-197, 2001, “Advanced Encryption Standard (AES)”[4]. Trusted Computing Group (TCG), “TCG Storage Interface Interactions Specification“, Version 1.04
[5]. Trusted Computing Group (TCG), “TCG Storage Security Subsystem Class: Opal”, Versions 1.00, 2.00
[6]. Trusted Computing Group (TCG), “TCG Storage Opal SSC Feature Set: Additional DataStore Tables”,
Version 1.00
[7]. Trusted Computing Group (TCG), “TCG Storage Opal SSC Feature Set: PSID”, Version 1.00

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 [4]3. TCG Storage Architecture Core Specification [2]Revision 1.00

Page 1

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

1.6 SSC Terminology
This section provides special definitions that are not defined in [2].
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)

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

Revision 1.00

Write

Preconfigured,user personalizable

Preconfigured,user personalizable•••

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
Page 2

TCG Storage Opal SSC
Specification Version 2.01
Table
Cell
LegendArial-Narrow

Revision 1.00

R-W
Write

TCG Copyright 2015
Published

Value
Preconfigured,user personalizable

Access Control
Fixed

•
•
•

Comment
Cell content is writable.
Access control is fixed.
Get Access Control is notdescribed by this color coding

Page 3

TCG Storage Opal SSC
Specification Version 2.01

2

TCG Copyright 2015
Published

Opal SSC Overview

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

An Opal SSC compliant SD:•••

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

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

2.3 Interface Communication Protocol
An Opal SSC compliant SD SHALL implement the synchronous communications protocol as defined in Section
3.3.4.
This communication protocol operates based upon configuration information defined by:
1) The values reported via Level 0 Discovery (Section 3.1.1);
2) The combination of the host's communication properties and the TPer's communication properties (seeProperties Method Section 4.1.1.1).

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

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

Page 4

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

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

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

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

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

2.10 Mandatory Feature Sets
An Opal SSC compliant SD SHALL support the following TCG Storage Feature Sets:
1) Additional DataStore Tables, Opal SSC Feature Set (refer to [6]);2) PSID, Opal SSC Feature Set (refer to [7]).

Revision 1.00

Page 5

TCG Storage Opal SSC
Specification Version 2.01

3

TCG Copyright 2015
Published

Opal SSC Features

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

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

3.1.1.1

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 6

TCG Storage Opal SSC
Specification Version 2.01
3.1.1.2

TCG Copyright 2015
Published

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)

Reserved

Feature Code
VersionLengthMBR Done
MBR EnabledMedia Encryption
LockedLocking Enabled
Locking Supported

Revision 1.00

4

3

2

1

Feature Code (0x0002)
Version5 - 15
•
•
•
•
•
•
•
•
•

5

MBR Done

LengthMBR
Media
EnabledEncryption
Reserved(LSB)

Reserved
Locked0

Locking
EnabledLocking
Supported= 0x0002= 0x1 or any version that supports the defined features in this SSC= 0x0C
= **
= **
=1
= **
= See 3.1.1.3.1=1Page 7

TCG Storage Opal SSC
Specification Version 2.01
3.1.1.3.1

TCG Copyright 2015
Published

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 state otherthan 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
•
•
•

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

Revision 1.00

Page 8

TCG Storage Opal SSC
Specification Version 2.01
3.1.1.4.2

TCG Copyright 2015
Published

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

6

5

(MSB)

4

3

2

1

Feature Code (0x0203)
Version(LSB)
Reserved

Length
(MSB)

5
6

(MSB)

7
8

Base ComID

(MSB)

10
11

(MSB)

12

Number of ComIDs

(LSB)
Range
Crossing
Behavior

Number of Locking SP Admin Authorities Supported(LSB)

Number of Locking SP User Authorities Supported

13

Initial C_PIN_SID PIN Indicator

14

Behavior of C_PIN_SID PIN upon TPer Revert

15-19

Reserved for future common SSC parameters

•

(LSB)

Reserved for future common SSC parameters

9

•
•
•
•
•
•

0

(LSB)

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)

Revision 1.00

Page 9

TCG Storage Opal SSC
Specification Version 2.01•••

TCG Copyright 2015
Published

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 [5].
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.3.1.1), and if the “Initial C_PIN_SID PIN Indicator” and “Behavior of C_PIN_SID PIN
upon TPer Revert” fields are both 0x00.
End 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)
b)
c)
d)
e)
f)
g)

all dynamically allocated ComIDs SHALL return to the Inactive state;
all open sessions SHALL be aborted on all ComIDs;
all uncommitted transactions SHALL be aborted on all ComIDs;
the synchronous protocol stack for all ComIDs SHALL be reset to its initial state
all TCG command and response buffers SHALL be invalidated for all ComIDs;
all related method processing occurring on all ComIDs SHALL be aborted;
TPer’s knowledge of the host’s communications capabilities, on all ComIDs, SHALL be reset to theinitial minimum assumptions defined in [2] or the TPer’s SSC definition;h) the values of the ReadLocked and WriteLocked columns SHALL be set to True for all Locking SP’s
Locking objects that contain the Programmatic enumeration value in the LockedOnReset column;i) the value of the Done column of the Locking SP’s MBRControl table SHALL be set to False, if the
DoneOnReset column contains the Programmatic enumeration value.

Revision 1.00

Page 10

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

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[4]). 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
FIELD

VALUE

Command

IF-SEND

Protocol ID

0x02

Transfer Length

Non-zero

ComID

0x0004

3.3 Communications
3.3.1 Communication Properties
The TPer SHALL support the minimum communication buffer size as defined in Section 4.1.1.1. For each
ComID, 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 [4].
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 11

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

When the TPer receives an IF-SEND or IF-RECV with an inactive or unsupported ComID, the TPer SHALL
either:••terminate the command as defined in [4] with “Other Invalid Command parameter”, orfollow the requirements defined in [2] for “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.
3.3.4.1
3.3.4.1.1

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.

Revision 1.00

Page 12

TCG Storage Opal SSC
Specification Version 2.01
3.3.4.1.2

TCG Copyright 2015
Published

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 [4].
Interface initiated TCG reset events SHALL result in:
1.
2.
3.
4.
5.
6.

All open sessions SHALL be aborted;
All uncommitted transactions SHALL be aborted;
All pending session startup activities SHALL be aborted;
All TCG command and response buffers SHALL be invalidated;
All related method processing SHALL be aborted;
For each ComID, the state of the synchronous protocol stack SHALL transition to “Awaiting IF-SEND”
state;
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

Revision 1.00

Enumeration value

Associated Value

0

Power Cycle

1

Hardware2

HotPlug

3

Programmatic

4-15

Reserved

16-31

Vendor UniquePage 13

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

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 14

TCG Storage Opal SSC
Specification Version 2.01

4

TCG Copyright 2015
Published

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 15

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

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.

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)“Admin”

EnabledSPSessionTimeout

SizeInUse

00 00 02 05
00 00 00 01

Size

Name

00 00 00 02
00 00 00 01

SPID

UID

Table 13 Admin SP - SPInfo Table PreconfigurationT

4.2.1.2 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 16

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

4.2.1.3 Table (M)Refer to section 5.3 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 17

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

4.2.1.4 MethodID (M)*MT1 = refer to section 5.1.2 for details on the requirements for supporting Revert.
*MT2 = refer to section 5.1.1 for details on the requirements for supporting Activate.
.
Table 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.1.2 for details on the requirements for supporting Revert*AC9 = refer to section 5.1.1 for details on the requirements for supporting Activate
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 18

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 19

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.01
TCG Copyright 2015
Published

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

Page 20

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.01
TCG Copyright 2015
Published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

00 00 00 0B
00 00 00 00

ACE_Anybody

ACE_Anybody

ACE_Anybody

ACE_C_PIN_SID_Set_PIN ACE_C_PIN_SID_Get_NOPIN ACE_Anybody

Set

C_PIN_SID

00 00 00 0B
00 00 00 01

C_PIN

Page 21

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.01
TCG Copyright 2015
Published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 22

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.01
TCG Copyright 2015
Published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 23

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.01
TCG Copyright 2015
PublishedACE_Anybody

ACE_SP_SID

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

BaseACEs

Authority
C_PIN

Revision 1.00

00 00 00 08
00 00 8C 02
00 00 00 08
00 00 8C 03
00 00 00 08
00 00 8C 04

Page 24

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

ACE_Anybody GetACLACL
ACE_Anybody

RemoveACEACL

AddACEACL

ACE_SP_SID,
ACE_Admin

Log

ACE_Anybody ACL

CommonName

MethodID
RevertActivate

Get

InvokingID Name
- informative text
SPObj
SPObj

*AC9

TCG Copyright 2015
Published

SPObj

00 00 02 05
TT TT TT TT*AC700 00 02 05
TT TT TT TT InvokingID
*AC7

*AC8

00 00 02 05
TT TT TT TT
*AC7

UID

Table association- Informative text

TCG Storage Opal SSC
Specification Version 2.01

TPerInfoSP*ACE1

4.2.1.7
Notes:•

Columns

BooleanExpr

Name

CommonName

TCG Copyright 2015
Published

UID

Table
Association- Informativetext

TCG Storage Opal SSC
Specification Version 2.01

00 00 00 08
00 03 A0 01"ACE_C_PIN_Admins_Set_PIN"

AdminsOR SIDPIN

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

SID

ProgrammaticResetEnable

00 00 00 08
00 03 00 02"ACE_SP_SID"

SID

All

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

LogTo

Log

Uses

Limit

ClockEnd

ClockStart

ResponseExch
Null
Null
Null
Null

Null

ResponseSign
Null

Null
Null

None
None

Null

C_PIN_Admin1 C_PIN_SID

Null

Password

Null

Null

Password

F

Null

None

F

Credential

PresentCertificate
F

Operation

HashAndSign
None
None

AdminsF

None"Admin1"F

00 00 00 09
00 00 02 01

F

None

Null

T

F

None

Secure
None
None

"SID"

F

00 00 00 09
00 00 00 06

None

Null

T

None

Enabled"Makers"

T

00 00 00 09
00 00 00 03

None

Class
Null
Null

T

00 00 00 09
00 00 00 02

IsClass"Admins"T

Name"Anybody"

T

UID

F

00 00 00 09
00 00 00 01

Revision 1.00

CommonName

Table 19 Admin SP - Authority Table Preconfiguration

LogTo

Log

Uses

Limit

ClockEnd

ResponseExch
Null

ClockStart

ResponseSign
Null

PresentCertificate

None

C_PIN_AdminXX Credential

HashAndSign

None

F

Operation

SecureF

Password

EnabledClass

F

Admins"AdminXX"

4.2.1.8

TCG Copyright 2015
Published

IsClassName

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

CommonNameUID

TCG Storage Opal SSC
Specification Version 2.01

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
00 00 00 0B
00 00 02 01
00 00 00 0B
00 00 02 00
(+XX)
(O)

Name

CommonName

PIN

CharSet

TryLimit

Tries

Persistence"C_PIN_SID"

VU

Null

VU

VU

FALSE

"C_PIN_MSID"

MSID"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.1.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 26

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

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.

4.2.3.2

ProgrammaticResetEnable

SSC

1
*TP2

SpaceForIssuanceProtocolVersion

Firmware Version

VU
*TP1

Generation

GUDID

00 00 02 01
00 03 00 01

Bytes

UID

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

FALSE

Template (M)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

Name"Base""Admin""Locking"

Revision Number
1
11Instances

MaxInstances

VU

VU

1

1

1

1

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

Revision 1.00

Page 27

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published"Admin"Manufactured

FALSE"Locking"

Manufactured-Inactive
OR
Manufactured

FALSE

ORG

Bytes

FrozenDateOfIssue

EffectiveAuth

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.

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.

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)Revision 1.00

"Locking"

EnabledSPSessionTimeout

SizeInUse

Size

00 00 02 05
00 00 00 02

Name

00 00 00 02
00 00 00 01

SPID

UID

Table 25 Locking SP - SPInfo Table Preconfiguration

T

Page 28

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

4.3.1.2 SPTemplates (M)*SP1 = this version number or any number that supports the defined features in this SSC
Table 26 Locking SP - SPTemplates Table Preconfiguration
UID
00 00 00 03
00 00 00 01
00 00 00 03
00 00 00 02

TemplateID

Name

00 00 02 04 00 00 00 01"Base"

00 00 02 04 00 00 00 06"Locking"

Version
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
Refer to section 5.3 for a description and requirements of the MandatoryWriteGranularity andRecommendedAccessGranularity columns.

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"

Object00Revision 1.00

Page 29

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

RecommendedAccess
Granularity

Object00"DataStore"

Byte

VU

VU

Kind

Rows
0x08000000
min

0x00A00000
min

MaxSize"K_AES_256"

MinSize0"K_AES_128”

LastID0

Byte

RowBytes

Object"MBR"

RowsFree

VU

ObjectNumColumns

VU"MBRControl"

Column0

TemplateID

0

CommonName

MandatoryWrite
Granularity

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 10 01

TCG Copyright 2015
Published

Name

UID

TCG Storage Opal SSC
Specification Version 2.01

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

Revision 1.00

Name

CommonName

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

Page 30

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

4.3.1.6 AccessControl (M)The following table contains Optional rows designated with (O).
*AC1 = refer to section 5.1.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
Notes:••The InvokingID, MethodID and GetACLACL columns are a special case. Although they are marked as
Read-Only with fixed access control, the access control for invocation of the Get method is (N).
The ACL column is readable only via the GetACL method.

ACE_Anybody
ACE_Anybody
ACE_Anybody

ACE_Anybody

ACE_Anybody
ACE_Admin
ACE_Anybody

ACE_Anybody

Authenticate
RevertSP
Next

RandomThisSPThisSP
Table

ThisSP00 00 00 00
00 00 00 01*AC1

00 00 00 01
00 00 00 00

00 00 00 00
00 00 00 01

00 00 00 00
00 00 00 01

SP

Table

Revision 1.00

Page 31

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACL

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

UID

Table Association- informative only

Table 29 Locking SP - AccessControl Table Preconfiguration

Revision 1.00
00 00 00 06
TT TT TT TT*AC4
MethodIDObj
Get

ACE_Anybody

ACE_Anybody

ACE

Next

ACE_Anybody

ACE_Anybody

ACE

00 00 00 08
00 00 00 00

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

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

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

SPInfoSPTemplates

MethodID

Page 32

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

ACE_Anybody GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_Anybody ACL

Get

TableObj

00 00 00 01
TT TT TT TT
*AC2

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.01
TCG Copyright 2015
PublishedRevision 1.00
Set

Set

ACE_Anybody

Set

ACE_ACE_Get_All

00 00 00 08
00 03 80 00

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression ACE_ACE_Set_BooleanExpression

ACE_Authority_Get_All

ACE_C_PIN_User1_Set_PIN

ACE_ACE_Set_BooleanExpression

00 00 00 08
00 03 90 00

00 00 00 08
00 03 A8 01

ACE_Anybody

ACE_ACE_Get_All

Get

ACEObj00 00 00 08
TT TT TT TT*AC5Page 33

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.01
TCG Copyright 2015
PublishedRevision 1.00
Set

Set

ACE_Anybody

Set

ACE_C_PIN_UserMMMM_Set_PIN

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

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

ACE_Anybody

Page 34

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_ACE_Set_BooleanExpression ACE_ACE_Set_BooleanExpression ACL

ACE_User1_Set_CommonName

ACE_UserMMMM_Set_CommonName

ACE_ACE_Set_BooleanExpression

00 00 00 08
00 04 40 01

00 00 00 08
00 04 40 00 (+MMMM)

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.01
TCG Copyright 2015
Published*AC600 00 00 08
00 03 B0 01
ACE_K_AES_128_Range1_GenKey
Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody*AC600 00 00 08
00 03 B0 00 (+NNNN)

Revision 1.00

ACE_K_AES_128_RangeNNNN _GenKey
Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_K_AES_128_GlobalRange_GenKey

00 00 00 08
00 03 B0 00*AC6Page 35

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.01
TCG Copyright 2015
Published00 00 00 08
00 03 B8 01*AC6Revision 1.00
Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_K_AES_256_RangeNNNN _GenKey ACE_K_AES_256_Range1_GenKey*AC600 00 00 08
00 03 B8 00 (+NNNN)

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_K_AES_256_GlobalRange_GenKey

00 00 00 08
00 03 B8 00*AC6Page 36

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.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 00 08
00 03 D0 01
ACE_Locking_Range1_Get_
RangeStartToActiveKey
Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

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

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_Locking_GlobalRange_Get_
RangeStartToActiveKey

00 00 00 08
00 03 D0 00

Page 37

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.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 00 08
00 03 E0 01
ACE_Locking_Range1_Set_RdLockedSet

ACE_ACE_Set_BooleanExpression

ACE_Anybody

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

ACE_Locking_RangeNNNN_Set_RdLockedSet

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_Locking_GlobalRange_Set_RdLocked

00 00 00 08
00 03 E0 00

Page 38

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.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 00 08
00 03 E8 01
ACE_Locking_Range1_Set_WrLockedSet

ACE_ACE_Set_BooleanExpression

ACE_Anybody

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

ACE_Locking_RangeNNNN_Set_WrLockedSet

ACE_ACE_Set_BooleanExpression

ACE_Anybody

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_Locking_GlobalRange_Set_WrLocked

00 00 00 08
00 03 E8 00

Page 39

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.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 00 08
00 03 FC 01
ACE_DataStore_Set_All
Set

ACE_ACE_Set_BooleanExpression

ACE_Anybody

Authority

Next

ACE_Anybody

ACE_Anybody

Authority

00 00 00 09
00 00 00 00

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_DataStore_Get_All

00 00 00 08
00 03 FC 00

ACE_Anybody

ACE_ACE_Set_BooleanExpression

Set

ACE_MBRControl_Set_DoneToDOR

00 00 00 08
00 03 F8 01

Page 40

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.01
TCG Copyright 2015
PublishedRevision 1.00
Admin2Set

AdminXXXXSet

ACE_Anybody

ACE_Anybody

ACE_Authority_Set_Enabled,
ACE_Authority_Set_Enabled,
ACE_Admins_Set_CommonName ACE_Admins_Set_CommonName

00 00 00 09
00 01 00 02

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

ACE_Anybody

ACE_Admins_Set_CommonName

Set

Admin100 00 00 09
00 01 00 01

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

Page 41

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_Authority_Get_All,
ACL
ACE_Anybody_Get_CommonName

Get

AuthorityObj

00 00 00 09
TT TT TT TT
*AC7

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 00 0B
00 00 00 00
C_PIN
Next

ACE_Anybody

ACE_Anybody

00 00 00 0B
00 01 00 01

C_PIN_Admin1
Get

ACE_C_PIN_Admins_Get_All_NOPIN

ACE_Anybody

Set

User1

00 00 00 09
00 03 00 01

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

ACE_Anybody

C_PIN

Page 42

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_Authority_Set_Enabled,
ACE_Authority_Set_Enabled,
ACL
ACE_UserMMMM_Set_CommonName ACE_User1_Set_CommonName

Set

UserMMMM

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

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 00 0B
00 03 00 01
C_PIN_User1
Get

ACE_C_PIN_Admins_Get_All_NOPIN

ACE_Anybody

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

ACE_C_PIN_Admins_Get_All_NOPIN

ACE_Anybody

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

Page 43

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_C_PIN_Admins_Get_All_NOPIN ACL

Get

C_PIN_AdminXXXX

00 00 00 0B
00 01 00 00 (+ XX XX)UIDTable Association- informative only

TCG Storage Opal SSC
Specification Version 2.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 00 0B
00 03 00 01
C_PIN_User1
Set

ACE_C_PIN_User1_Set_PIN

ACE_Anybody

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

C_PIN_UserMMMM
Set

ACE_C_PIN_UserMMMM_Set_PIN

ACE_Anybody

ACE_Anybody

ACE_C_PIN_Admins_Set_PIN

Set

C_PIN_AdminXXXX

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

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

Page 44

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_C_PIN_Admins_Set_PIN ACL

Set

C_PIN_Admin100 00 00 0B
00 01 00 01

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 08 02
00 00 00 00
Locking
Next

ACE_Anybody

ACE_Anybody

00 00 08 02
00 00 00 01

Locking_GlobalRange
Get

ACE_Locking_GlobalRange_Get_
RangeStartToActiveKey,
ACE_Anybody_Get_CommonName

ACE_Anybody

ACE_Anybody

ACE_Anybody

Get

LockingInfoObj

00 00 08 01
00 00 00 01

ACE_Anybody

ACE_Anybody

Get

SecretProtectObj

00 00 00 1D
TT TT TT TT*AC8

ACE_Anybody

ACE_Anybody

Next

SecretProtect

00 00 00 1D
00 00 00 00

SecretProtect

LockingInfo

Locking

Page 45

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.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 08 02
00 03 00 00 (+NN NN)
Locking_RangeNNNN
Get

ACE_Locking_RangeNNNN_Get_
RangeStartToActiveKey,
ACE_Anybody_Get_CommonName

ACE_Anybody

00 00 08 02
00 00 00 01
Locking_GlobalRange
Set

ACE_Locking_GlblRng_Admins_Set,
ACE_Locking_GlobalRange_Set_RdLocked,
ACE_Locking_GlobalRange_Set_WrLocked,
ACE_Admins_Set_CommonName

ACE_Anybody

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

Page 46

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_Locking_Range1_Get_
RangeStartToActiveKey,
ACL
ACE_Anybody_Get_CommonName

Get

Locking_Range1

00 00 08 02
00 03 00 01

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.01
TCG Copyright 2015
PublishedRevision 1.00
Set

ACE_Locking_Admins_RangeStartToLOR,
ACE_Locking_Range1_Set_RdLocked,
ACE_Locking_Range1_Set_WrLocked,
ACE_Admins_Set_CommonName

Set

ACE_Locking_Admins_RangeStartToLOR,
ACE_Locking_RangeNNNN_Set_RdLocked,
ACE_Locking_RangeNNNN_Set_WrLocked,
ACE_Admins_Set_CommonName

ACE_Anybody

Get

ACE_Anybody

ACE_Anybody

ACE_Anybody

Locking_Range1

Locking_RangeNNNN

MBRControlObj

00 00 08 02
00 03 00 01

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

MBRControl
00 00 08 03
00 00 00 01

Page 47

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.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 08 04
00 00 00 00
MBR
Set

ACE_Admin

ACE_Anybody

K_AES_128_GlobalRange_Key

Get

ACE_K_AES_Mode

ACE_Anybody

K_AES_128

00 00 08 05
00 00 00 01

ACE_Anybody

ACE_Anybody

Get

MBR

00 00 08 04
00 00 00 00

CommonName

MethodID

InvokingID Name
- informative only

InvokingID

ACE_Anybody

MBR

Page 48

LogTo

DeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACL

RemoveACEACL

AddACEACL

Log

ACE_MBRControl_Admins_Set,
ACL
ACE_MBRControl_Set_DoneToDOR

Set

MBRControlObj

00 00 08 03
00 00 00 01

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 08 05
00 03 00 00 (+NN NN)
K_AES_128_RangeNNNN_Key
Get

ACE_K_AES_Mode

ACE_Anybody

00 00 08 05
00 00 00 01

K_AES_128_GlobalRange_Key
GenKey

ACE_K_AES_128_GlobalRange_GenKey

ACE_Anybody

ACE_Anybody

ACE_K_AES_ModeGet

K_AES_128_Range1_Key

00 00 08 05
00 03 00 01

Page 49

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.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 08 05
00 03 00 00 (+NN NN)
K_AES_128_RangeNNNN_Key
GenKey

ACE_K_AES_128_RangeNNNN_GenKey

ACE_Anybody

K_AES_256_GlobalRange_Key

Get

ACE_K_AES_Mode

ACE_Anybody

K_AES_256

00 00 08 06
00 00 00 01

ACE_Anybody

ACE_K_AES_128_Range1_GenKey

GenKeyK_AES_128_Range1_Key

00 00 08 05
00 03 00 01

Page 50

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.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 08 06
00 03 00 00 (+NN NN)
K_AES_256_RangeNNNN_Key
Get

ACE_K_AES_Mode

ACE_Anybody

00 00 08 06
00 00 00 01
K_AES_256_GlobalRange_Key
GenKey

ACE_K_AES_256_GlobalRange_GenKey

ACE_Anybody

ACE_Anybody

ACE_K_AES_ModeGet

K_AES_256_Range1_Key

00 00 08 06
00 03 00 01

Page 51

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.01
TCG Copyright 2015
PublishedRevision 1.00
00 00 08 06
00 03 00 00 (+NN NN)
K_AES_256_RangeNNNN_Key
GenKey

ACE_K_AES_256_RangeNNNN_GenKey

ACE_Anybody

DataStore
Get

ACE_DataStore_Get_All

ACE_Anybody

DataStore

00 00 10 01
00 00 00 00

ACE_Anybody

ACE_K_AES_256_Range1_GenKey

GenKeyK_AES_256_Range1_Key

00 00 08 06
00 03 00 01

Page 52

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.01
TCG Copyright 2015
Published

LogToDeleteMethodLog

GetACLLog

RemoveACELog

AddACELog

DeleteMethodACL

GetACLACLACE_Anybody

RemoveACEACL

AddACEACL

Log

ACE_DataStore_Set_All

ACL

CommonName

MethodID
Set

InvokingID Name
- informative only

TCG Copyright 2015
Published

DataStore

InvokingID
00 00 10 01
00 00 00 00

UID

Table Association- informative only

TCG Storage Opal SSC
Specification Version 2.01

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"

AdminsEnabledBase ACEs

ACE

Authority

Revision 1.00

00 00 00 08
00 03 80 00
00 00 00 08
00 03 80 01
00 00 00 08
00 03 90 00
00 00 00 08
00 03 90 01

Page 53

(O)
K_AES

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)

CommonName

Columns

C_PIN

BooleanExpr

00 00 00 08
00 04 40 01
00 00 00 08
00 04 40 00(+NN NN)TCG Copyright 2015
Published"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"

Admins

PIN

Name

UID

Table Association-Informative Column

TCG Storage Opal SSC
Specification Version 2.01

"ACE_C_PIN_User1_Set_PIN""ACE_C_PIN_UserMMMM_Set_PIN"

Admins OR User1*ACE1
Admins OR
UserMMMM
*ACE1

PIN
PIN

00 00 00 08
00 03 BF FF"ACE_K_AES_Mode"

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

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

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

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

K_AES_128(O)
K_AES_256

Locking

Revision 1.00

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"

AdminsRangeStart,
RangeLength,
ReadLockEnabled,
WriteLockEnabled,
ReadLocked,
WriteLocked,
LockOnReset, ActiveKey
RangeStart,
RangeLength,
ReadLockEnabled,
Page 54

Columns

Admins"ACE_Locking_GlobalRange_Set_RdLocked"

AdminsReadLocked"ACE_Locking_Range1_Set_RdLocked"

AdminsReadLocked"ACE_Locking_RangeNNNN_Set_RdLocked"

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

00 00 00 08
00 03 F0 01

Revision 1.00

BooleanExpr"ACE_Locking_RangeNNNN_Get_
RangeStartToActiveKey"

00 00 00 08
00 03 F0 00

DataStore

CommonName

Name

00 00 00 08
00 03 D0 00(+NNNN)
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)
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)

MBRControl

TCG Copyright 2015
Published

UID

Table Association-Informative Column

TCG Storage Opal SSC
Specification Version 2.01

00 00 00 08
00 03 F8 00
00 00 00 08
00 03 F8 01
00 00 00 08"ACE_Locking_GlblRng_Admins_Set"

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

Page 55

"ACE_DataStore_Set_All"

Columns

00 03 FC 00
00 00 00 08
00 03 FC 01

BooleanExpr

Name

CommonName

TCG Copyright 2015
Published

UID

Table Association-Informative Column

TCG Storage Opal SSC
Specification Version 2.01

AdminsAll

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 56

LogTo

Log

Uses

Limit

ClockEnd

ClockStart

ResponseExch
Null
Null
Null
Null

Null

ResponseSign
Null
Null
Null
Null
Null

None
None
Password

Credential

Password

Null

Password

F

Null

F

C_PIN_Admin3 C_PIN_Admin2 C_PIN_Admin1

PresentCertificate
F

Operation

HashAndSign

Admins

F

None

F

None

Admins

F

None

F

F

None

AdminsT

F

None

Secure
None
None

F

None

Enabled

Null

T

None

Class
Null

T

None

IsClass"Admin3"

Revision 1.00

CommonName"Admin2"00 00 00 09
00 01 00 03"""Admin1"

00 00 00 09
00 01 00 02"""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

Null

ResponseSign
Null
Null
Null
Null

C_PIN_Admin4 Credential
Null
C_PIN_UserMMMM C_PIN_User1

Operation

F

Password

PresentCertificate

None

F

None

HashAndSign
None
None
None

None

F

T

Password

Secure
None
None
None

Users

F

F

Password

EnabledF

Class
AdminsAdmins
Null
Users

F

IsClass"UserMMMM"

F

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

T

""

"Users"00 00 00 09
00 03 00 01

F"""AdminXXXX"

00 00 00 09
00 03 00 00

F"""Admin4"00 00 00 09
00 01 00 00(+XX XX)1
(O)

F

F

""

Name

00 00 00 09
00 01 00 04

TCG Copyright 2015
Published""UID

TCG Storage Opal SSC
Specification Version 2.01

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

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

CommonName

Page 57

TCG Storage Opal SSC
Specification Version 2.01
UID
00 00 00 0B
00 01 00 00(+XX XX)(O)
00 00 00 0B
00 03 00 01
00 00 00 0B
00 03 00 00(+MM MM)(O)TCG Copyright 2015
Published
Name

CommonName

PIN

CharSet

TryLimit

Tries

Persistence"C_PIN_AdminXXXX"

“”

Null

0

0

FALSE

"C_PIN_User1"

“”

Null

0

0

FALSE

"C_PIN_UserMMMM"

“”

Null

0

0

FALSE

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 00 01
00 00 08 05(K_AES_128)
00 00 00 01
00 00 08 06(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.

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.

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

Revision 1.00

Page 58

TCG Storage Opal SSC
Specification Version 2.01•••

TCG Copyright 2015
Published

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.4).
This column SHALL NOT be modifiable by the host and may be retrieved by Anybody.
LowestAlignedLBAThis column indicates the lowest logical block address that is located at the beginning of an alignment
granularity group (see 5.4).
This column SHALL NOT be modifiable by the host and may be retrieved by Anybody.

LowestAlignedLBA

AlignmentGranularity

LogicalBlockSize

AlignmentRequired

KeysAvailableCfg

MaxRanges

00 00 08 01
00 00 00 01

MaxReEncryptions

EncryptSupport

81

VersionMedia Encryption

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 59

GeneralStatus

LastReEncState

LastReEncryptLBA

ContOnReset

VerifyMode

AdvKeyMode

ReEncyptRequest

ReEncryptState

NextKey

ActiveKey

LockOnReset

WriteLocked

ReadLocked

WriteLockEnabled

ReadLockEnabled

RangeLength

RangeStart

CommonName

Name

UID

Table 36 Locking SP - Locking Table Preconfiguration

4.3.5.2.1

FPower 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

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 60

GeneralStatusF

LastReEncStateF

LastReEncryptLBA

F

ContOnReset0

VerifyMode

WriteLocked

0

AdvKeyMode

ReadLockedF

ReEncyptRequest

WriteLockEnabled

F

ReEncryptState

ReadLockEnabledF

NextKey

RangeLength

F

K_AES_128[256]_GlobalRange_Key
ActiveKey*LT1

RangeStart

0

LockOnReset

CommonName
""

0

""

00 00 08 02
00 03 NN NN

TCG Copyright 2015
Published"""Locking_GlobalRange"

00 00 08 02
00 03 00 01"Locking_Range1"

Name

00 00 08 02
00 00 00 01"Locking_RangeNNNN"UID

TCG Storage Opal SSC
Specification Version 2.01

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

When processing a Set method or CreateRow method on the Locking table for a non-Global Range row, if:
a)
b)
c)

the AlignmentRequired column in the LockingInfo table is TRUE;
RangeStart is non-zero; andStartAlignment (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.
Table 37 Locking SP - MBRControl Table Preconfiguration

Revision 1.00

UID

EnableDone

DoneOnReset

00 00 08 03
00 00 00 01

False

False

Power Cycle*MC1

Page 61

TCG Storage Opal SSC
Specification Version 2.01
4.3.5.3.1

TCG Copyright 2015
Published

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)"K_AES_256_Range1_Key"

VU
*K1
VU
*K1

"K_AES_256_RangeNNNN_Key"

VU*K1"K_AES_256_GlobalRange_Key"

Mode

Key

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

CommonName

UID

Name

Table 39 Locking SP - K_AES_256 Table Preconfiguration

VU
VU
VU

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

Revision 1.00

Page 62

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

4.3.7 SD Read/Write Data Command Locking Behavior
The SD SHALL terminate with a "Data Protection Error" as defined in [4]:••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 [4],if Range Crossing = 1 (in Level 0 Discovery Opal SSC Feature, see 3.1.1).

The SD SHALL abort commands as defined in [4].

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

Revision 1.00

Page 63

TCG Storage Opal SSC
Specification Version 2.01

5

TCG Copyright 2015
Published

Appendix – SSC Specific Features

5.1 Opal SSC-Specific Methods
5.1.1 Activate – Admin Template SP Object Method
Activate is an Opal SSC-specific method for managing the life cycle of SPs created in manufacturing(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.
In case of an “Activate Error” (see [4]) Activate SHALL fail with a status of FAIL.
The MethodID for Activate SHALL be 00 00 00 06 00 00 02 03.
5.1.1.1 Activate Support
Support for Activate within transactions is (N), and the behavior 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.2.2), support for Activate on the Locking SP’s object in the SP Table is mandatory.
5.1.1.2 Side effects of Activate
Upon successful activation of an SP that was in the “Manufactured-Inactive” state, the following changes
SHALL be made:•••The LifeCycleState column of SP’s object in the Admin SP’s SP table SHALL change to“Manufactured”.
The current SID PIN (C_PIN_SID) in the Admin SP is copied into the PIN column of Admin1’s C_PIN
credential (C_PIN_Admin1) in the activated SP. This allows for taking ownership of the SP with aknown PIN credential.
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 [2], and as defined in the“State transitions for Manufactured SPs” section (section 5.2.2.2) and “State behaviors for
Manufactured SPs” section (section 5.2.2.3) of this specification.

5.1.2 Revert – Admin Template SP Object Method
Revert is an Opal SSC-specific method for managing the life cycle of SPs created in manufacturing(Manufactured SP).
SPObjectUID.Revert[ ]=>[ ]Revision 1.00

Page 64

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

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.1.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.2.2).
If the Locking SP was created in manufacturing, support for Revert on the Locking SP’s object in the SP Tableis mandatory.
5.1.2.2 Side effects of Revert
Upon successful invocation of the Revert method, the following changes SHALL be made:
•
•

•

•

5.1.2.2.1

The row in the Admin SP’s SP table that represents this SP SHALL revert to its original factory values.
The SP itself SHALL revert to its Original Factory State. While reverting to its Original Factory State,
the TPer SHALL securely erase all personalization of the SP, and 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.
When 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.1.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.
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 [2], and as defined in the“State transitions for Manufactured SPs” section (section 5.2.2.2) and “State behaviors for
Manufactured SPs” section (section 5.2.2.3) of this specification.
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
Revision 1.00

Page 65

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Publishedcolumn 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.1.3 RevertSP – Base Template SP Method
RevertSP is an Opal SSC-specific method for managing the life cycle of an SP, if it was created in

manufacturing (Manufactured SP).
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.1.3.1 RevertSP Support
Support for RevertSP within transactions is (N), and the behavior is out of the scope of this document.
If the Locking SP was created in manufacturing, support for RevertSP on the Locking SP is mandatory.
5.1.3.2 KeepGlobalRangeKey parameter (Locking Template-specific)
The optional KeepGlobalRangeKey parameter is a Locking Template-specific 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:•

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.

Revision 1.00

Page 66

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

5.1.3.3 Side effects of RevertSP
Upon successful invocation of the RevertSP method, the following changes SHALL be made:•••The SP’s object in the Admin SP’s SP table SHALL revert to its original factory values.
The SP itself SHALL revert to its Original Factory State. While reverting to its Original Factory State,
the TPer SHALL securely erase all personalization of the SP, and 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.
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 [2], and as defined in the“State transitions for Manufactured SPs” section (section 5.2.2.2) and “State behaviors for
Manufactured SPs” section (section 5.2.2.3) of this specification.

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

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

Manufactured Disabled

Manufactured Inactive

Legend:Mandatory
Optional
Not Required

Manufactured Disabled Frozen
Manufactured
Manufactured Frozen

Manufactured Failed

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

Page 67

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

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.2.2.1 State definitions for Manufactured SPs
1. Manufactured-Inactive: This is the Original Factory State for SPs that are created in manufacturing, where
it is not desirable for the functionality of that SP to be active when the TPer is shipped. All templates thatexist in an SP that is in the Manufactured-Inactive state SHALL be counted in the Instances column of theappropriate 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 returnto the Manufactured-Inactive state.
If the Locking SP is a Manufactured SP, support for the Manufactured-Inactive state is optional for the
Locking SP.
2. Manufactured: This is the standard operational state of a Manufactured SP, and defines the initial required
access control settings of an SP based on the Templates incorporated into the SP, prior to personalization.
The Manufactured state is mandatory for the Admin SP.
If the Locking SP is a Manufactured SP, support for the Manufactured state is mandatory for the Locking
SP.
5.2.2.2 State transitions for Manufactured SPs
The following sections describe the mandatory and optional state transitions for Opal SSC-compliant
Manufactured SPs.
For the Admin SP, the only transition for which support is mandatory is “ANY STATE to ORIGINAL FACTORYSTATE” (5.2.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.1.2 for details.
If the Locking SP is a Manufactured SP, support for the “ANY STATE to ORIGINAL FACTORY STATE”
transition (5.2.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.1.2 and 5.1.3).
If the Locking SP’s Original Factory State is Manufactured-Inactive, then support for the “Manufactured-Inactive
to Manufactured” transition (5.2.2.2.1) is mandatory. This transition is accomplished via the Activate method(see section 5.1).
5.2.2.2.1

Manufactured-Inactive to Manufactured

Triggers:•

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

Side effects:•••

The value in the LifeCycleState column of the SP’s object in the Admin SP’s SP table changes to
Manufactured.
The current SID PIN (C_PIN_SID) in the Admin SP is copied into the PIN column of Admin1’s C_PIN
credential (C_PIN_Admin1) in the activated SP. This allows 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.
Revision 1.00

Page 68

TCG Storage Opal SSC
Specification Version 2.01
5.2.2.2.2

TCG Copyright 2015
Published

ANY STATE to ORIGINAL FACTORY STATE

Triggers:•

Revert or RevertSP is successfully invoked on the SP.

Side effects:•••
5.2.2.3
5.2.2.3.1

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.
The SP itself reverts to its Original Factory State, as described in the sections 5.1.2 and 5.1.3.
If the SP’s Original Factory State was Manufactured-Inactive, any functionality enabled by the
templates incorporated into the SP becomes inactive.
State behaviors for Manufactured SPs
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.2.2.3.2

Manufactured

Behavior of an SP in the Manufactured state is identical to the behavior of an SP in the Issued state, as
described in [2].
When the Locking SP is in the Manufactured state, the TCG management of the SD's locking and media
encryption features SHALL be enabled.

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

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

5.3 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
Revision 1.00

Page 69

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

5.3.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 41.
Table 41 Table Table Additional Columns
Column Number
0x0D
0x0E

Column Name
MandatoryWriteGranularity
RecommendedAccessGranularity

IsUniqueColum Typeuinteger_4
uinteger_4

5.3.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.3.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.3.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 4) 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.
Figure 4 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.3.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.

Revision 1.00

Page 70

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

This column SHALL NOT be modifiable by the host.
5.3.1.2.1

Object Tables

For rows in the Table table that pertain to object tables, the value of this column SHALL be zero.
5.3.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 5) isFalse, then the performance of the TPer MAY be reduced when processing the method.
Figure 5 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)
When the host invokes the Get 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 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)

Revision 1.00

Page 71

TCG Storage Opal SSC
Specification Version 2.01

TCG Copyright 2015
Published

5.4 Examples of Alignment Geometry Reporting
Figure 7 illustrates reporting for a typical legacy storage device where there is one logical block per physicalblock on the media.
Figure 7 - 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 8 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 8 - 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 9 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 9 - Example: AlignmentGranularity=8, Lowest Aligned LBA=10

12

AlignmentGranularity

3
4
5
6
7
AlignmentGranularity

8

9

10 11
...

12

Figure 10 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 10 - Example: AlignmentGranularity=2000, Lowest Aligned LBA=1234
0

Revision 1.00

. . . 1230 1231
AlignmentGranularity

1232

1233

1234
...
3233
AlignmentGranularity

3234
...
...

Page 72