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

TCG Storage Opal Family Test
Cases Specification
Specification Version 1.01
Revision 1.10
May 30, 2023
Contact:
admin@trustedcomputinggroup.org

PUBLISHEDTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED© TCG 2023

TCG Storage Opal Family Test Cases Specification

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

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 1© TCG 2022

TCG Storage Opal Family Test Cases Specification

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

Introduction ........................................................................................................................................................... 15
1.1 Document Purpose and Scope ..................................................................................................................... 15
1.2 Scope ............................................................................................................................................................ 15
1.3 Intended Audience ........................................................................................................................................ 15
1.4 Conventions .................................................................................................................................................. 15
1.4.1 Key Words ........................................................................................................................................... 15
1.4.2 Font Conventions ................................................................................................................................ 15
1.4.3 Statement Types ................................................................................................................................. 15
1.4.4 List Conventions .................................................................................................................................. 16
1.4.4.1

Lists Overview ......................................................................................................................... 16

1.4.4.2

Unordered Lists ....................................................................................................................... 16

1.4.4.3

Ordered Lists ........................................................................................................................... 16

1.4.5 Numbering ........................................................................................................................................... 17
1.4.6 Bit Conventions ................................................................................................................................... 17
1.4.7 Number Range Convention ................................................................................................................. 17
1.5 Document References .................................................................................................................................. 17
1.5.1 Document Precedence ........................................................................................................................ 17
1.5.2 Approved References .......................................................................................................................... 18
1.5.3 References Under Development ......................................................................................................... 18
1.6 Definition of Terms ........................................................................................................................................ 18
1.7 Test Cases Key Words and Symbols ........................................................................................................... 19
1.8 Terminologies ............................................................................................................................................... 22
2

Test Cases Outline ............................................................................................................................................... 24
2.1 Overview ....................................................................................................................................................... 24
2.2 Test Case Description................................................................................................................................... 24
2.2.1 Notes ................................................................................................................................................... 24
2.2.2 SSC Applicability ................................................................................................................................. 24
2.2.3 Prerequisites ........................................................................................................................................ 24
2.2.4 Test Sequence .................................................................................................................................... 24
2.2.5 Expected Response ............................................................................................................................ 24

3

Common Baseline Conditions and Test Criteria .................................................................................................. 25
3.1 Minimum Test Requirements ........................................................................................................................ 25
3.2 SID Original Factory State Requirement ...................................................................................................... 26
3.3 SSC Version Requirement............................................................................................................................ 26

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 2© TCG 2022

TCG Storage Opal Family Test Cases Specification

3.4 Feature Set Support Requirement................................................................................................................ 27
3.5 PSID Feature Set Support Requirement ...................................................................................................... 27
3.6 Interface Read/Write Command Support Requirement ............................................................................... 27
4

Use Case Test Cases ........................................................................................................................................... 28
4.1 Introduction ................................................................................................................................................... 28
4.2 Common Prerequisites ................................................................................................................................. 28
UCT-01: Level 0 Discovery ................................................................................................................................. 28
Notes ............................................................................................................................................................. 28
Prerequisites ................................................................................................................................................. 28
Test Sequence .............................................................................................................................................. 28
Expected Response ...................................................................................................................................... 28
UCT-02: Properties ............................................................................................................................................. 30
Notes ............................................................................................................................................................. 30
Prerequisites ................................................................................................................................................. 30
Test Sequence .............................................................................................................................................. 30
Expected Response ...................................................................................................................................... 31
UCT-03: Taking Ownership of an SD ................................................................................................................. 31
Notes ............................................................................................................................................................. 31
Prerequisites ................................................................................................................................................. 31
Test Sequence .............................................................................................................................................. 31
Expected Response ...................................................................................................................................... 32
UCT-04: Activate Locking SP when in Manufactured-Inactive State ................................................................. 32
Notes ............................................................................................................................................................. 32
Prerequisites ................................................................................................................................................. 32
Test Sequence .............................................................................................................................................. 33
Expected Response ...................................................................................................................................... 33
UCT-05: Configuring Authorities ......................................................................................................................... 33
Notes ............................................................................................................................................................. 33
Prerequisites ................................................................................................................................................. 33
Test Sequence .............................................................................................................................................. 33
Expected Response ...................................................................................................................................... 34
UCT-06: Configuring Locking Objects (Locking Ranges)................................................................................... 34
Notes ............................................................................................................................................................. 34
Prerequisites ................................................................................................................................................. 34
Test Sequence .............................................................................................................................................. 34
Expected Response ...................................................................................................................................... 35

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 3© TCG 2022

TCG Storage Opal Family Test Cases Specification

UCT-07: Unlocking Ranges ................................................................................................................................ 35
Notes ............................................................................................................................................................. 35
Prerequisites ................................................................................................................................................. 35
Test Sequence .............................................................................................................................................. 36
Expected Results .......................................................................................................................................... 36
UCT-08: Erasing Ranges .................................................................................................................................... 36
Notes ............................................................................................................................................................. 36
SSC Applicability........................................................................................................................................... 36
Prerequisites ................................................................................................................................................. 36
Test Sequence .............................................................................................................................................. 36
Expected Response ...................................................................................................................................... 37
UCT-09: Using the DataStore Table ................................................................................................................... 37
Notes ............................................................................................................................................................. 37
Prerequisites ................................................................................................................................................. 37
Test Sequence .............................................................................................................................................. 37
Expected Response ...................................................................................................................................... 38
UCT-10: Enable MBR Shadowing ...................................................................................................................... 38
Notes ............................................................................................................................................................. 38
SSC Applicability........................................................................................................................................... 38
Prerequisites ................................................................................................................................................. 38
Test Sequence .............................................................................................................................................. 38
Expected Response ...................................................................................................................................... 39
UCT-11: MBR Done ............................................................................................................................................ 39
Notes ............................................................................................................................................................. 39
SSC Applicability........................................................................................................................................... 39
Prerequisites ................................................................................................................................................. 40
Test Sequence .............................................................................................................................................. 40
Expected Response ...................................................................................................................................... 40
UCT-12: Revert the Locking SP using SID, with Locking SP in Manufactured state ......................................... 40
Notes ............................................................................................................................................................. 40
Prerequisites ................................................................................................................................................. 40
Test Sequence .............................................................................................................................................. 40
Expected Response ...................................................................................................................................... 41
UCT-13: Revert the Admin SP using SID, with Locking SP in Manufactured-Inactive state ............................. 41
Notes ............................................................................................................................................................. 41
Prerequisites ................................................................................................................................................. 41
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 4© TCG 2022

TCG Storage Opal Family Test Cases Specification

Test Sequence .............................................................................................................................................. 41
Expected Response ...................................................................................................................................... 42
UCT-14: Revert the Admin SP using SID, with Locking SP in Manufactured state ........................................... 42
Notes ............................................................................................................................................................. 42
Prerequisites ................................................................................................................................................. 42
Test Sequence .............................................................................................................................................. 43
Expected Response ...................................................................................................................................... 43
UCT-15: Revert Admin SP using Admin1, with Locking SP in Manufactured state ........................................... 43
Notes ............................................................................................................................................................. 43
SSC Applicability........................................................................................................................................... 44
Prerequisites ................................................................................................................................................. 44
Test Sequence .............................................................................................................................................. 44
Expected Response ...................................................................................................................................... 44
UCT-16: Revert Admin SP using PSID, with Locking SP in Manufactured state............................................... 45
Notes ............................................................................................................................................................. 45
SSC Applicability........................................................................................................................................... 45
Prerequisites ................................................................................................................................................. 45
Test Sequence .............................................................................................................................................. 45
Expected Response ...................................................................................................................................... 46
5Specific Functionality ............................................................................................................................................ 47
5.1 Introduction ................................................................................................................................................... 47
5.2 Common Prerequisites ................................................................................................................................. 47
SPF-01: Transaction ........................................................................................................................................... 47
Notes ............................................................................................................................................................. 47.......................................................................................................................................................... 47
Prerequisites ........................................................................................................................................... 47
Test Sequence ....................................................................................................................................... 48
Expected Response ............................................................................................................................... 49.......................................................................................................................................................... 49
Prerequisites ........................................................................................................................................... 49
Test Sequence ....................................................................................................................................... 49
Expected Response ............................................................................................................................... 50
SPF-02: IF-RECV Behavior Tests ...................................................................................................................... 50
Notes ............................................................................................................................................................. 50.......................................................................................................................................................... 50
Prerequisites ........................................................................................................................................... 50

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 5© TCG 2022

TCG Storage Opal Family Test Cases Specification

Test Sequence ....................................................................................................................................... 50
Expected Response ............................................................................................................................... 50.......................................................................................................................................................... 50
Prerequisites ........................................................................................................................................... 50
Test Sequence ....................................................................................................................................... 50
Expected Response ............................................................................................................................... 51
SPF-03: TryLimit ................................................................................................................................................. 51
Notes ............................................................................................................................................................. 51
Prerequisites ................................................................................................................................................. 51
Test Sequence .............................................................................................................................................. 51
Expected Response ...................................................................................................................................... 52
SPF-04: Tries Reset............................................................................................................................................ 52
Notes ............................................................................................................................................................. 52
Prerequisites ................................................................................................................................................. 52
Test Sequence .............................................................................................................................................. 52
Expected Response ...................................................................................................................................... 53
SPF-05: Tries Reset on Power Cycle ................................................................................................................. 54
Notes ............................................................................................................................................................. 54
Prerequisites ................................................................................................................................................. 54
Test Sequence .............................................................................................................................................. 54
Expected Response ...................................................................................................................................... 55
SPF-06: Next ....................................................................................................................................................... 55
Notes ............................................................................................................................................................. 55.......................................................................................................................................................... 55
SSC Applicability .................................................................................................................................... 55
Prerequisites ........................................................................................................................................... 56
Test Sequence ....................................................................................................................................... 56
Expected Response ............................................................................................................................... 56.......................................................................................................................................................... 56
SSC Applicability .................................................................................................................................... 56
Prerequisites ........................................................................................................................................... 56
Test Sequence ....................................................................................................................................... 57
Expected Response ............................................................................................................................... 57
SPF-07: Host Session Number (HSN)................................................................................................................ 57
Notes ............................................................................................................................................................. 57
Prerequisites ................................................................................................................................................. 57
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 6© TCG 2022

TCG Storage Opal Family Test Cases Specification

Test Sequence .............................................................................................................................................. 57
Expected Response ...................................................................................................................................... 57
SPF-08: RevertSP............................................................................................................................................... 58
Notes ............................................................................................................................................................. 58
Case 1: .......................................................................................................................................................... 58
SSC Applicability .................................................................................................................................... 58
Prerequisites ........................................................................................................................................... 58
Test Sequence ....................................................................................................................................... 58
Expected Response ............................................................................................................................... 58.......................................................................................................................................................... 59
SSC Applicability .................................................................................................................................... 59
Prerequisites ........................................................................................................................................... 59
Test Sequence ....................................................................................................................................... 59
Expected Response ............................................................................................................................... 59.......................................................................................................................................................... 59
SSC Applicability .................................................................................................................................... 59
Prerequisites ........................................................................................................................................... 59
Test Sequence ....................................................................................................................................... 60
Expected Response ............................................................................................................................... 60
SPF-09: Range Alignment Verification ............................................................................................................... 60
Notes ............................................................................................................................................................. 60
SSC Applicability........................................................................................................................................... 60
Prerequisites ................................................................................................................................................. 60
Test Sequence .............................................................................................................................................. 60
Expected Response ...................................................................................................................................... 61
SPF-10: Byte Table Access Granularity ............................................................................................................. 61
Notes ............................................................................................................................................................. 61
SSC Applicability........................................................................................................................................... 61
Prerequisites ................................................................................................................................................. 61
Test Sequence .............................................................................................................................................. 61
Expected Response ...................................................................................................................................... 62
SPF-11: Stack Reset........................................................................................................................................... 62
Notes ............................................................................................................................................................. 62
Prerequisites ................................................................................................................................................. 62
Test Sequence .............................................................................................................................................. 62
Expected Response ...................................................................................................................................... 62
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 7© TCG 2022

TCG Storage Opal Family Test Cases Specification

SPF-12: TPer Reset ............................................................................................................................................ 62
Notes ............................................................................................................................................................. 62.......................................................................................................................................................... 63
SSC Applicability .................................................................................................................................... 63
Prerequisites ........................................................................................................................................... 63
Test Sequence ....................................................................................................................................... 63
Expected Response ............................................................................................................................... 63.......................................................................................................................................................... 64
SSC Applicability .................................................................................................................................... 64
Prerequisites ........................................................................................................................................... 64
Test Sequence ....................................................................................................................................... 64
Expected Response ............................................................................................................................... 64
SPF-13: Authenticate .......................................................................................................................................... 65
Notes ............................................................................................................................................................. 65
SSC Applicability........................................................................................................................................... 65
Prerequisites ................................................................................................................................................. 65
Test Sequence .............................................................................................................................................. 65
Expected Response ...................................................................................................................................... 65
SPF-14: Session Abort (Deprecated) ................................................................................................................. 66
SPF-15: Random ................................................................................................................................................ 66
Notes ............................................................................................................................................................. 66
Prerequisites ................................................................................................................................................. 66
Test Sequence .............................................................................................................................................. 66
Expected Response ...................................................................................................................................... 66
SPF-16: CommonName ...................................................................................................................................... 66
Notes ............................................................................................................................................................. 66
SSC Applicability........................................................................................................................................... 66
Prerequisites ................................................................................................................................................. 67
Test Sequence .............................................................................................................................................. 67
Expected Response ...................................................................................................................................... 67
SPF-17: Additional DataStore Tables ................................................................................................................. 67
Notes ............................................................................................................................................................. 67.......................................................................................................................................................... 67
SSC Applicability .................................................................................................................................... 67
Prerequisites ........................................................................................................................................... 68
Test Sequence ....................................................................................................................................... 68
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 8© TCG 2022

TCG Storage Opal Family Test Cases Specification

Expected Response ............................................................................................................................... 68.......................................................................................................................................................... 68
SSC Applicability .................................................................................................................................... 68
Prerequisites ........................................................................................................................................... 68
Test Sequence ....................................................................................................................................... 68
Expected Response ............................................................................................................................... 69
SPF-18: Range Crossing Behavior ..................................................................................................................... 69
Notes ............................................................................................................................................................. 69
SSC Applicability........................................................................................................................................... 69
Prerequisites ................................................................................................................................................. 69
Test Sequence .............................................................................................................................................. 70
Expected Response ...................................................................................................................................... 70
SPF-19: Block SID Authentication ...................................................................................................................... 70
Notes ............................................................................................................................................................. 70
SSC Applicability........................................................................................................................................... 70
Prerequisites ................................................................................................................................................. 70
Test Sequence .............................................................................................................................................. 70
Expected Response ...................................................................................................................................... 71
SPF-20: Data Removal Mechanism ................................................................................................................... 71
SSC Applicability........................................................................................................................................... 71
Prerequisites ................................................................................................................................................. 72
Test Sequence .............................................................................................................................................. 72
Expected Response ...................................................................................................................................... 72
6

Error Test Cases................................................................................................................................................... 73
6.1 Introduction ................................................................................................................................................... 73
6.2 Common Prerequisites ................................................................................................................................. 73
ETC-01: Native Protocol Read/Write Locked Error Responses ......................................................................... 73
Notes ............................................................................................................................................................. 73
Prerequisites ................................................................................................................................................. 73
Test Sequence .............................................................................................................................................. 74
Expected Response ...................................................................................................................................... 74
ETC-02: General – IF-SEND/IF-RECV Synchronous Protocol .......................................................................... 74
Notes ............................................................................................................................................................. 74
Prerequisites ................................................................................................................................................. 74
Test Sequence .............................................................................................................................................. 74
Expected Response ...................................................................................................................................... 74

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 9© TCG 2022

TCG Storage Opal Family Test Cases Specification

ETC-03: Invalid IF-SEND Transfer Length ......................................................................................................... 75
Notes ............................................................................................................................................................. 75
Prerequisites ................................................................................................................................................. 75
Test Sequence .............................................................................................................................................. 75
Expected Responses .................................................................................................................................... 75
ETC-04: Invalid SessionID - Regular Session .................................................................................................... 75
Notes ............................................................................................................................................................. 75
Prerequisites ................................................................................................................................................. 75
Test Sequence .............................................................................................................................................. 75
Expected Responses .................................................................................................................................... 76
ETC-05: Unexpected Token Outside of Method – Regular Session .................................................................. 76
Notes ............................................................................................................................................................. 76
Prerequisites ................................................................................................................................................. 76
Test Sequence .............................................................................................................................................. 76
Expected Response ...................................................................................................................................... 76
ETC-06: Unexpected Token in Method Header – Regular Session................................................................... 76
Notes ............................................................................................................................................................. 76
Prerequisites ................................................................................................................................................. 77
Test Sequence .............................................................................................................................................. 77
Expected Response ...................................................................................................................................... 77
ETC-07: Unexpected Token Outside of Method – Control Session ................................................................... 77
Notes ............................................................................................................................................................. 77
Prerequisites ................................................................................................................................................. 77
Test Sequence .............................................................................................................................................. 77
Expected Response ...................................................................................................................................... 77
ETC-08: Unexpected Token in the Method Parameter List – Control Session .................................................. 78
Notes ............................................................................................................................................................. 78
Prerequisites ................................................................................................................................................. 78
Test Sequence .............................................................................................................................................. 78
Expected Response ...................................................................................................................................... 78
ETC-09: Exceeding Transaction Limit ................................................................................................................ 78
Notes ............................................................................................................................................................. 78
Prerequisites ................................................................................................................................................. 78
Test Sequence .............................................................................................................................................. 78
Expected Response ...................................................................................................................................... 79
ETC-10: Invalid Invoking ID - Get ....................................................................................................................... 79
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 10© TCG 2022

TCG Storage Opal Family Test Cases Specification

Notes ............................................................................................................................................................. 79
Case 1: .......................................................................................................................................................... 79
Prerequisites ........................................................................................................................................... 79
Test Sequence ....................................................................................................................................... 79
Expected Response ............................................................................................................................... 79.......................................................................................................................................................... 80
Notes ...................................................................................................................................................... 80
Prerequisites ........................................................................................................................................... 80
Test Sequence ....................................................................................................................................... 80
Expected Response ............................................................................................................................... 80.......................................................................................................................................................... 80
Notes ...................................................................................................................................................... 80
Prerequisites ........................................................................................................................................... 81
Test Sequence ....................................................................................................................................... 81
Expected Response ............................................................................................................................... 81.......................................................................................................................................................... 81
Notes ...................................................................................................................................................... 81
Prerequisites ........................................................................................................................................... 81
Test Sequence ....................................................................................................................................... 81
Expected Response ............................................................................................................................... 82
ETC-11: Invalid Invoking ID – Non-Get .............................................................................................................. 82
Notes ............................................................................................................................................................. 82
Prerequisites ................................................................................................................................................. 82
Test Sequence .............................................................................................................................................. 82
Expected Response ...................................................................................................................................... 82
ETC-12: Authorization ......................................................................................................................................... 82
Notes ............................................................................................................................................................. 82
Prerequisites ................................................................................................................................................. 82
Test Sequence .............................................................................................................................................. 83
Expected Response ...................................................................................................................................... 83
ETC-13: Malformed ComPacket Header – Regular Session ............................................................................. 83
Notes ............................................................................................................................................................. 83
Prerequisites ................................................................................................................................................. 83
Test Sequence .............................................................................................................................................. 83
Expected Response ...................................................................................................................................... 84
ETC-14: Exceed TPer Properties – Regular Session......................................................................................... 84
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 11© TCG 2022

TCG Storage Opal Family Test Cases Specification

Notes ............................................................................................................................................................. 84
Prerequisites ................................................................................................................................................. 84
Test Sequence .............................................................................................................................................. 84
Expected Response ...................................................................................................................................... 84
ETC-15: Exceed TPer Properties – Control Session.......................................................................................... 85
Notes ............................................................................................................................................................. 85
Prerequisites ................................................................................................................................................. 85
Test Sequence .............................................................................................................................................. 85
Expected Response ...................................................................................................................................... 85
ETC-16: Overlapping Locking Ranges ............................................................................................................... 85
Notes ............................................................................................................................................................. 85
SSC Applicability........................................................................................................................................... 85
Prerequisites ................................................................................................................................................. 85
Test Sequence .............................................................................................................................................. 86
Expected Response ...................................................................................................................................... 86
ETC-17: Invalid Type .......................................................................................................................................... 86
Notes ............................................................................................................................................................. 86
Prerequisites ................................................................................................................................................. 86
Test Sequences ............................................................................................................................................ 86
Expected Response ...................................................................................................................................... 87
ETC-18: RevertSP – GlobalRange Locked ........................................................................................................ 87
Notes ............................................................................................................................................................. 87
SSC Applicability........................................................................................................................................... 87
Prerequisites ................................................................................................................................................. 87
Test Sequence .............................................................................................................................................. 87
Expected Response ...................................................................................................................................... 87
ETC-19: Activate / ATA Security Interaction ....................................................................................................... 88
Notes ............................................................................................................................................................. 88
Prerequisites ................................................................................................................................................. 88
Test Sequence .............................................................................................................................................. 88
Expected Response ...................................................................................................................................... 88
ETC-20: StartSession on Inactive Locking SP ................................................................................................... 88
Notes ............................................................................................................................................................. 88
Prerequisites ................................................................................................................................................. 88
Test Sequence .............................................................................................................................................. 88
Expected Response ...................................................................................................................................... 89
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 12© TCG 2022

TCG Storage Opal Family Test Cases Specification

ETC-21: StartSession with Incorrect HostChallenge .......................................................................................... 89
Notes ............................................................................................................................................................. 89
Prerequisites ................................................................................................................................................. 89
Test Sequence .............................................................................................................................................. 89
Expected Response ...................................................................................................................................... 89
ETC-22: Multiple Sessions .................................................................................................................................. 89
Notes ............................................................................................................................................................. 89
Case 1: .......................................................................................................................................................... 89
Prerequisites ........................................................................................................................................... 89
Test Sequence ....................................................................................................................................... 89
Expected Response ............................................................................................................................... 90.......................................................................................................................................................... 90
Prerequisites ........................................................................................................................................... 90
Test Sequence ....................................................................................................................................... 90
Expected Response ............................................................................................................................... 90
ETC-23: Data Removal Mechanism – Set Unsupported Value.......................................................................... 90
Notes ............................................................................................................................................................. 90
SSC Applicability........................................................................................................................................... 91
Prerequisites ................................................................................................................................................. 91
Test Sequence .............................................................................................................................................. 91
Expected Response ...................................................................................................................................... 91
ETC-24: Read Locked and Write Locked Error Responses ............................................................................... 91
Notes ............................................................................................................................................................. 91
SSC Applicability........................................................................................................................................... 91
Prerequisites ................................................................................................................................................. 92
Expected Response ...................................................................................................................................... 92

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 13© TCG 2022

TCG Storage Opal Family Test Cases Specification

TABLES
Table 1 Test Cases Key Words.................................................................................................................................... 19
Table 2 Symbols ........................................................................................................................................................... 22
Table 3 Terminologies .................................................................................................................................................. 22
Table 4 IF-SEND/RECV Security Protocol=1 Command Field.................................................................................... 25
Table 5 IF-SEND Security Protocol=1 Command Payload.......................................................................................... 25

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 14© TCG 2022

TCG Storage Opal Family Test Cases Specification

1 Introduction
1.1 Document Purpose and Scope
This document defines test cases specific to the Opal SSC 1.00, 2.00, 2.01 and 2.02; Opalite SSC 1.00; Pyrite SSC
1.00, 2.00 and 2.01; and Ruby SSC 1.00 specifications. They provide guidance when testing the functionality of an
SD. The test cases are based upon the requirements described in [1] [2] [3] [4] [5] [6].

1.2 Scope
Not every feature or capability within those specifications is included in this document for testing. The test cases are
driven by baseline capabilities of the SSC specifications, and by SD responses that can be verified by functional
testing and are representative of expected use cases.
The test cases do not include any compatibility testing between SSC versions.

1.3 Intended Audience
The intended audience for this document is SD manufacturers and software developers that may wish to tie SDs into
trusted platforms, as well as manufacturers and developers of other components that intend to bind to trusted SDs.
This document is also intended as a reference for test suite vendors.
This document assumes familiarity and working knowledge of [1] [2] [3] [4] [5] [6] [11] [12] [13] [14] [15].

1.4 Conventions
1.4.1 Key Words
The Key Words “SHALL”, “SHALL NOT”, “SHOULD,” and “MAY” are used in this document. These words are a subsetof the RFC 2119 (see [7]) key words used by TCG. These key words are to be interpreted as described in [7].
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, a Compliance test
SHALL validate that the feature is operational.

•

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

•

Not Required (N): When a feature is Not Required, the feature MAY be implemented. No Compliance test isrequired.

1.4.2 Font Conventions
Names of methods and SP tables are in Courier New font (e.g., the Set method, the Locking table). Thisrequirement does not apply to method and table names appearing in headings or captions.
Hexadecimal numbers are in Courier New font.
All other text is in the Arial font.

1.4.3 Statement Types
There are two distinctive kinds of text: informative comment and normative statements.
By default, all statements are normative statements.
Informative statements are specifically marked by flagging the beginning and end of each informative comment andhighlighting its text in gray.
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 15© TCG 2022

TCG Storage Opal Family Test Cases Specification

EXAMPLE:
Start of informative comment
This is the first paragraph of 1–n paragraphs containing text of the kind informative comment ...
This is the second paragraph of text of the kind informative comment ...
This is the nth paragraph of text of the kind informative comment ...
To understand the TCG specification the user must read the specification. (This use of MUST does not require any
action).
End of informative comment

1.4.4 List Conventions
1.4.4.1

Lists Overview

Lists are associated with an introductory paragraph or phrase, and are numbered relative to that paragraph orphrase (i.e., all lists begin with an a) or 1) entry).
Each item in a list is preceded by an identification with the style of the identification being determined by whether thelist is intended to be an ordered list or an unordered list.
If the item in a list is not a complete sentence, the first word in the item is not capitalized. If the item in a list is acomplete sentence, the first word in the item is capitalized.
Each item in a list ends with a semicolon, except the last item, which ends in a period. The next to the last entry in
the list ends with a semicolon followed by an “and” or an “or” (i.e., “…; and”, or “…; or”). The “and” is used if all theitems in the list are required. The “or” is used if only one or more items in the list are required.
1.4.4.2

Unordered Lists

An unordered list is one in which the order of the listed items is unimportant (i.e., it does not matter where in the list
an item occurs as all items have equal importance). Each list item shall start with a lowercase letter followed by aclose parenthesis. If it is necessary to subdivide a list item further with an additional unordered list (i.e., have anested unordered list), then the nested unordered list shall be indented and each item in the nested unordered list
shall start with an uppercase letter followed by a close parenthesis.
The following is an example of an unordered list with a nested unordered list:
EXAMPLE - The following are the items for the assembly:a) a box containing:A) a bolt;B) a nut; andC) a washer;b) a screwdriver; andc) a wrench.
1.4.4.3

Ordered Lists

An ordered list is one in which the order of the listed items is important (i.e., item n is required before item n+1).
Each listed item starts with a Western-Arabic numeral followed by a close parenthesis. If it is necessary to subdivide
a list item further with an additional unordered list (i.e., have a nested unordered list), then the nested unordered list
shall be indented and each item in the nested unordered list shall start with an uppercase letter followed by a closeparenthesis.
The following is an example of an ordered list with a nested unordered list:

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 16© TCG 2022

TCG Storage Opal Family Test Cases Specification

EXAMPLE - The following are the instructions for the assembly:
1) remove the contents from the box;2) assemble the item;A) use a screwdriver to tighten the screws; andB) use a wrench to tighten the bolts;and3) take a break.

1.4.5 Numbering
A binary number is represented in this standard by any sequence of digits consisting of only the Western-Arabic
numerals 0 and 1 immediately followed by a lowercase b (e.g., 0101b). Underscores or spaces may be included
between characters in binary number representations to increase readability or delineate field boundaries (e.g., 00101 1010b or 0_0101_1010b).
A hexadecimal number is represented in this standard by any sequence of digits consisting of only the WesternArabic numerals 0 through 9 and/or the uppercase English letters A through F immediately preceded by “0x”.
Underscores or spaces may be included between characters in hexadecimal number representations to increase
readability or delineate field boundaries (e.g., 0xFD8C FA23 or 0x0B_FD8C_FA23). Hexadecimal numbers are in
Courier New font.
A decimal number is represented in this standard by any sequence of digits consisting of only the Western-Arabic
numerals 0 through 9 not immediately followed by a lowercase b or lowercase h (e.g., 25). This standard uses thefollowing conventions for representing decimal numbers: the decimal separator (i.e., separating the integer andfractional portions of the number) is a period; the thousands separator (i.e., separating groups of three digits in a
portion of the number) is a space; and the thousands separator is used in both the integer portion and the fraction
portion of a number.
A decimal number represented in this standard with an overline over one or more digits following the decimal pointis a number where the overlined digits are infinitely repeating (e.g., 666.6� Error! Bookmark not defined.means���������� means 12.142 857 142 857… or 12 1/7).
666.666 666… or 666 2/3, and 12.142857

1.4.6 Bit Conventions

Name (n:m), where n is greater than m, denotes a set of bits (e.g., Feature (7:0)).

1.4.7 Number Range Convention
p..q, where p is less than q, represents a range of numbers (e.g., words 100..103 represents words 100, 101, 102,
and 103).

1.5 Document References
1.5.1 Document Precedence
If there is a conflict between this specification and any other reference, then the precedence is (where a lower
number indicates higher precedence):

1. references under development (see section Error! Reference source not found.);
2. approved references (see section Error! Reference source not found.); and3. this specification.

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 17© TCG 2022

TCG Storage Opal Family Test Cases Specification

Each reference under development and each approved reference may specify its own document precedence.

1.5.2 Approved References[1] TCG Storage Architecture Core Specification, Version 2.01
[2] TCG Storage Interface Interactions Specification, Version 1.10
[3] TCG Storage Security Subsystem Class: Opal, Version 1.00
[4] TCG Storage Security Subsystem Class: Opal, Version 2.00
[5] TCG Storage Security Subsystem Class: Opal, Version 2.01
[6] TCG Storage Security Subsystem Class: Opal, Version 2.02
[7] Internet Engineering Task Force (IETF), "Key words for use in RFCs to Indicate Requirement Levels" (RFC 2119)[8] [INCITS T13/2015-D], “Information technology - ATA/ATAPI Command Set – 2 (ACS-2)”[9] TCG Storage Opal SSC Feature Set: Additional DataStore Tables, Version 1.00
[10] TCG Storage Opal SSC Feature Set: PSID, Version 1.00
[11] TCG Storage Security Subsystem Class: Opalite, Version 1.00
[12] TCG Storage Security Subsystem Class: Pyrite, Version 1.00
[13] TCG Storage Security Subsystem Class: Pyrite, Version 2.00
[14] TCG Storage Security Subsystem Class: Pyrite, Version 2.01
[15] TCG Storage Security Subsystem Class: Ruby, Version 1.00
[16] TCG Storage Feature Set: Block SID Authentication, Version 1.00

1.5.3 References Under Development[17] e•MMC Security Extension version 1.0 Available from https://www.jedec.org/[18] SD “Extended Security Addendum version 1.0 Draft”. Available from https://www.sdcard.org/[19] SD "Physical Layer Specification Ver 9.0 Part 1 Draft”. Available from https://www.sdcard.org/[20] T10/BSR INCITS 502, "Information technology - SCSI Primary Commands - 5 (SPC-5)". Available fromhttps://t10.org/[21] T10/BSR INCITS 506, "Information technology - SCSI Block Commands - 4 (SBC-4)". Available fromhttps://t10.org/[22] T13/BSR INCITS 549574, "Information technology - Zoned Device ATA Command Set -62 (ACS-6ZAC-2)",
Available from https://www.t13.org/[23] T13/BSR INCITS 575, "Information technology - Zoned Device ATA Command Set -3 (ZAC-3)", Available fromhttps://www.t13.org/[24] UFS Security Extension version 1.0 Available from https://www.jedec.org/

1.6 Definition of Terms
Term

Definition

ACMD53

ACMD53 SECURE_RECEIVE command

ACMD54

ACMD54 SECURE_SEND command

ATA

AT Attachment (see https://t13.org)

ATAPI

AT Attachment Packet Interface (see https://t13.org)

CMD23

CMD23 command (SET_BLOCK_COUNT)e•MMC

Embedded MMC (see https://jedec.org)

Eradicateirrevocably erase (e.g., cryptographically erase)

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 18© TCG 2022

TCG Storage Opal Family Test Cases Specification

Term

Definition

IF-RECVAn interface command used to retrieve security protocol data fromthe TPer

IF-SEND

An interface command used to transmit security protocol data to
the TPer

Locking SP

A security provider that incorporates the Locking Template as
described in the Core Spec

Locking SP is owned

A condition in which specific modifications (see section Error!
Reference source not found.) of an SP have been madeLUN

Logical Unit Number

MBR

Master Boot Record

Namespace

A formatted quantity of user data that may be directly accessed bya host.

NSID

Namespace Identifier

NVDIMM-N

Non-volatile DIMM type N (see https://jedec.org)

NVMe

NVM Express (see https://nvmexpress.org)

Opal family

Any of: Opal SSC, Opalite SSC, Ruby SSC, or Pyrite SSC

SAS

Serial Attached SCSI (see https://t10.org)

SATA

Serial ATA (see https://serialata.org)

SCSI

Small Computer System Interface (see https://t10.org)

SD

Storage Device

SD-interface

SecureDigital (SD) interface of an SecureDigital memory card

SSC

Security Subsystem Class. SSC specifications describe profiled
sets of TCG functionality

TCG Reset

A high-level reset type defined in the Core SpecTPer

The TCG security subsystem within a Storage Device

Trusted Peripheral

A TPerUAS

UAS Attached SCSI (see https://t10.org)

UFS

Universal Flash Storage (see https://jedec.org)

USB

Universal Serial Bus (see https://www.usb.org)

1.7 Test Cases Key Words and Symbols
The test case key words listed below are used by this Test Cases specification.
Table 1 Test Cases Key Words

TERM<*_PASSWORD>

DEFINITION
32 byte hex value used as a PIN column value for the C_PIN
object associated with the noted authority.

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 19© TCG 2022

TCG Storage Opal Family Test Cases Specification<LAST_REQUIRED_USER_PASSWORD>

ACE_MBRCONTROL_SET_DONE

ACTIVATE_THE_LOCKING_SP
ARBITRARILY_VARYING
ARBITRARILY_VARYING_COMMAND_PARAMETERS

ARBITRARILY_VARYING_LBA_RANGE
CLOSE_SESSIONENABLE <AuthorityName>EXPECTED_RESPONSE
FAIL
FAILS

LAST_REQUIRED_USER

Refers to a 32 byte hex value used as a PIN column value for
the C_PIN object associated with the last User authority
required by each SSC.
This Key Word should be interpreted as follows:
1. Opal 1.00: <User4_PASSWORD>
2. Opal 2.00: <User8_PASSWORD>
3. Opal 2.01: <User8_PASSWORD>
4. Opal 2.02: <User8_PASSWORD>
5. Opalite 1.00: <User2_PASSWORD>
6. Pyrite 1.00: <User2_PASSWORD>
7. Pyrite 2.00: <User2_PASSWORD>
8. Pyrite 2.01: <User2_PASSWORD>
9. Ruby 1.00: <User2_PASSWORD>
Refers to the ACE that grants authorities access to the Set
method on the Done column of the MBRControl table.
This Key Word should be interpreted as follows:
1. Opal 1.00: ACE_MBRControl_Done
2. Opal 2.00: ACE_MBRControl_DoneToDOR
3. Opal 2.01: ACE_MBRControl_DoneToDOR
4. Opal 2.02: ACE_MBRControl_DoneToDOR
5. Opalite 1.00: ACE_MBRControl_DoneToDOR
6. Pyrite 1.00: ACE_MBRControl_DoneToDOR
7. Pyrite 2.00: ACE_MBRControl_DoneToDOR
8. Pyrite 2.01: ACE_MBRControl_DoneToDOR
9. Ruby 1.00: ACE_MBRControl_DoneToDOR
Change the life cycle state of the Locking SP in a TPer from
Manufactured-Inactive to Manufactured. See [2]Refers to a value that varies between executions in anarbitrary way determined by the Test Suite Vendor.
Refers to parameters for a command which would normallybe considered valid parameters for the command as
supported by the SD but that vary between executions in anarbitrary way determined by the Test Suite Vendor.
Refers to an LBA range below the Current Maximum LBA
that varies between executions in an arbitrary way
determined by the Test Suite Vendor.
The host transmits an End of Session token.
Invoke the Set method to set Enabled column value to
TRUE for the noted authority object.
See section 2.2.5
Expected failure of one or more test sequence steps.
Refers to the last User authority required by each SSC.
This Key Word should be interpreted as follows:
1. Opal 1.00: User4
2. Opal 2.00: User8
3. Opal 2.01: User8
4. Opal 2.02: User8
5. Opalite 1.00: User2
6. Pyrite 1.00: User2
7. Pyrite 2.00: User2
8. Pyrite 2.01: User2

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 20© TCG 2022

TCG Storage Opal Family Test Cases Specification

LAST_REQUIRED_RANGELAST_REQUIRED_RANGE_WRLOCKED_ACE

LAST_REQUIRED_RANGE_RDLOCKED_ACE

MAGIC_PATTERN

9. Ruby 1.00: User2
Refers to the last Locking_* locking object required by each
SSC.
This Key Word should be interpreted as follows:
1. Opal 1.00: Locking_Range4
2. Opal 2.00: Locking_Range8
3. Opal 2.01: Locking_Range8
4. Opal 2.02: Locking_Range8
5. Opalite 1.00: Locking_GlobalRange
6. Pyrite 1.00: Locking_GlobalRange
7. Pyrite 2.00: Locking_GlobalRange
8. Pyrite 2.01: Locking_GlobalRange
9. Ruby 1.00: Locking_GlobalRange
Refers to the ACE_Locking_*_Set_WrLocked ACE
associated with the last Locking_* locking object required byeach SSC.
This Key Word should be interpreted as follows:
1. Opal 1.00: ACE_Locking_Range4_Set_WrLocked
2. Opal 2.00: ACE_Locking_Range8_Set_WrLocked
3. Opal 2.01: ACE_Locking_Range8_Set_WrLocked
4. Opal 2.02: ACE_Locking_Range8_Set_WrLocked
5. Opalite 1.00:
ACE_Locking_GlobalRange_Set_WrLocked
6. Pyrite 1.00:
ACE_Locking_GlobalRange_Set_WrLocked
7. Pyrite 2.00:
ACE_Locking_GlobalRange_Set_WrLocked
8. Pyrite 2.01:
ACE_Locking_GlobalRange_Set_WrLocked
9. Ruby 1.00:
ACE_Locking_GlobalRange_Set_WrLocked
Refers to the ACE_Locking_*_Set_RdLocked ACE
associated with the last Locking_* locking object required byeach SSC.
This Key Word should be interpreted as follows:
1. Opal 1.00: ACE_Locking_Range4_Set_RdLocked
2. Opal 2.00: ACE_Locking_Range8_Set_RdLocked
3. Opal 2.01: ACE_Locking_Range8_Set_RdLocked
4. Opal 2.02: ACE_Locking_Range8_Set_RdLocked
5. Opalite 1.00:
ACE_Locking_GlobalRange_Set_RdLocked
6. Pyrite 1.00:
ACE_Locking_GlobalRange_Set_RdLocked
7. Pyrite 2.00:
ACE_Locking_GlobalRange_Set_RdLocked
8. Pyrite 2.01:
ACE_Locking_GlobalRange_Set_RdLocked
9. Ruby 1.00:
ACE_Locking_GlobalRange_Set_RdLocked
A data sequence used in some of the test cases. It has an
ARBITRARILY_VARYING value, and is always aligned withthe first byte of each logical block. This value was arbitrarily

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 21© TCG 2022

TCG Storage Opal Family Test Cases SpecificationNA
Not Applicable
SET_PASSWORD_FOR <C_PIN object name>selected to be distinguishable as data that had been
intentionally written by the host application.
Expected behavior or result is not applicable for one or moretest sequence steps.
Invoke the Set method on the PIN column of the noted C_PIN
object to the value provided in the test sequence step.
The number of logical blocks in the MBR Table.

SIZE_OF_MBR_TABLE_DESCRIPTOR_IN_LO
GICAL_BLOCKS

Calculate the number of logical blocks in the MBR Table bydividing the number of rows by the logical block size in bytes
obtained through the discovery mechanisms of the underlying
interface protocol.
The number of rows of the MBR Table can be retrieved by
invoking Get method on the Rows column of the MBR Table
Descriptor Object.

SUCCEED
SUCCEEDS
USER_DATA

Test Sequence step(s) result in the appropriate response(s)as described in [1] [2] [3] [4] [5] [6] [11] [12] [13] [14] [15].
Data that may be transferred between the host and the TPerusing READ commands and WRITE commands.
Table 2 Symbols

SYMBOL
=
<
>
<=
>=
<>
+
%

DEFINITION
Equals/EquivalenceLess thanGreater thanLess than or equal to
Greater than or equal to
Is not equal to
Minus
Plus
Modulo

1.8 Terminologies
Table 3 Terminologies

TERM
Current Maximum LBA
Host (or host)
IF-RECV
IF-SEND
Original Factory State (OFS)SWG
SD

DEFINITION
The maximum LBA that is permitted at the test run time by a normal
read or write command.
An entity that initiates IF-SEND or IF-RECV to a TPer
An interface command used by the host to retrieve data from TPer.
See [1]An interface command used to transmit data from the host to theTPer. See [1]The original state of an SP in a TPer when shipped from the
manufacturer’s factory. See [2] [3] [4]Storage Work Group. A Work Group of the Trusted Computing GroupThe Storage Device

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 22© TCG 2022

TCG Storage Opal Family Test Cases Specification

target device
Test Suite
TPer
Transfer Lengthuser data

A TPer that is tested by a test suite in the test cases in this document.
Software that performs the indicated test sequences of each test.
A Trusted Peripheral. An entity that implements TCG SWG SP(s) and
responds to an IF-SEND or an IF-RECV initiated by a Host. See [1]The Transfer Field of IF-SEND or IF-RECV (See [1]) or Transfer
Length field value
Data that may be transferred between the host and the TPer using
READ commands and WRITE commands.

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 23© TCG 2022

TCG Storage Opal Family Test Cases Specification

2 Test Cases Outline
2.1 Overview
Each test case description contains four components: Notes, Prerequisites, Test Sequence and Expected Response.
Expected Response describes the expected behavior(s) of the target device in each test. Prerequisites define theinitial conditions that have to be met prior to performing the test. Notes provide informative text relating to the test forcontext. Details of these four components are described in section 2.2.
The majority of tests are contained in two areas: Section 4: Use Case Test Cases and Section 5: SpecificFunctionality. Additionally, Section 3 outlines data handling requirements for Test Suite vendors and Section 6 details
required test cases for error conditions.
Test cases in Section 4 are required to be performed in sequential order.
Unless otherwise specified, all test cases in this specification apply to all SSCs supported by this specification.

2.2 Test Case Description
2.2.1 Notes
The Notes section is informative text. It contains any information pertinent to the test being performed. This
component may not be populated for every test case.

2.2.2 SSC Applicability
The SSC Applicability section is a section which will be used to indicate which SSCs are applicable to the test being
performed.
If an SSC is identified as not applicable for a given test case, then the Test House SHALL NOT run the test case forthe specified SSC and instead the Test House SHALL mark the test as NA.
If this section is omitted from a test case, then the test case applies to all SSCs supported by this specification andthe test shall be performed by the Test House for all SSCs, unless otherwise specified.

2.2.3 Prerequisites
Sections 4, 5, and 6 include a set of common prerequisites for each section that SHALL be met prior to performing
any test in that section. Additionally, each test case within a section may have prerequisites specific to that test that
SHALL be met prior to performing the specific test. If there are no prerequisites required for a specific test case, thisarea states ‘None’ and the test begins with the Test Sequence criteria.
The prerequisites for each test case SHALL be implemented in sequential order.

2.2.4 Test Sequence
The Test Sequence includes the required steps, in sequential order, that SHALL be performed to obtain the
Expected Response for a given test. Test Sequences may include different steps for [3] [4] [5] [6].

2.2.5 Expected Response
Expected Response describes the expected behavior(s) of the target device under the Prerequisites and Test
Sequence condition(s). All the expected responses are defined in [1] [2] [3] [4] [5] [6] [8] [9] [10].

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 24© TCG 2022

TCG Storage Opal Family Test Cases Specification

3 Common Baseline Conditions and Test Criteria
3.1 Minimum Test Requirements
The Test Suite SHALL:
a)
b)
c)
d)

e)
f)
g)
h)
i)

utilize Synchronous Interface Communications capability (See [1]) for host to TPer communications
comply with IF-SEND(s) and IF-RECV(s) command field values described in Table 4
comply with IF-SEND payload field values described in Table 5
contain a payload that SHALL NOT cause errors or state changes within the TPer (e.g. invocation of theProperties method) for tests that require examining the Interface Command Parameters or
ComPacket/Packet/Subpacket headers with values other than described above
utilize Read-Write sessions for Regular sessions
adhere to the TPer communications capabilities as reported in the Properties method response unlessspecifically required to do otherwise for a specific test
use the Extended ComID value provided under level 0 Discovery
use the Host Session Number (HSN) 0x00000001, except in the specific Host Session Number (HSN) test
defined in section SPF-07:
have a Packet.SeqNumber of 0s for communications sent to the TPer

The Test Suite SHALL NOT:a) send empty atoms unless specifically required to do so for a testb) utilize Buffer Management capability (See [1])c) utilize ACK/NAK capability (See [1])d) trigger any TPer resets unless specifically required to do so for a test
For invocations of IF-RECV tests, the TPer is in the Awaiting IF-RECV state for a ComID:a) when the ComPacket header ‘OutstandingData’ field = 1 the Test Suite SHALL re-issue an IF-RECV until the
TPer returns a ComPacket header that does not satisfy the condition, orb) when the ComPacket ’OutstandingData’ field = <total data available>; and the ‘MinTransfer’ field = <minimum
request length required to transfer a packet>, the Test Suite SHALL issue another IF-RECV with greater valueof Transfer Length than the previous until the TPer returns a response that does not satisfy the conditionsc) when the TPer response contains a Subpacket and the ComPacket ‘OutstandingData’ field = <additional bytes
available, not including the data transferred in the current ComPacket>; and the ‘MinTransfer’ field = <minimum
request required to transfer the next packet>, the Test Suite SHALL issue and IF-RECV until the TPer returns a
response that does not satisfy the above conditions
Table 4 IF-SEND/RECV Security Protocol=1 Command Field

Field
Security Protocol
Security Protocol Specific
Transfer Length

Value
1
any static ComID that the TPer supports and isreported by the Opal SSC Feature Descriptor
the minimum value necessary to transfer a
ComPacket

Table 5 IF-SEND Security Protocol=1 Command Payload

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 25© TCG 2022

TCG Storage Opal Family Test Cases Specification

Field
Reserved
ComID
ComID Extension
OutstandingData
MinTransfer

LengthValue
ComPacket Header
all-0sthe same value as the Security Protocol Specificfield in the IF-SEND
all-0sall-0sall-0sa value that satisfies the following conditions:a) multiple-of-4;b) does not exceed (the TPer's
MaxComPacketSize – 20, where 20 is thelength of ComPacket header field); andc) indicates its payload contains exactly one
PacketPacket Header
Session
SeqNumberReserved
AckTypeAcknowledgement

LengthSubpacket Header
Reserved
Kind
Lengtha)b)

all-0s for Control session; or
the session number of the session that was
successfully started by a StartSession() and a
SyncSession() for Regular session
all-0sall-0sall-0sall-0sa value that satisfies the following conditions:a) multiple-of-4;b) does not exceed (the TPer's MaxPacketSize –24); andc) indicates its payload contains exactly one
Subpacket and one Pad field, if necessary
all-0sall-0sa value that is exactly the length of token stream
the host is sending to the TPerPad
all-0s (and its length is 0 to 3)

3.2 SID Original Factory State Requirement
If SID is not MSID, the SD vendor SHALL submit the value of SID to Test House and CPM.

3.3 SSC Version Requirement
The SD vendor SHALL submit the SSC version implemented by the SD to the Test House and Certification Program
Manager (CPM).
Supported SSC versions in this specification include:1) Opal 1.00 (refer to [3])2) Opal 2.00 (refer to [4])3) Opal 2.01 (refer to [5])4) Opal 2.02 (refer to [6])TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 26© TCG 2022

TCG Storage Opal Family Test Cases Specification5) Opalite 1.00 (refer to [11])6) Pyrite 1.00 (refer to [12])7) Pyrite 2.00 (refer to [13])8) Pyrite 2.01 (refer to [14])9) Ruby 1.00 (refer to [15])3.4 Feature Set Support Requirement
The SD vendor SHALL submit a list of Feature Sets implemented by the SD to the Test House and CPM.
The Test Suite Vendor SHALL support testing against all feature sets supported in this specification.
Supported Feature Sets in this specification include:
1) Additional DataStore Tables, Opal SSC Feature Set (refer to [9])2) PSID, Opal SSC Feature Set (refer to [10])3) Block SID Authentication Feature Set (refer to [16])3.5 PSID Feature Set Support Requirement
If the SD vendor claims support for the PSID Feature Set, then the SD vendor SHALL submit the PSID value to the
Test House and CPM.

3.6 Interface Read/Write Command Support Requirement
The SD vendor MAY submit a list of all supported Read and Write commands (as identified by [2]) to the Test House
and CPM.
The Test Suite SHALL discover the list of all supported Read and Write commands (as identified by [2]).

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 27© TCG 2022

TCG Storage Opal Family Test Cases Specification

4 Use Case Test Cases
4.1 Introduction
Test cases in this section relate to use case scenarios that apply to general SD functionality. Tests in this section
SHALL be performed in sequential order. Unless otherwise specified within a test case, the expected result of eachstep is that the step SHALL SUCCEED.

4.2 Common Prerequisites
Unless otherwise noted, the following set of prerequisites apply for each test in this section:
1. Synchronous Protocol state machine for all ComIDs is in “Awaiting IF-SEND” state
2. The Locking SP is in Manufactured state
3. The values of any credentials used are known
4. All StartSession method HostChallenge parameters use the current C_PIN object’s PIN column value for
the Authority used in the HostSigningAuthority parameter
5. All sessions are Read-Write sessions
6. No open sessions exist at the start of the Test Sequence

UCT-01: Level 0 Discovery
Notes
Start of informative comment
This test includes the sequence of operations required to determine if the SD supports any SSC supported by thisspecification.
After completing this test, record the COM ID for use in later tests.
End of informative comment

Prerequisites
None

Test Sequence
1)

Issue an IF-RECV Level 0 Discovery with the following conditions:a. Security Protocol = 1
b. Security Protocol Specific = 0x0001
c. Transfer Length is a value large enough to retrieve the entire response data of Level 0 Discovery

Expected Response
1) Step #1 SUCCEEDS2) The SD returns the following values for Level 0 Discovery:a. TPer Featurei.

Feature Code = 0x0001

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 28© TCG 2022

TCG Storage Opal Family Test Cases Specification

ii.

Streaming Supported = 1

iii.

Sync Supported = 1

b. Locking Featurei.

Feature Code = 0x0002

ii.

For Opal 1.00, Opal 2.00, Opal 2.01, Opal 2.02, Opalite 1.00, and Ruby 1.00, Media Encryption = 1

iii.

For Pyrite 1.00, Pyrite 2.00 and Pyrite 2.01, Media Encryption = 0

iv.

Locking Supported = 13) The SD returns the following values for Opal 1.00:
a. Opal 1.00 Featurei.

Feature Code = 0x0200

ii.

Number of ComIDs >= 1

4) The SD returns the following values for Opal 2.00, 2.01 or 2.02:
a. Opal 2.00, 2.01 and 2.02 Featurei.

Feature Code = 0x0203

ii.

Number of ComIDs >= 1iii.

Number of Locking SP Admin Authorities >= 4iv.

Number of Locking SP User Authorities >= 8

b. Additional DataStore Table Featurei.

Feature Code = 0x0202

ii.

Maximum number of DataStore Tables >= 1

iii.

Maximum total size of DataStore Tables >= 0xA0000

iv.

DataStore Table size alignment >= 1c. If the device supports Opal v2.02, Block SID Authentication Featurei.

Feature Code = 0x0402

ii.

SID Value State = 05) The SD returns the following values for Opalite 1.00:
a. Opalite SSC 1.00 Featurei.

Feature Code = 0x0301

ii.

Number of ComIDs >= 1

b. Block SID Authentication Featurei.

Feature Code = 0x0402

ii.

SID Value State = 06) The SD returns the following values for Pyrite 1.00:
a. Pyrite 1.00 Featurei.

Feature Code = 0x0302

ii.

Number of ComIDs >= 1

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 29© TCG 2022

TCG Storage Opal Family Test Cases Specificationb. Block SID Authentication Featurei.

Feature Code = 0x0402

ii. SID Value State = 07) The SD returns the following values for Pyrite 2.00:
a. Pyrite 2.00 Feature
i. Feature Code = 0x0303
ii. Number of ComIDs >= 1
b. Block SID Authentication Featureiii. Feature Code = 0x0402
iv. SID Value State = 0
c. Supported Data Removal Mechanism Feature
i. Feature Code = 0x0404
ii. Overwrite Data Erase = 1 or Block Erase = 1iii. Crypto Erase = 08) The SD returns the following values for Ruby 1.00:
a. Ruby 1.00 Featurei.

Feature Code = 0x0304

ii. Number of ComIDs >= 1
b. Block SID Authentication Featurei.

Feature Code = 0x0402

ii. SID Value State = 0

UCT-02: Properties
Notes
Start of informative comment
The values in the Properties response reported in this section are examples and vary between implementations andlocking states of ranges.
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the Properties method with the following HostProperties values:a. MaxComPacketSize = 4096 bytes

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 30© TCG 2022

TCG Storage Opal Family Test Cases Specification

b. MaxPacketSize = 4076 bytes
c. MaxIndTokenSize = 4040 bytes

Expected Response
1) Step #1 SUCCEEDS2) The SD returns the following values for TPer Properties:
a. MaxComPacketSize >= 2048 bytes
b. MaxResponseComPacketSize >= 2048 bytes
c. MaxPacketSize >= 2028 bytes
d. MaxIndTokenSize >= 1992 bytes
e. MaxPackets >= 1
f.

MaxSubpackets >= 1

g. MaxMethods >= 1
h. MaxSessions >= 1i.

MaxAuthentications >= 2

j.

MaxTranactionLimit >= 1

k. DefSessionTimeout >= 0
3) The SD returns the following values for Host Properties:
a. MaxComPacketSize >= 2048 bytes and <= 4096 bytes
b. MaxPacketSize >= 2028 bytes and <= 4076 bytes
c. MaxIndTokenSize >= 1992 bytes and <= 4040 bytes

UCT-03: Taking Ownership of an SD
Notes
Start of informative comment
The following test is to establish that an SD can be controlled by host software. Taking ownership is a key step inmanaging an SD.
End of informative comment

Prerequisites
None

Test Sequence
1) If Opal 1.00; or if any other SSC supported by this specification and the Initial C_PIN_SID PIN Indicator value =0, thenTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 31© TCG 2022

TCG Storage Opal Family Test Cases Specificationa. Invoke the StartSession method with SPID = Admin SP UID
b. Invoke the Get method to retrieve MSID’s PIN column value from the C_PIN tablec. CLOSE_SESSION
d. Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority
UID
e. SET_PASSWORD_FOR SID to <SID_PASSWORD>f.

CLOSE_SESSION

2) If any SSC supported by this specification other than Opal 1.00 and the Initial C_PIN_SID PIN Indicator value <>0, then obtain SID VU PIN value from the SD vendor
a. Invoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = SID authority UID,
and HostChallenge = SID C_PIN object’s VU PIN column valueb. SET_PASSWORD_FOR SID to <SID_PASSWORD>
c. CLOSE_SESSION
3) If Opal 2.00, 2.01 or 2.02
a. Invoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = SID authority UID,
and HostChallenge = <SID_PASSWORD>
b. SET_PASSWORD_FOR Admin1 to <AdminSP_Admin1_ PASSWORD>
c. ENABLE Admin1
d. CLOSE_SESSION

Expected Response
If Opal 1.00, or if any other SSC supported by this specification and the Initial C_PIN_SID PIN Indicator value =0, then step #1 SUCCEEDS
If any SSC supported by this specification other than Opal 1.00 and the Initial C_PIN_SID PIN Indicator value <>0, then step #2 SUCCEEDS
If Opal 2.00, 2.01 or 2.02 then step #3 SUCCEEDS

UCT-04: Activate Locking SP when in Manufactured-Inactive State
Notes
Start of informative comment
None
End of informative comment

Prerequisites
1) Locking SP is in the Manufactured-Inactive state2) The Activate method is implemented

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 32© TCG 2022

TCG Storage Opal Family Test Cases Specification

Test Sequence
1) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID
2) Invoke the Activate method on Locking SP object
3) CLOSE_SESSION
4) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID5) CLOSE_SESSION

Expected Response
1) Steps #1-5 SUCCEED

UCT-05: Configuring Authorities
Notes
Start of informative comment
The following sections describe the sequences of steps for setting the PIN Credential value for one or more Admin
authorities, and enabling and setting the PIN Credential value for multiple User authorities.
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID2) SET_PASSWORD_FOR Admin1 to <Admin1_PASSWORD>
3) ENABLE User1
4) SET_PASSWORD_FOR User1 to <User1_PASSWORD>
5) Enable LAST_REQUIRED_USER
6) SET_PASSWORD_FOR LAST_REQUIRED_USER to <LAST_REQUIRED_USER_PASSWORD>
7) CLOSE_SESSION
8) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID9) CLOSE_SESSION
10) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = User1 authority
UID
11) CLOSE_SESSIONTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 33© TCG 2022

TCG Storage Opal Family Test Cases Specification

12) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority =LAST_REQUIRED_USER authority UID
13) CLOSE_SESSION

Expected Response
1) Steps #1-13 SUCCEED

UCT-06: Configuring Locking Objects (Locking Ranges)
Notes
Start of informative comment
None
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority UID
2) This test step varies based on the SSC version:a. For Opal, invoke the Set method on LAST_REQUIRED_RANGE. Configure the locking range as follows:i. RangeStart=0

ii. RangeLength= 64iii. ReadLockEnabled= TRUE

iv. WriteLockEnabled= TRUE

v. ReadLocked= FALSEvi. WriteLocked= FALSEvii. For Opal 2.00, 2.01 and 2.02, LockOnReset= {0}viii. Adjust RangeStart and RangeLength according to the RangeAlignment

b. For all SSCs supported by this specification other than Opal, invoke the Set method on
Locking_GlobalRange. Configure the locking range as follows:i. ReadLockEnabled= TRUE

ii. WriteLockEnabled= TRUEiii. ReadLocked= FALSEiv. WriteLocked= FALSEv. LockOnReset= {0}TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 34© TCG 2022

TCG Storage Opal Family Test Cases Specification

3) Invoke the Set method on the BooleanExpr column of the LAST_REQUIRED_RANGE_RDLOCKED_ACE ACE
object to set the UIDs of the User1 and LAST_REQUIRED_USER Authority objects
4) Invoke the Set method on the BooleanExpr column of the LAST_REQUIRED_RANGE_WRLOCKED_ACE ACE

object to set the UIDs of the User1 and LAST_REQUIRED_USER Authority objects
5) CLOSE_SESSION

6) This test step varies based on the SSC version:a. For Opal, Write the MAGIC_PATTERN over the entire LAST_REQUIRED_RANGE
b. For all SSCs supported by this specification other than Opal, Write the MAGIC_PATTERN over an
ARBITRARILY_VARYING_LBA_RANGE
7) This test step varies based on the SSC version:a. For Opal, Read the entire LAST_REQUIRED_RANGE
b. For all SSCs supported by this specification other than Opal, Read the same
ARBITRARILY_VARYING_LBA_RANGE in Step #6
8) Power cycle the SD9) This test step varies based on the SSC version:a. For Opal, Read the entire LAST_REQUIRED_RANGE
b. For all SSCs supported by this specification other than Opal, Read the same
ARBITRARILY_VARYING_LBA_RANGE in Step #6
10) This test step varies based on the SSC version:a. For Opal, Write the MAGIC_PATTERN over the entire LAST_REQUIRED_RANGE
b. For all SSCs supported by this specification other than Opal, Write the MAGIC_PATTERN over an
ARBITRARILY_VARYING_LBA_RANGE

Expected Response
1) Steps #1-8 SUCCEED
2) The value returned from the Read command in step #7 is the MAGIC_PATTERN
3) Steps #9-10 return Data Protection Error

UCT-07: Unlocking Ranges
Notes
Start of informative comment
None
End of informative comment

Prerequisites
None

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 35© TCG 2022

TCG Storage Opal Family Test Cases Specification

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = User1 authority
UID
2) Invoke the Set method on the ReadLocked and WriteLocked columns of the LAST_REQUIRED_RANGE
Locking object with a value of FALSE
3) CLOSE_SESSION
4) This test step varies based on the SSC version:a. For Opal, Read the entire LAST_REQUIRED_RANGE
b. For all SSCs supported by this specification other than Opal, Read an
ARBITRARILY_VARYING_LBA_RANGE

Expected Results
Steps #1-4 SUCCEED

UCT-08: Erasing Ranges
Notes
Start of informative comment
None
End of informative comment

SSC Applicability
This test case applies to all SSCs supported by this specification except for:1) Pyrite 1.00
2) Pyrite 2.00

Prerequisites
None

Test Sequence
1) This test step varies based on the SSC version:a. For Opal, Write the MAGIC_PATTERN over the entire LAST_REQUIRED_RANGE
b. For all SSCs supported by this specification other than Opal, Write the MAGIC_PATTERN over an
ARBITRARILY_VARYING_LBA_RANGE
2) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
3) Invoke the Get method on the LAST_REQUIRED_RANGE to retrieve the ActiveKey column’s value

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 36© TCG 2022

TCG Storage Opal Family Test Cases Specification

4) Invoke the GenKey method on the UID retrieved from the LAST_REQUIRED_RANGE’s ActiveKey column5) CLOSE_SESSION
6) This test step varies based on the SSC version:a. For Opal, attempt to read the entire LAST_REQUIRED_RANGE
b. For all SSCs supported by this specification other than Opal, attempt to read the entire
ARBITRARILY_VARYING_LBA_RANGE that was written to in test step #1

Expected Response
1) Steps #1-5 SUCCEED
2) The Read command in step #6 responds in one of the following ways:a. The Read command fails without returning data;
b. The Read command fails and returns data that does not match the MAGIC_PATTERN; orc. The Read command succeeds and returns data that does not match the MAGIC_PATTERN

UCT-09: Using the DataStore Table
Notes
Start of informative comment
None
End of informative comment

Prerequisites
The size of the DataStore byte table is not zero

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Set method on the BooleanExpr column of the ACE_DataStore_Set_All ACE object to include the
UID of the User1 Authority object
3) Invoke the Set method on the BooleanExpr column of the ACE_DataStore_Get_All ACE object to include the
UID of the User1 Authority object
4) CLOSE_SESSION
5) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = User1 authority
UID
6) Invoke the Set method to write the entire DataStore table with the MAGIC_PATTERN
7) CLOSE_SESSIONTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 37© TCG 2022

TCG Storage Opal Family Test Cases Specification

8) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = User1 authority
UID9) Invoke the Get method on the DataStore table to read the data of the DataStore table10) CLOSE_SESSION

Expected Response
1) Steps #1-10 SUCCEED
2) The Get method in step #9 returns the MAGIC_PATTERN

UCT-10: Enable MBR Shadowing
Notes
Start of informative comment
None
End of informative comment

SSC Applicability
This test case applies to all SSCs supported by this specification with the following exception for Pyrite 1.00, 2.00
and 2.01, and Ruby 1.00:
This test case only applies to Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00 if the MBR Shadowing feature is supported.

Prerequisites
The size of the MBR table is not zero

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Set method on the BooleanExpr column of the ACE_MBRCONTROL_SET_DONE ACE object toinclude the UIDs of the User1 and LAST_REQUIRED_USER Authority objects
3) Invoke the Get method on the Rows column of the MBR Table Descriptor Object
4) This test step varies based on the SSC version:a. For Opal, invoke the Set method to change the RangeLength column of the LAST_REQUIRED_RANGE to
SIZE_OF_MBR_TABLE_DESCRIPTOR_IN_LOGICAL_BLOCKS + 10 LBAs
b. For Opalite 1.00, Pyrite 1.00, Pyrite 2.00, and Ruby 1.00, Do nothing for this step5) This test step varies based on the SSC version:a. For Opal, write 1s over the entire LAST_REQUIRED_RANGETCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 38© TCG 2022

TCG Storage Opal Family Test Cases Specificationb. For all SSCs supported by this specification other than Opal, write 1s over the range from LBA 0 to
SIZE_OF_MBR_TABLE_DESCRIPTOR_IN_LOGICAL_BLOCKS + 10
6) This test step varies based on the SSC version:a. For Opal 1.00 invoke the Set method to write the entire MBR table with the MAGIC_PATTERN
b. For all SSCs supported by this specification other than Opal 1.00, invoke the Set method to write the entire
MBR table with the MAGIC_PATTERN while adhering to the MandatoryWriteGranularity requirements
7) Invoke the Set method on the Enable column of the MBRControl table with a value of TRUE
8) CLOSE_SESSION
9) Power cycle the SD10) This test step varies based on the SSC version:a. For Opal, Write the MAGIC_PATTERN over the entire LAST_REQUIRED_RANGE
b. For all SSCs supported by this specification other than Opal, Write the MAGIC_PATTERN over the entire
range from LBA 0 to SIZE_OF_MBR_TABLE_DESCRIPTOR_IN_LOGICAL_BLOCKS + 10
11) Read from LBA 0 to the size of the MBR Table
12) This test step varies based on the SSC version:a. For Opal 1.00 Read 10 LBAs starting immediately following the end of the MBR
b. For all SSCs supported by this specification other than Opal 1.00, Read 10 LBAs or an appropriate value
adhering to the Range Alignment requirements, starting immediately following the end of the MBR
Shadowing

Expected Response
1) Steps #1-9 SUCCEED
2) Step #10 returns Data Protection Error
3) The value returned from the Read command in step #11 matches the MAGIC_PATTERN
4) The value returned from the Read command in step #12 = 0s

UCT-11: MBR Done
Notes
Start of informative comment
None
End of informative comment

SSC Applicability
This test case applies to all SSCs supported by this specification with the following exception for Pyrite 1.00, Pyrite
2.00, and Ruby 1.00:
This test case only applies to Pyrite 1.00, 2.00, 2.01 and Ruby 1.00 if the MBR Shadowing feature is supported.

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 39© TCG 2022

TCG Storage Opal Family Test Cases Specification

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority =LAST_REQUIRED_USER authority UID
2) Invoke the Set method on the ReadLocked and WriteLocked columns of the LAST_REQUIRED_RANGE
Locking object with a value of FALSE
3) Invoke the Set method on the Done column of the MBRControl table with a value of TRUE
4) CLOSE_SESSION
5) This test step varies based on SSC version:a. For Opal, Read the entire LAST_REQUIRED_RANGE
b. For all SSCs supported by this specification other than Opal, Read the entire range from LBA 0 to
SIZE_OF_MBR_TABLE_DESCRIPTOR_IN_LOGICAL_BLOCKS + 10

Expected Response
1) Steps #1-5 SUCCEED
2) The value returned from the Read command in step #5 = 1s

UCT-12: Revert the Locking SP using SID, with Locking SP in Manufactured
state
Notes
Start of informative comment
None
End of informative comment

Prerequisites
For ZNS device, reset Write PointerTest Sequence
1) Write the MAGIC_PATTERN over 64 logical blocks beginning at LBA 0
2) For ZNS device, read Write Pointer and Zone State
3) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID
4) Invoke the Revert method on Locking SP object

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 40© TCG 2022

TCG Storage Opal Family Test Cases Specification

5) CLOSE_SESSION
6) Invoke the StartSession method with SPID = Locking SP UID
7) This test step varies based on the SSC version:a.

For all SSCs supported by this specification other than Pyrite 1.00, read 64 logical blocks beginning at LBA
0b. For Pyrite 1.00, do nothing for this step8) For ZNS device, read Write Pointer and Zone State

Expected Response
1) Steps #1-5 SUCCEED
2) The StartSession method in step #5 results in a SyncSession method with a status code of
INVALID_PARAMETER
3) For all SSCs supported by this specification other than Pyrite 1.00, the Read command in step #6 responds in
one of the following ways:a. The Read command fails without returning data;
b. The Read command fails and returns data that does not match the MAGIC_PATTERN; orc. The Read command succeeds and returns data that does not match the MAGIC_PATTERN
4) For ZNS device in step #8,a) If Key Change Zone Behavior bit is set to one, Write Pointer = 0 and Zone State = Empty; orb) If Key Change Zone Behavior bit is cleared to zero, Write Pointer and Zone State should be kept same as
the ones read in step #2.

UCT-13: Revert the Admin SP using SID, with Locking SP in ManufacturedInactive state
Notes
Start of informative comment
None
End of informative comment

Prerequisites
For ZNS device, reset Write PointerTest Sequence
1) Write the MAGIC_PATTERN over 64 logical blocks beginning at LBA 0
2) For ZNS device, read Write Pointer and Zone StateTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 41© TCG 2022

TCG Storage Opal Family Test Cases Specification

3) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID
4) Invoke the Revert method on Admin SP object
5) If the “Behavior of C_PIN_SID Pin upon TPer Revert” from the return of Level 0 Discovery = 0 thenInvoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = SID authority UID, and
HostChallenge = C_PIN_MSID PIN column value
Else
Invoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = SID authority UID, and
HostChallenge = C_PIN_SID VU PIN column value
6) CLOSE_SESSION
7) Invoke the StartSession method with SPID = Locking SP
8) Read 64 logical blocks beginning at LBA 0
9) For ZNS device, read Write Pointer and Zone State

Expected Response
1) Steps #1-6 SUCCEED
2) The StartSession method in step #7 results in a SyncSession method with a status code of
INVALID_PARAMETER
3) The Read command in step #8 returns data that matches the MAGIC_PATTERN
4) For ZNS device in step #9, Write Pointer and Zone State should be the same as those read in step #2

UCT-14: Revert the Admin SP using SID, with Locking SP in Manufactured state
Notes
Start of informative comment
None
End of informative comment

Prerequisites
1) SID’s PIN column value is set to <SID_PASSWORD> value in the SID’s C_PIN credential PIN column
2) Locking SP is in the Manufactured state3) Determining support for the Revert feature:a. Invoke the StartSession method with SPID = Admin SP UID
b. Invoke the Get method on UID 00 00 00 06 00 00 02 02 to determine support
4) For ZNS device, reset Write PointerTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 42© TCG 2022

TCG Storage Opal Family Test Cases Specification

Test Sequence
1) Write the MAGIC_PATTERN over 64 logical blocks beginning at LBA 0
2) For ZNS device, read Write Pointer and Zone State
3) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID
4) Invoke the Revert method on Admin SP object
5) If the “Behavior of C_PIN_SID Pin upon TPer Revert” from the return of Level 0 Discovery = 0 thenInvoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = SID authority UID, and
HostChallenge = C_PIN_MSID PIN column value
Else
Invoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = SID authority UID, and
HostChallenge = C_PIN_SID VU PIN column value
6) CLOSE_SESSION
7) Invoke the StartSession method with SPID = Locking SP UID
8) Read 64 logical blocks beginning at LBA 0
9) For ZNS device, read Write Pointer and Zone State

Expected Response
1) Steps #1-6 SUCCEED
2) The StartSession method in step #6 results in a SyncSession method with a status code of
INVALID_PARAMETER
3) For all SSCs supported by this specification other than Pyrite 1.00, The Read command in step #8 responds in
one of the following ways:a. The Read command fails without returning data;
b. The Read command fails and returns data that does not match the MAGIC_PATTERN; orc. The Read command succeeds and returns data that does not match the MAGIC_PATTERN
4) For ZNS device in step #9,
a. If Key Change Zone Behavior bit is set to one, Write Pointer = 0 and Zone State = Empty; orb. If Key Change Zone Behavior bit is cleared to zero, Write Pointer and Zone State should be the same as
those read in step #2

UCT-15: Revert Admin SP using Admin1, with Locking SP in Manufactured state
Notes
Start of informative comment
See [4] [5] [6] for support requirements.
End of informative comment

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 43© TCG 2022

TCG Storage Opal Family Test Cases Specification

SSC Applicability
This test case applies to Opal 2.00, 2.01 and 2.02 with no exceptions.
This test case only applies to all other SSCs supported by this specification if the Admin1 authority in the
Authority table of the AdminSP is implemented.

Prerequisites
1) Locking SP is in the Manufactured state2) Admin1 authority is enabled
Admin1’s PIN column value is set to <Admin1_PASSWORD> value in the Admin1’s C_PIN credential PIN
column3) For ZNS device, reset Write PointerTest Sequence
1) Write the MAGIC_PATTERN over 64 logical blocks beginning at LBA 0
2) For ZNS device, read Write Pointer and Zone State
3) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = Admin1 authority
UID4) Invoke the Revert method on Admin SP object
5) If the “Behavior of C_PIN_SID Pin upon TPer Revert” from the return of Level 0 Discovery = 0 thenInvoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = SID authority UID, and
HostChallenge = C_PIN_MSID PIN column value
Else
Invoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = SID authority UID, and
HostChallenge = C_PIN_SID VU PIN column value
6) CLOSE_SESSION
7) Invoke the StartSession method with SPID = Locking SP UID
8) Read 64 logical blocks beginning at LBA 0
9) For ZNS device, read Write Pointer and Zone State

Expected Response
1) Steps #1-6 SUCCEED
2) The StartSession method in step #6 results in a SyncSession method with a status code of
INVALID_PARAMETER
3) For all SSCs supported by this specification other than Pyrite 1.00, the Read command in step #8 responds in
one of the following ways:a. The Read command fails without returning data;
b. The Read command fails and returns data that does not match the MAGIC_PATTERN; or

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 44© TCG 2022

TCG Storage Opal Family Test Cases Specificationc. The Read command succeeds and returns data that does not match the MAGIC_PATTERN
4) For ZNS device in step #9,
a. If Key Change Zone Behavior bit is set to one, Write Pointer = 0 and Zone State = Empty; orb. If Key Change Zone Behavior bit is cleared to zero, Write Pointer and Zone State should be kept same as the
one read in step #2

UCT-16: Revert Admin SP using PSID, with Locking SP in Manufactured state
Notes
Start of informative comment
None
End of informative comment

SSC Applicability
This test case applies to the following SSCs:
1) Opal 2.01
2) Opal 2.02
3) Opalite 1.00
4) Pyrite 2.00
5) Pyrite 2.01
6) Ruby 1.00
If the PSID Feature Set is implemented this test case also applies to Opal 1.00 and Opal 2.00.

Prerequisites
1) The PIN column of C_PIN_SID is set to <SID_PASSWORD>
2) Locking SP is in the Manufactured state
3) For ZNS device, reset Write PointerTest Sequence
1) Write the MAGIC_PATTERN over 64 logical blocks beginning at LBA 0
2) For ZNS device, read Write Pointer and Zone State
3) Invoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = PSID authority UID, and
HostChallenge = PSID authority’s credential obtained from the VU PSID delivery mechanism4) Invoke the Revert method on Admin SP object
5) If the “Behavior of C_PIN_SID Pin upon TPer Revert” from the return of Level 0 Discovery = 0 thenInvoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = SID authority UID, and
HostChallenge = C_PIN_MSID PIN column value
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 45© TCG 2022

TCG Storage Opal Family Test Cases Specification

Else
Invoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = SID authority UID, and
HostChallenge = C_PIN_SID VU PIN column value
6) CLOSE_SESSION
7) Invoke the StartSession method with SPID = Locking SP UID
8) Read 64 logical blocks beginning at LBA 0
9) For ZNS device, read Write Pointer and Zone State

Expected Response
1) Steps #1-5 SUCCEED
2) The StartSession method in step #7 results in a SyncSession method with a status code of
INVALID_PARAMETER
3) The Read command in step #8 responds in one of the following ways:a. The Read command fails without returning data;
b. The Read command fails and returns data that does not match the MAGIC_PATTERN; orc. The Read command succeeds and returns data that does not match the MAGIC_PATTERN
4) For ZNS device in step #9,
a. If Key Change Zone Behavior bit is set to one, Write Pointer = 0 and Zone State = Emptyb. If Key Change Zone Behavior bit is cleared to zero, Write Pointer and Zone State should be the same as those
read in step #2

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 46© TCG 2022

TCG Storage Opal Family Test Cases Specification

5 Specific Functionality
5.1 Introduction
These test cases reflect specific functionality that SHALL be performed on a device that complies with the Opal
1.00, Opal 2.00, 2.01 and 2.02, Opalite 1.00, Pyrite 1.00, Pyrite 2.00 and 2.01, or Ruby 1.00 specifications. Unlessotherwise specified within a test case, the expected result of each step is that the step SHALL SUCCEED.

5.2 Common Prerequisites
Unless otherwise noted, the following set of prerequisites apply for each test in this section:
1. SD is in Awaiting IF-SEND
2. Locking SP is in Manufactured state
3. The values of any credentials used are known
4. All StartSession method HostChallenge parameters use the current C_PIN object’s PIN column
value for the Authority used in the HostSigningAuthority parameter
5. All sessions are Read-Write sessions
6. No open sessions exist at the start of the Test Sequence

SPF-01: Transaction
Notes
Start of informative comment
There are two tests performed relating to Transactions:
1. Case 1 attempts to write an entire table with the MAGIC_PATTERN.
2. Case 2 attempts to write an entire table with 0s, and then close the session without committing the Transaction.
In most cases, the MBR table is used for these tests but for SSCs where the MBR shadowing feature is optional, theMBR table is only used when the MBR shadowing feature is supported, otherwise the DataStore table is used.
Since Session Timeout is VU, test results may be NA if session timeout occurs or if the transaction cannot becommitted.
End of informative comment

Prerequisites
1) For Opal 1.00, 2.00, 2.01 and 2.02, and Opalite 1.00, knowledge of the MBR table size
2) For Opal 2.00, 2.01 and 2.02, and Opalite 1.00, knowledge of the MandatoryWriteGranularity Column value for
the MBR table
3) For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is supported, then knowledge ofthe MBR table size, otherwise knowledge of the DataStore table size
4) For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is supported, then knowledge ofthe MandatoryWriteGranularity Column value for the MBR table, otherwise knowledge of the
MandatoryWriteGranularity Column value for the DataStore table

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 47© TCG 2022

TCG Storage Opal Family Test Cases Specification

5) The size of the MBR table is not zero

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID2) This test step varies based on SSC version:a. For Opal 1.00, invoke the Set method to write the entire MBR table with 0s
b. For Opal 2.00, 2.01 and 2.02, and Opalite 1.00, invoke the Set method to write the entire MBR table with 0s
while adhering to the MandatoryWriteGranularity requirementsc. For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is supported, invoke the Set
method to write the entire MBR table with 0s while adhering to the MandatoryWriteGranularity requirements
d. For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing Feature is not supported, invoke theSet method to write the entire DataStore table with 0s while adhering to the MandatoryWriteGranularity
requirements3) CLOSE_SESSION if the write is successful, or if the session aborts due to a timeout, exit the test and record
result as NA
4) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID5) Send a subpacket that contains a StartTransaction token with a status code of 0x00
6) This test step varies based on SSC version:a. For Opal 1.00, invoke the Set method to write the entire MBR table with the MAGIC_PATTERN
b. For Opal 2.00, 2.01 and 2.02, and Opalite 1.00, invoke the Set method to write the entire MBR table with the
MAGIC_PATTERN while adhering to the MandatoryWriteGranularity requirementsc. For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is supported, invoke the Set
method to write the entire MBR table with the MAGIC_PATTERN while adhering to the
MandatoryWriteGranularity requirements
d. For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is not supported, invoke theSet method to write the entire DataStore table with the MAGIC_PATTERN while adhering to the
MandatoryWriteGranularity requirements
7) Send a subpacket that contains an End Transaction token with a status code of 0x00
8) CLOSE_SESSION if the SD responds with an End Transaction token with a status code of 0x00, or if thesession aborts due to a timeout exit the test and record result as NA
9) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID10) This test step varies based on SSC version:a. For Opal 1.00, 2.00, 2.01 and 2.02, and Opalite1.00, invoke the Get method on the MBR table to read thedata from the tableb. For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is supported, invoke the Get
method on the MBR table to read the data from the table

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 48© TCG 2022

TCG Storage Opal Family Test Cases Specificationc. For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is not supported, invoke theGet method on the DataStore table to read the data from the table11) CLOSE_SESSION

Expected Response
1) Steps #1-11 SUCCEED
2) The Get in step #10 returns the MAGIC_PATTERN
3) If the session is aborted on step #3 or step #8, the result of this test is NA

Prerequisites
1) Steps #1-11 in Case 1 SUCCEED

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID2) Send a subpacket that contains a StartTransaction token with a status code of 0x00
3) This test step varies based on SSC version:a. For Opal 1.00, invoke the Set method to write the entire MBR table with 0s
b. For Opal 2.00, 2.01 and 2.02, and Opalite 1.00, invoke the Set method to write the entire MBR table with 0s
while adhering to the MandatoryWriteGranularity requirementsc. For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is supported, invoke the Set
method to write the entire MBR table with 0s while adhering to the MandatoryWriteGranularity requirements
d. For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is not supported, invoke theSet method to write the entire DataStore table with 0s while adhering to the MandatoryWriteGranularity
requirements
4) CLOSE_SESSION if the write is successful, or if the session aborts due to a timeout exit the test and record
result as NA
5) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID6) This test step varies based on SSC version:a. For Opal 1.00, 2.00, 2.01 and 2.02, and Opalite 1.00, invoke the Get method on the MBR table to read thedata from the tableb. For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is supported, invoke the Get
method on the MBR table to read the data from the tablec. For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is not supported, invoke theGet method on the DataStore table to read the data from the table.
7) CLOSE_SESSIONTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 49© TCG 2022

TCG Storage Opal Family Test Cases Specification

Expected Response
1) Steps #1-7 SUCCEED
2) The Get method in step #6 returns the MAGIC_PATTERN
3) If the session is aborted on step #4, the result of this test is NA

SPF-02: IF-RECV Behavior Tests
Notes
Start of informative comment
There are two tests performed relating to IF-RECV Behavior:
Case 1 attempts to issue an IF-RECV command while the SD is in an Awaiting IF-SEND state
Case 2 attempts to issue an IF-RECV command with an Insufficient Transfer Length
End of informative comment

Prerequisites
1) In Awaiting IF-SEND

Test Sequence
1) Issue an IF-RECV command

Expected Response
1) Steps #1 SUCCEEDS
2) IF-RECV in step #1 has a ComPacket header value of “All Response(s) returned - no further data”, (See [1])Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Get method on the DataStore table to retrieve 1024 Rows. For the IF-RECV command issued by
the Host to retrieve the result, the IF-RECV command has a transfer length of 1

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 50© TCG 2022

TCG Storage Opal Family Test Cases Specification

3) Issue IF-RECV command to retrieve the result with the transfer length based on the MinTransfer value in the IFRECV response to step #2
4) CLOSE_SESSION

Expected Response
1) Step #1-4 SUCCEED
2) IF-RECV in step #2 has a ComPacket header value of “Response ready, insufficient transfer length request”,
see [1]

SPF-03: TryLimit
Notes
Start of informative comment
None
End of informative comment

Prerequisites
1) User1 is enabled

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Get method on Admin1’s C_PIN Object to retrieve the TryLimit Column’s value
3) Invoke the Get method on User1’s C_PIN Object to retrieve the TryLimit Column’s value
4) CLOSE_SESSION
5) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID
6) Invoke the Get method on SID’s C_PIN Object to retrieve the TryLimit Column’s value7) CLOSE_SESSION
8) If SID C_PIN Object has a TryLimit Column value >0, thena. Invoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = SID authority UID,
and HostChallenge = a value that does not match the current SID C_PIN object’s PIN column value, until
SID C_PIN object’s Tries value = SID C_PIN object’s TryLimit valueb. Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority
UID
Else do not perform this test step and the Test Suite SHALL mark the result of this step as NA9) If Admin1 C_PIN Object has a TryLimit Column value >0, then

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 51© TCG 2022

TCG Storage Opal Family Test Cases Specificationa. Invoke the StartSession method with SPID = Locking SP UID, HostSigningAuthority = Admin1 authority
UID, and HostChallenge = a value that does not match the current Admin1 C_PIN object’s PIN column
value, until Admin1 C_PIN object’s Tries value = Admin1 C_PIN object’s TryLimit valueb. Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1
authority UID
Else do not perform this test step and the Test Suite SHALL mark the result of this step as NA10) If User1 C_PIN Object has a TryLimit Column value >0, thena. Invoke the StartSession method with SPID = Locking SP UID, HostSigningAuthority = User1 authority
UID, and HostChallenge = a value that does not match the current User1 C_PIN object’s PIN column value,
until User1 C_PIN object’s Tries value = User1 C_PIN object’s TryLimit valueb. Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = User1
authority UID
Else do not perform this test step and the Test Suite SHALL mark the result of this step as NA

Expected Response
1) Steps #1-7 SUCCEED
2) Steps #8-10 FAIL for any Authority with a TryLimit value >0.
3) Every StartSession method in steps #8a, #9a, and #10a results in a SyncSession method with a status
code of NOT_AUTHORIZED4) The StartSession method with the correct HostChallenge value in steps #8b, #9b, and #10b results in a
SyncSession method with a status code of AUTHORITY_LOCKED_OUT

SPF-04: Tries Reset
Notes
Start of informative comment
The following test verifies that the value of Tries is reset upon successful authentication.
End of informative comment

Prerequisites
1) User1 is enabled

Test Sequence1)

If Persistence=FALSE, continue; if Persistence=TRUE, exit the test sequence2) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID
3) Invoke the Get method on SID’s C_PIN Object to retrieve the TryLimit Column’s value
4) CLOSE_SESSIONTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 52© TCG 2022

TCG Storage Opal Family Test Cases Specification

5) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
6) Invoke the Get method on Admin1’s C_PIN Object to retrieve the TryLimit Column’s value7) Invoke the Get method on User1’s C_PIN Object to retrieve the TryLimit Column’s value8) CLOSE_SESSION
9) If SID C_PIN Object has a TryLimit Column value > 1, thena. Invoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = SID authority UID,
and HostChallenge = a value that does not match the current SID C_PIN object’s PIN column value, until
SID C_PIN object’s Tries value = SID C_PIN object’s TryLimit value -1
b. Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority
UID.
c. Invoke the Get method on the Tries Column of the SID Authority’s C_PIN Object
d. CLOSE_SESSION
10) If Admin1 C_PIN Object has a TryLimit Column value > 1, thena. Invoke the StartSession method with SPID = Locking SP UID, HostSigningAuthority = Admin1 authority
UID, and HostChallenge = a value that does not match the current Admin1 C_PIN object’s PIN column
value, until Admin1 C_PIN object’s Tries value = Admin1 C_PIN object’s TryLimit value -1
b. Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1
authority UID
c. Invoke the Get method on the Tries Column of the Admin1 Authority’s C_PIN Object
d. CLOSE_SESSION
11) If User1 C_PIN Object has a TryLimit Column value >1, thena. Invoke the StartSession method with SPID = Locking SP UID, HostSigningAuthority = User1 authority
UID, and HostChallenge = a value that does not match the current User1 C_PIN object’s PIN column value,
until User1 C_PIN object’s Tries value = User1 C_PIN object’s TryLimit value -1
b. Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = User1
authority UID.
c. CLOSE_SESSION
d. Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1
authority UID
e. Invoke the Get method on the Tries Column of the User1 Authority’s C_PIN Objectf.

CLOSE_SESSION

Expected Response
1) Step #1, FAIL if Persistence=TRUE
2) Steps #2-11 SUCCEED
3) For each Authority with a TryLimit column value > 1, that Authority’s C_PIN Tries column value = 0 on steps#8c, #9c, and #10e

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 53© TCG 2022

TCG Storage Opal Family Test Cases Specification

SPF-05: Tries Reset on Power Cycle
Notes
Start of informative comment
The following test verifies that the value of Tries is reset upon power cycle.
End of informative comment

Prerequisites
1) User1 is enabled

Test Sequence
1) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID.
2) Invoke the Get method on SID’s C_PIN Object to retrieve the TryLimit Column’s value3) CLOSE_SESSION
4) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
5) Invoke the Get method on Admin1’s C_PIN Object to retrieve the TryLimit Column’s value
6) Invoke the Get method on User1’s C_PIN Object to retrieve the TryLimit Column’s value7) CLOSE_SESSION
8) If SID C_PIN Object has a TryLimit Column value >0, thenInvoke the StartSession method with SPID = Admin SP UID, HostSigningAuthority = SID authority UID, and
HostChallenge = a value that does not match the current SID C_PIN object’s PIN column value, until SID C_PIN
object’s Tries value = SID C_PIN object’s TryLimit value.
9) If Admin1 C_PIN Object has a TryLimit Column value >0, thenInvoke the StartSession method with SPID = Locking SP UID, HostSigningAuthority = Admin1 authority UID,
and HostChallenge = a value that does not match the current Admin1 C_PIN object’s PIN column value, until
Admin1 C_PIN object’s Tries value = Admin1 C_PIN object’s TryLimit value.
10) If User1 C_PIN Object has a TryLimit Column value >0, thenInvoke the StartSession method with SPID = Locking SP UID, HostSigningAuthority = User1 authority UID,
and HostChallenge = a value that does not match the current User1 C_PIN object’s PIN column value, until
User1 C_PIN object’s Tries value = User1 C_PIN object’s TryLimit value.
11) Power cycle the SD12) If SID C_PIN Object has a TryLimit Column value >0, thena. Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority
UID
b. Invoke the Get method on SID Authority’s C_PIN Tries Columnc. CLOSE_SESSION
13) If Admin1 C_PIN Object has a TryLimit Column value >0, then

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 54© TCG 2022

TCG Storage Opal Family Test Cases Specificationa. Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1
authority UID
b. Invoke the Get method on Admin1 Authority’s C_PIN Tries Columnc. CLOSE_SESSION
14) If User1 C_PIN Object has a TryLimit Column value >0, thena. Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1
authority UID
b. Invoke the Get method on User1 Authority’s C_PIN Tries Columnc. CLOSE_SESSION

Expected Response
1) Steps #1-7 and steps #11-14 SUCCEED
2) Every StartSession method in steps #8, #9, and #10 results in a SyncSession method with a status code of
NOT_AUTHORIZED
3) For test step #12, if SID C_PIN TryLimit Column value > 0, thena. Admin SP session opens successfullyb. The Get method on SID Authority’s C_PIN Tries Column returns 04) For test step #13, if Admin1 C_PIN TryLimit Column value > 0, thena. Locking SP session opens successfullyb. The Get method on Admin1 Authority’s C_PIN Tries Column returns 05) For test step #14, if User1 C_PIN TryLimit Column value > 0, thena. Locking SP session opens successfullyb. The Get method on User1 Authority’s C_PIN Tries Column returns 0

SPF-06: Next
Notes
Start of informative comment
Testing of the Next method to verify that the method works correctly in multiple conditions.
This test contains two different tests, but only one test is required per SSC, as specified by the SSC applicability
section of each test.
End of informative comment

SSC Applicability
This test case applies to the following SSCs:
1) Opal 1.00
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 55© TCG 2022

TCG Storage Opal Family Test Cases Specification

2) Opal 2.00
3) Opal 2.01
4) Opal 2.02

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID
2) Invoke the Get method on the LockingInfo table’s MaxRanges Column
3) Invoke the Next method on the Locking table with an empty parameter list
4) Invoke the Next method on the Locking table with the Where parameter set to the first UID from the list of
UIDs returned in step #3, and the Count parameter set to 1
5) CLOSE_SESSION

Expected Response
1) Steps #1-5 SUCCEED
2) Step #3
a. returns a list of UIDs where the number of values = the MaxRanges value + 1, andb. the first four bytes of each UID returned are 0x00000802
3) Step #4 returns a list that contains only the UID that was second in the list of UIDs returned in Step #3

SSC Applicability
This test case applies to the following SSCs:
1) Opalite 1.00
2) Pyrite 1.00
3) Pyrite 2.00
4) Pyrite 2.01
5) Ruby 1.00

Prerequisites
None

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 56© TCG 2022

TCG Storage Opal Family Test Cases Specification

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID
2) Invoke the Next method on the MethodID table with an empty parameter list3) Invoke the Next method on the MethodID table with the Where parameter set to the first UID from the list of
UIDs returned in step #3 and the Count parameter set to 1
4) CLOSE_SESSION

Expected Response
1) Steps #1-4 SUCCEED
2) Step #2
a. returns a list of UIDs where the number of values >= 7, andb. the first four bytes of each UID returned are 0x00000006
3) Step #3 returns a list that contains only the second UID from the list of UIDs returned in Step #2

SPF-07: Host Session Number (HSN)
Notes
Start of informative comment
Test the Host Session Number to verify that the SD responses with the corresponding Host Session Number provided
by the host.
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with HostSessionID = ARBITRARILY_VARYING HSN, SPID = Admin SP
UID, and HostSigningAuthority = SID authority UID
2) Invoke the Get method on MSID C_PIN credential’s PIN Column
3) CLOSE_SESSION

Expected Response
1) Steps #1-3 SUCCEED
2) The StartSession method in step #1 results in a SyncSession method with the same HSN asparameterized in the StartSession method
3) The Packet received in step #2 that contains the Get method response has the same HSN as parameterized in
the StartSession method
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 57© TCG 2022

TCG Storage Opal Family Test Cases Specification

SPF-08: RevertSP
Notes
Start of informative comment
See [2] for support requirements on RevertSP and KeepGlobalRangeKey/KeepData. There are three tests in this test
case. Each must be performed.
End of informative comment

Case 1:
SSC Applicability
This test applies to all SSCs supported by this specification.

Prerequisites
None

Test Sequence
1) Write the MAGIC_PATTERN over 64 logical blocks beginning at LBA 0
2) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
3) Invoke the RevertSP method with the KeepGlobalRangeKey/KeepData omitted
4) Invoke the StartSession method with SPID = Locking SP UID
5) This test step varies based on the SSC version:a. For all SSCs supported by this specification other than Pyrite 1.00, read 64 logical blocks beginning at LBA 0
b. For Pyrite 1.00, do nothing for this step

Expected Response
1) Steps #1-3 SUCCEED
2) The StartSession method in step #4 results in a SyncSession method with a status code of
INVALID_PARAMETER
3) For all SSCs supported by this specification other than Pyrite 1.00, the Read command in step #5 responds in
one of the following ways:a. The Read command fails without returning data;
b. The Read command fails and returns data that does not match the MAGIC_PATTERN; orc. The Read command succeeds and returns data that does not match the MAGIC_PATTERNTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 58© TCG 2022

TCG Storage Opal Family Test Cases Specification

SSC Applicability
This test applies to all SSCs supported by this specification except for Pyrite 1.00.

Prerequisites
None

Test Sequence
1) Write the MAGIC_PATTERN over 64 logical blocks beginning at LBA 0
2) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
3) Invoke the RevertSP method with the KeepGlobalRangeKey/KeepData present and set to FALSE
4) Invoke the StartSession method with SPID = Locking SP UID
5) Read 64 logical blocks beginning at LBA 0

Expected Response
1) Steps #1-3 SUCCEED
2) The StartSession method in step #4 results in a SyncSession method with a status code of
INVALID_PARAMETER
3) The Read command in step #5 responds in one of the following ways:a. The Read command fails without returning data;
b. The Read command fails and returns data that does not match the MAGIC_PATTERN; orc. The Read command succeeds and returns data that does not match the MAGIC_PATTERN

SSC Applicability
This test applies to all SSCs supported by this specification except for Pyrite 1.00.

Prerequisites
1) Locking_GlobalRange ReadLockEnabled, WriteLockEnabled, ReadLocked and WriteLocked column values =FALSE2) If non-Global Locking Range objects are implemented, then all non-Global Locking Range objects’
ReadLockEnabled, WriteLockEnabled, ReadLocked and WriteLocked column values = FALSE and RangeStart
and RangeLength columns = 0

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 59© TCG 2022

TCG Storage Opal Family Test Cases Specification

Test Sequence
1) Write the MAGIC_PATTERN over 64 logical blocks beginning at LBA 0
2) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
3) Invoke the RevertSP method with the KeepGlobalRangeKey/KeepData present and set to TRUE
4) Invoke the StartSession method with SPID = Locking SP UID
5) Read 64 logical blocks beginning at LBA 0

Expected Response
1) Steps #1-3 SUCCEED
2) The StartSession method in step #4 results in a SyncSession method with a status code of
INVALID_PARAMETER
3) The Read command in step #5 returns data that matches the MAGIC_PATTERN

SPF-09: Range Alignment Verification
Notes
Start of informative comment
None
End of informative comment

SSC Applicability
This test case only applies to Opal 2.00, 2.01 and 2.02, and Ruby 1.00 if the AlignmentRequired column value in the
LockingInfo table = TRUE.
This test case does not apply to any other SSC.

Prerequisites
1) Confirm the AlignmentRequired column value in the LockingInfo table = TRUE. If AlignmentRequired =FALSE do not perform the test and the Test Suite SHALL mark the result as NA.

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Get method on the LockingInfo table to retrieve the LogicalBlockSize, AlignmentGranularity andLowestAlignedLBA column values
3) If AlignmentGranularity is > 1, then invoke the Set method on RangeLength and RangeStart columns with
RangeStart and RangeLength values satisfying the conditions:a. [ (RangeStart - LowestAlignedLBA) % AlignmentGranularity ] = 0
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 60© TCG 2022

TCG Storage Opal Family Test Cases Specificationb. [ RangeLength % AlignmentGranularity ] = 04) CLOSE_SESSION

Expected Response
1) If AlignmentGranularity is = 1 then mark the test NA2) If AlignmentGranularity is > 1, steps #1-4 SUCCEED

SPF-10: Byte Table Access Granularity
Notes
Start of informative comment
None
End of informative comment

SSC Applicability
This test case only applies to the following SSCs:
1) Opal 2.00
2) Opal 2.01
3) Opal 2.02
4) Opalite 1.00
5) Pyrite 1.00
6) Pyrite 2.00
7) Pyrite 2.01
8) Ruby 1.00

Prerequisites
1) Confirm the MandatoryWriteGranularity column value of the DataStore table > 1. If the
MandatoryWriteGranularity column value = 1, do not perform the test and the Test Suite SHALL mark the result
as NA.

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Get method on the DataStore object in the Table table to retrieve the MandatoryWriteGranularity
column value
3) Invoke the Set method to write the DataStore table with a number of 0s = a non-zero multiple of the
MandatoryWriteGranularity column value

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 61© TCG 2022

TCG Storage Opal Family Test Cases Specification

4) CLOSE_SESSION

Expected Response
1) Steps #1-4 SUCCEED

SPF-11: Stack Reset
Notes
Start of informative comment
Reference SD vendor documentation to determine whether the command is supported.
End of informative comment

Prerequisites
1) User1 is not enabled

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID2) Send a subpacket that contains a StartTransaction token with a status code of 0x00
3) Invoke the Set method on the Enabled Column of User1 Authority with a value of TRUE
4) Issue STACK_RESET command5) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
6) Invoke the Get method to retrieve the value of the Enabled Column of User1 Authority
7) CLOSE_SESSION

Expected Response
1) Steps #1-7 SUCCEED
2) The Get method in step #6 returns a value of FALSE

SPF-12: TPer Reset
Notes
Start of informative comment
None
End of informative comment

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 62© TCG 2022

TCG Storage Opal Family Test Cases Specification

SSC Applicability
This test case only applies to the following SSCs:
1) Opal 2.00
2) Opal 2.01
3) Opal 2.02
4) Opalite 1.00
5) Pyrite 1.00
6) Pyrite 2.00
7) Pyrite 2.01
8) Ruby 1.00

Prerequisites
1) ProgrammaticResetEnable set to TRUE
2) Locking_GlobalRange has ReadLocked and WriteLocked columns set to FALSE
3) Locking_GlobalRange has ReadLockEnabled and WriteLockEnabled columns are set to TRUE
4) LockOnReset column value includes Programmatic5) For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is supported, then the Enable
column value of the MBRControl table = FALSE
6) For Opal 1.00, 2.00, 2.01 and 2.02, and Opalite 1.00, the Enable column value of the MBRControl table =FALSETest Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID2) Issue the TPER_ RESET command3) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID4) Invoke the Get method on the Locking_GlobalRange ReadLocked and WriteLocked columns5) CLOSE_SESSION
6) Write the MAGIC_PATTERN over an ARBITRARILY_VARYING_LBA_RANGE
7) Read from the same ARBITRARILY_VARYING_LBA_RANGE as in Step #6

Expected Response
1) Steps #1-5 SUCCEED
2) The Get method in step #4 returns values of TRUETCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 63© TCG 2022

TCG Storage Opal Family Test Cases Specification

3) The Write command in Step #5 returns a Data Protection Error
4) The Read command in Step #6 returns a Data Protection Error

SSC Applicability
This test case applies to the following SSCs:
1) Opal 2.00
2) Opal 2.01
3) Opal 2.02
4) Opalite 1.00
This test case applies to all other SSCs supported by this specification only if the MBR Shadowing feature is
supported.

Prerequisites
1) ProgrammaticResetEnable column is set to TRUE
2) Locking_GlobalRange has ReadLockEnabled and WriteLockEnabled columns are set to FALSE
3) DoneOnReset column value includes Programmatic4) Done column is set to TRUE
5) First 64 logical blocks of MBR table have been set with MAGIC_PATTERN
6) If the MBR Shadowing feature is supported, the Enable column value of the MBRControl table = TRUE

Test Sequence
1) Write 0s to 64 logical blocks beginning at LBA 0
2) Issue the TPER_RESET command3) Write 1s to 64 logical blocks beginning at LBA 0
4) Read 64 logical blocks beginning at LBA 0
5) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID.
6) Invoke the Get method on the MBRControl Done column

Expected Response
1) Steps #1-2 SUCCEED
2) The Write command in Step #3 returns a Data Protection Error
3) The Read command in Step #4 returns data that matches the MAGIC_PATTERN
4) Steps #5-6 SUCCEED

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 64© TCG 2022

TCG Storage Opal Family Test Cases Specification

5) The Get method in step #6 returns the value of FALSE

SPF-13: Authenticate
Notes
Start of informative comment
None
End of informative comment

SSC Applicability
This test case only applies to the following SSCs:
1) Opal 2.00
2) Opal 2.01
3) Opal 2.02
4) Opalite 1.00
5) Pyrite 1.00
6) Pyrite 2.00
7) Pyrite 2.01
8) Ruby 1.00

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Admin SP UID
2) Invoke the Authenticate method with Authority = SID Authority UID and Proof = C_PIN_SID PIN column
value3) Invoke the Get method on UID Column of SID C_PIN
4) CLOSE_SESSION

Expected Response
1) Steps #1-4 SUCCEED
2) The Get method in step #3 returns the C_PIN_SID PIN object’s UID column value

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 65© TCG 2022

TCG Storage Opal Family Test Cases Specification

SPF-14: Session Abort (Deprecated)
This test case has been removed due to similar functionality being tested elsewhere. This section MAY be removed
in a future version of this specification.

SPF-15: Random
Notes
Start of informative comment
This test is not intended to guarantee the quality of the RNG.
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID
2) Invoke the Random method with a Count = 32
3) Invoke the Random method with a Count = 32
4) CLOSE_SESSION

Expected Response
1) Steps #1-4 SUCCEED
2) The value returned by the Random method in step #2 is 32 bytes long and does not contain either all 0s or all 1s3) The value returned from the Random method in step #3 is 32 bytes long and does not contain either all 0s or all
1s4) The two values returned from the Random method in steps #2 and #3 are different

SPF-16: CommonName
Notes
Start of informative comment
None
End of informative comment

SSC Applicability
This test case only applies to the following SSCs:
1) Opal 2.00
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 66© TCG 2022

TCG Storage Opal Family Test Cases Specification

2) Opal 2.01
3) Opal 2.02
4) Ruby 1.00

Prerequisites
1) Admin1 is enabled

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Set method on the CommonName column of the Admin1 authority object using theMAGIC_PATTERN
3) Invoke the Set method on the CommonName column of Locking_GlobalRange using the MAGIC_PATTERN
4) Invoke the Get method on the CommonName column of the Admin1 authority object
5) Invoke the Get method on the CommonName column of Locking_GlobalRange
6) CLOSE_SESSION

Expected Response
1) Steps #1-6 SUCCEED
2) The values returned from the Get methods in steps #4-5 are the same as the values previously Set in steps #23

SPF-17: Additional DataStore Tables
Notes
Start of informative comment
Only one of the following tests is performed based on the value of the Maximum Number of DataStore tables field in
the DataStore table Feature Descriptor.
End of informative comment

SSC Applicability
This test case applies to the following SSCs:
1) Opal 2.00
2) Opal 2.01
3) Opal 2.02

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 67© TCG 2022

TCG Storage Opal Family Test Cases Specification4) All other SSCs supported by this specification, if the Additional DataStore Tables Feature Set is implemented

Prerequisites
1) In the DataStore table Feature Descriptor, the Maximum Number of DataStore Tables field value = 12) Locking SP is in the Manufacture-Inactive State

Test Sequence
1) Issue Level 0 Discovery command to retrieve the DataStore Table Size Alignment field
2) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID
3) Invoke the Activate method on the Locking SP with a DataStoreTableSize parameter value = the value of the
DataStore Table Size Alignment field of the Level 0 Discovery Feature Descriptor
4) CLOSE_SESSION
5) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
6) Invoke the Get method to retrieve the DataStore table’s Rows column value from the Table table
7) CLOSE_SESSION

Expected Response
1) Steps #1-7 SUCCEED
2) The Get method in step #6 returns a value = the DataStoreTableSize parameter value in step #3

SSC Applicability
This test case applies to the following SSCs:
1) Opal 2.00
2) Opal 2.01
3) Opal 2.02
4) All other SSCs supported by this specification, if the Additional DataStore Tables Feature Set is implemented

Prerequisites
1) In the DataStore Table Feature Descriptor, the Maximum Number of DataStore tables field value > 12) Locking SP is in the Manufactured-Inactive State

Test Sequence
1) Issue Level 0 Discovery command to retrieve the DataStore Table Size Alignment field

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 68© TCG 2022

TCG Storage Opal Family Test Cases Specification

2) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID
3) Invoke the Activate method with a DataStoreTableSize parameter value containing a number of items = theMaximum Number of DataStore Tables field, with values = the value of the DataStore Table Size Alignment fieldof the Level 0 Discovery Feature Descriptor
4) CLOSE_SESSION
5) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
6) Invoke the Get method to retrieve each DataStore table’s Rows column value from the Table table
7) CLOSE_SESSION

Expected Response
1) Steps #1-5 SUCCEED
2) For each DataStore table, the Get method in step #6 returns a value = the DataStoreTableSize parametervalue in step #3

SPF-18: Range Crossing Behavior
Notes
Start of informative comment
Test that the range crossing behavior is as specified by the returned value for range crossing.
Determine support for feature via Level 0 Discovery.
End of informative comment

SSC Applicability
This test case applies to the following SSCs:
1) Opal 1.00
2) Opal 2.00
3) Opal 2.01
4) Opal 2.02
5) All other SSCs supported by this specification, if Locking_Range1 is implemented

Prerequisites
1) Locking_Range1 length is non-zero and does not span the entire SD
2) Locking_GlobalRange and Locking_Range1 are unlocked

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 69© TCG 2022

TCG Storage Opal Family Test Cases Specification

Test Sequence
1) Issue a Write command with the MAGIC_PATTERN, with a beginning LBA in Locking_Range1 and ending LBA
in Locking_GlobalRange. For ZNS device, if Zone Capacity is less than Zone Size, skip this step.
2) Issue a Read command, with a beginning LBA in Locking_Range1 and ending LBA in Locking_GlobalRange.
For ZNS device, if Read Across Zone Boundaries is cleared to zero, skip this step.

Expected Response
1) If Range Crossing is supported and if step #1 or #2 is not skipped, then steps #1-2 SUCCEED
2) If Range Crossing is not supported and if step #1 or #2 is not skipped, then steps #1-2 FAIL. The Writecommand in step #1 and the Read command in step #2 return Other Invalid Command ParameterSPF-19: Block SID Authentication
Notes
Start of informative comment
None
End of informative comment

SSC Applicability
This test case applies to the following SSCs:
1) Opalite 1.00
2) Pyrite 1.00
3) Pyrite 2.00
4) Pyrite 2.01
5) Ruby 1.00
6) Opal 2.02
7) All other SSCs supported by this specification, if the Block SID Feature Set is implemented

Prerequisites
1) SID C_PIN credential is the same as the value of the MSID C_PIN credential

Test Sequence
1) Issue IF-SEND with the following parameters:a. Protocol ID = 0x02
b. ComID = 0x0005
c. Hardware Reset bit in Clear Events field = 12) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID.
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 70© TCG 2022

TCG Storage Opal Family Test Cases Specification

3) Issue an IF-RECV Level 0 Discovery with the following conditions:a. Security Protocol = 1
b. Security Protocol Specific = 0x0001
c. Transfer Length is a value large enough to retrieve the entire response data of Level 0 Discovery
4) Trigger a TCG Storage Hardware Reset on the SD
5) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID.
6) Issue IF-SEND with the following parameters:a. Protocol ID = 0x02
b. ComID = 0x0005
c. Hardware Reset = 07) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID.
8) Issue an IF-RECV Level 0 Discovery with the following conditions:a. Security Protocol = 1
b. Security Protocol Specific = 0x0001
c. Transfer Length is a value large enough to retrieve the entire response data of Level 0 Discovery9) Power cycle the SD10) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID.

Expected Response
1) Steps #1 and #3-10 SUCCEED
2) The StartSession method in step #2 results in a SyncSession method with a status code of
NOT_AUTHORIZED3) The Hardware Reset field in the Block SID Authentication Feature Descriptor in the Level 0 Discovery response
returned in #3 = 1
4) The StartSession method in step #7 results in a SyncSession method with a status code of
NOT_AUTHORIZED5) The Hardware Reset field in the Block SID Authentication Feature Descriptor in the Level 0 Discovery response
returned in #8 = 0

SPF-20: Data Removal Mechanism
Start of informative comment
Test the Set method and the Get method on the ActiveDataRemovalMechanism column in the Data Removal
Mechanism table to make sure this table is functional
End of informative comment

SSC Applicability
This test case applies to the following SSCs:
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 71© TCG 2022

TCG Storage Opal Family Test Cases Specification

1) Pyrite 2.00
2) Pyrite 2.01
3) Opal 2.02
4) All other SSCs supported by this specification, if the Data Removal Mechanism feature is implemented

Prerequisites
1) If DUT is other than Opal v2.02, knowledge of supported Data Removal Mechanisms from Supported Data
Removal Mechanisms Feature Descriptor in Level 0 Discovery

Test Sequence
1) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID.
2) Invoke the Get method on the ActiveDataRemovalMechanism column of the DataRemovalMechanism table3) Invoke the Set method on the ActiveDataRemovalMechanism column of the DataRemovalMechanism table,a) For Opal 2.02, with Cryptographic Erase Data Removal Mechanismb) For other SSCs, with one of the supported Data Removal Mechanisms returned in Level 0 Discovery
4) CLOSE_SESSION
5) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = Anybody authority
UID.
6) Invoke the Get method on the ActiveDataRemovalMechanism column of the DataRemovalMechanism table
7) CLOSE_SESSION

Expected Response
1) Steps #1-7 SUCCEED
2) The value returned from the Get method in Step #2 matches is equal to one of the bits set in the Supported
Data Removal Mechanisms returned in Level 0 Discovery3) The value returned from the Get method in Step #6 matches the value that was set in Step #3

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 72© TCG 2022

TCG Storage Opal Family Test Cases Specification

6 Error Test Cases
6.1 Introduction
The goal of this section is twofold: a) to reduce the overall number of error tests, and b) to require only a single
instance of a common error test in the test cases. All possible unique error responses defined in the SSC
specifications are included in at least one test case.
Unless otherwise noted within a specific test case, session status is deemed to remain unaffected by theperformance of any tests in this section.
This section does not include any tests where multiple errors are encoded in a payload from the host. Each test
case only tests for a single error condition; however, some test cases may result in different possible error
responses.
For every test case in this specification that specifies an error status code response, session abort SHALL be an
acceptable response. In the case of session abort, the SD sending a CloseSession response SHALL be acceptable.

6.2 Common Prerequisites
Unless otherwise noted, the following set of prerequisites apply for each test in this section:
1. SD is in Awaiting IF-SEND
2. Locking SP is in Manufactured state
3. The values of any credentials used are known
4. All sessions are Read-Write sessions
5. No sessions are open

ETC-01: Native Protocol Read/Write Locked Error Responses
Notes
Start of informative comment
None
End of informative comment

Prerequisites
1) Locking_GlobalRange ReadLockEnabled, WriteLockEnabled, ReadLocked and WriteLocked column values =TRUE2) If non-Global Locking Range objects are implemented, then all non-Global Locking Range objects
ReadLockEnabled, WriteLockEnabled, ReadLocked and WriteLocked column values = FALSE and RangeStart
and RangeLength columns values = 03) For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is supported, then the Enable
column value of the MBRControl table = FALSE
4) For Opal 1.00, 2.00, 2.01 and 2.02, and Opalite 1.00, the Enable column value of the MBRControl table =FALSE

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 73© TCG 2022

TCG Storage Opal Family Test Cases Specification

Test Sequence
1) Issue each of the Write commands (as identified by [2]) that are supported by the SD and the Test Suite. If an
LBA range is required for a supported command, write to an ARBITRARILY_VARYING_LBA_RANGE. If otherparameters are required for a supported command, use
ARBITRARILY_VARYING_COMMAND_PARAMETERS. Refer to section 3.6
2) Issue each of the Read commands (as identified by [2]) that are supported by the SD and the Test Suite. If an
LBA range is required for a supported command, read from an ARBITRARILY_VARYING_LBA_RANGE. If otherparameters are required for a supported command, use
ARBITRARILY_VARYING_COMMAND_PARAMETERS. Refer to section 3.6

Expected Response
1) Each of the issued commands in Steps #1-2 FAIL
2) For all supported Write commands in step #1 and all supported Read commands in step #2, the SD SHALL:
a. Transfer no data
b. Return a Data Protection Error, (See [2])ETC-02: General – IF-SEND/IF-RECV Synchronous Protocol
Notes
Start of informative comment
None
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the Properties method within an IF-SEND using a valid ComID and do not retrieve the response withan IF-RECV
2) Invoke the Properties method using the ComID from the previous step

Expected Response
1) Step #1 SUCCEEDS
2) Step #2 FAILS. The IF-SEND command returns Synchronous Protocol Violation error

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 74© TCG 2022

TCG Storage Opal Family Test Cases Specification

ETC-03: Invalid IF-SEND Transfer Length
Notes
Start of informative comment
None
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the Properties method to determine SD’s MaxComPacketSize
2) Invoke the Properties method with the correct ComPacket Header Length field to match the required
ComPacket payload size but with the IF-SEND Transfer Length set to a value > MaxComPacketSize

Expected Responses
1)

Step #1 SUCCEEDS

2)

The IF-SEND in step #2 fails with a result of “Invalid Transfer Length parameter on IF-SEND”

ETC-04: Invalid SessionID - Regular Session
Notes
Start of informative comment
None
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Admin SP UID
2) Invoke the Get method on MSID’s credential object in C_PIN table with a Packet SessionID value <> thecurrent SessionID value3) CLOSE_SESSIONTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 75© TCG 2022

TCG Storage Opal Family Test Cases Specification

Expected Responses
1) Steps #1-3 SUCCEED
2) IF-RECV in step #2 has a ComPacket header value of “All Response(s) returned - no further data”, (See [1])ETC-05: Unexpected Token Outside of Method – Regular Session
Notes
Start of informative comment
This test verifies the condition corresponding to [1], Section 3.2.2.4.2 item 2. The reason for the expected response#2 of “All Response(s) returned - no further data” is that the device is in the “Awaiting IF_SEND” state, see [1], Section
3.3.10.5
End of informative comment

Prerequisites
1) User1 authority object’s Enabled Column is set to TRUE

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Set method on the Enabled Column of User1 Authority with a value of FALSE and EndList Token
before the Call Token
3) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID4) Invoke the Get method on the Enabled Column of User1 Authority
5) CLOSE_SESSION

Expected Response
1) Step #1 SUCCEEDS
2) IF-RECV in step #2 has a ComPacket header value of “All Response(s) returned - no further data” (See [1]), or
returns a ComPacket with a CloseSession method.
3) Step #3-5 SUCCEED
4) Step #4 the Get method on the Enabled Column of the User1 Authority returns TRUE

ETC-06: Unexpected Token in Method Header – Regular Session
Notes
Start of informative comment
This test verifies the condition corresponding to [1], Section 3.2.2.4.2 item 3.

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 76© TCG 2022

TCG Storage Opal Family Test Cases Specification

End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Set method on the Enabled Column of User1 Authority with a value of FALSE and an EndList Token
immediately after the Call Token
3) CLOSE_SESSION

Expected Response
1) Step #1 SUCCEEDS
2) Step #2 Set method returns NOT_AUTHORIZED, or returns a ComPacket with a CloseSession method.
3) Step #3 SUCCEEDS if step #2 returns NOT_AUTHORIZED

ETC-07: Unexpected Token Outside of Method – Control Session
Notes
Start of informative comment
None
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and an EndList Token before the Call Token
2) Invoke the StartSession method with SPID = Locking SP UID

Expected Response
1) IF-RECV in step #1 has a ComPacket header value of “All Response(s) returned - no further data”, (See [1])2) Steps #2 SUCCEEDSTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 77© TCG 2022

TCG Storage Opal Family Test Cases Specification

ETC-08: Unexpected Token in the Method Parameter List – Control Session
Notes
Start of informative comment
This test verifies the condition corresponding to [1], Section 3.2.2.4.2 items 1 and 4. The reason for the expected
response #1a of “All Response(s) returned - no further data” is the description in [1], Section 3.3.7.1.5: “The Host or
TPer is free at any time to end a session in which it is participating, but only the host SHALL end the session
successfully.”
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the Properties method with StartList immediately after the Parameter StartList

Expected Response
1) One of the following responses is generated:
a. IF-RECV in step #1 has a ComPacket header value of “All Response(s) returned - no further data”, (See [1])b. The Properties method in step #1 returns INVALID_PARAMETER

ETC-09: Exceeding Transaction Limit
Notes
Start of informative comment
None
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the Properties method to identify MaxTransactionLimit
2) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID3) Send a subpacket that contains MaxTransactionLimit + 1 StartTransaction Tokens
4) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 78© TCG 2022

TCG Storage Opal Family Test Cases Specification

5) CLOSE_SESSION

Expected Response
1) Steps #1-2 SUCCEED
2) IF-RECV in step #3 has a ComPacket header value of “All Response(s) returned - no further data” (See [1]), or
returns a ComPacket with a CloseSession method.
3) Steps #4-5 SUCCEED

ETC-10: Invalid Invoking ID - Get
Notes
Start of informative comment
The LockingInfo table is a single row table. The UID used in the following test refers to row 5, a nonexistent row
of the LockingInfo table.
This test case tests the following requirement from [1]:Unless otherwise noted in a method's description, this status code (NOT_AUTHORIZED) SHALL be returned
whenever there is no row in the AccessControl table to represent the InvokingID/MethodID combination, or when
there is a row but the ACL for the InvokingID/MethodID combination has not been satisfied.
End of informative comment

Case 1:
Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Get method on Invoking UID of 00 00 08 01 AA BB CC DD
3) CLOSE_SESSION

Expected Response
Step #1 SUCCEEDSThe Get method in step #2 returns a status code of NOT_AUTHORIZED
Step #3 SUCCEEDSTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 79© TCG 2022

TCG Storage Opal Family Test Cases Specification

Notes
Start of informative comment
This test validates correct behavior when the Get method is invoked on a Byte table and the authority does not haveaccess to retrieve contents from the byte table.
This test case tests the following requirement from [1]:If the currently authenticated authorities do not satisfy the access control restrictions for invoking the Get method on
a byte table, the method SHALL return an empty results list.
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Anybody authority
UID
2) Invoke the Get method on Invoking UID of 00 00 10 01 00 00 00 00 (DataStore table)
3) CLOSE_SESSION

Expected Response
Steps #1 SUCCEEDSThe Get method in step #2 returns a status code of NOT_AUTHORIZED or SUCCESS and an empty results list
Step #3 SUCCEEDS

Notes
Start of informative comment
This test validates correct behavior when the Get method is invoked on an Object table and the authority does nothave access to retrieve contents from the Object table.
This test case tests the following requirement from [1]:When the Get method is invoked on a table or object, only the values that are readable based on currently
authenticated authorities and their associated ACE restrictions for the method SHALL be returned.
Cell values that have been requested but are not permitted to be read by the currently authenticated authorities are
not returned. Since the return value of the method for non-byte tables is a list of namevalue pairs, cells to which thehost invoking the Get method does not have access are omitted from the return result. If a column is known to exist
but not returned with a value, then the host is able to discern that it did not have permission to invoke the Get methodon that cell. It is not an error to request columns that are not permitted to be retrieved.
End of informative comment

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 80© TCG 2022

TCG Storage Opal Family Test Cases Specification

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Get method on the InvokingID 00 00 00 0B 00 01 00 01 (C_PIN_Admin1) to get the PIN, CharSet,
TryLimit, and Tries columns.
3) CLOSE_SESSION

Expected Response
Steps #1 SUCCEEDSThe Get method in step #2 returns a status code of SUCCESS and only returns the CharSet, TryLimit, andTries column values.
Step #3 SUCCEEDS

Notes
Start of informative comment
This test validates correct behavior when the Get method is invoked on a non-table UID.
This test case is similar to Test Case 1, but instead this test case tests with a valid InvokingUID but there is no row in
the ACL table that matches the InvokingID/MethodID combination.
This test case tests the following requirement from [1]:“Unless otherwise noted in a method's description, this status code (NOT_AUTHORIZED) SHALL be returned
whenever there is no row in the AccessControl table to represent the InvokingID/MethodID combination, or when
there is a row but the ACL for the InvokingID/MethodID combination has not been satisfied.”
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Anybody authority
UID
2) Invoke the Get method on the InvokingID 00 00 00 00 00 00 00 01 (ThisSP)
3) CLOSE_SESSIONTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 81© TCG 2022

TCG Storage Opal Family Test Cases Specification

Expected Response
Steps #1 SUCCEEDSThe Get method in step #2 returns a status code of NOT_AUTHORIZED and an empty results list
Step #3 SUCCEEDSETC-11: Invalid Invoking ID – Non-Get
Notes
Start of informative comment
The LockingInfo table is a single row table. The UID used in the following test refers to row 5, a non-existing row
of the LockingInfo table.
This test uses Set method to represent all non-Get methods.
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID
2) Invoke the Set method on Invoking UID of 00 00 08 01 00 00 00 05
3) CLOSE_SESSION

Expected Response
1) Steps #1 SUCCEEDS2) The Set method in step #2 returns a status code of NOT_AUTHORIZED3) Step #3 SUCCEEDSETC-12: Authorization
Notes
Start of informative comment
None
End of informative comment

Prerequisites
None

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 82© TCG 2022

TCG Storage Opal Family Test Cases Specification

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID
2) Invoke the Set method on the Enabled column of the User1 Authority
3) CLOSE_SESSION

Expected Response
1) Steps #1 SUCCEEDS2) The Set method in step #2 returns a status code of NOT_AUTHORIZED3) Step #3 SUCCEEDSETC-13: Malformed ComPacket Header – Regular Session
Notes
Start of informative comment
This tests a malformed Length field in the ComPacket header whereas TRANSFER LENGTH field in IF-SEND CDB
has a correct value. If it is not possible to invoke a Set method that exceeds the TPer’s MaxComPacketSize, thenthis test cannot be performed and the result should be marked as NA.
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the Properties method to identify the MaxComPacketSize
2) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID3) This test step varies based on SSC version:a. For Opal 1.00, invoke the Set method on the MBR table, such that the Length field in the ComPacket header
exceeds the TPer’s MaxComPacketSize – 20 (where 20 is the length of ComPacket header field), and the
IF-SEND Transfer Length set to a value <= MaxComPacketSize
b. For all SSCs supported by this specification other than Opal 1.00, invoke the Set method on theDatastore table such that the Length field in the ComPacket header exceeds the TPer’s
MaxComPacketSize – 20 (where 20 is the length of ComPacket header field), and the IF-SEND Transfer
Length set to a value <= MaxComPacketSize
4) Issue IF-RECVTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 83© TCG 2022

TCG Storage Opal Family Test Cases Specification

Expected Response
Steps #1-2 SUCCEED
The IF_SEND in step #3:
a. SUCCEEDS; orb. FAILS with a result of “Invalid Transfer Length parameter on IF-SEND”
The IF-RECV in step #4 returns a ComPacket header with a value of “All Response(s) returned - no further
data” (See [1]), or returns a ComPacket with a CloseSession method.

ETC-14: Exceed TPer Properties – Regular Session
Notes
Start of informative comment
Tests for MaxSubPackets exceeded.
This test verifies the condition corresponding to [1], Section 5.2.2.4.1.1. The reason for the expected response #1a of“All Response(s) returned - no further data” is the description in [1], Section 3.3.7.1.5: “The Host or TPer is free at any
time to end a session in which it is participating, but only the host SHALL end the session successfully.”
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the Properties method to identify the MaxSubPackets
2) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID3) Send a packet with MaxSubPackets +1 SubPackets. Each SubPacket contains an invocation of the Set
method on the DataStore table
4) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID5) CLOSE_SESSION

Expected Response
1) Steps #1-2 SUCCEED
2) IF-RECV in step #3 has a ComPacket header value of “All Response(s) returned - no further data” (See [1]), or
returns a ComPacket with a CloseSession method.
3) Steps #4-5 SUCCEED

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 84© TCG 2022

TCG Storage Opal Family Test Cases Specification

ETC-15: Exceed TPer Properties – Control Session
Notes
Start of informative comment
Tests for MaxSubPackets exceeded.
End of informative comment

Prerequisites
None

Test Sequence
1) Invoke the Properties method to identify the MaxSubPackets
2) Invoke the Properties method with MaxSubPackets +1 SubPackets. Each SubPacket contains an invocationof the Properties Method

Expected Response
1) Step #1 SUCCEEDS
2) IF-RECV in step #2 has a ComPacket header value of “All Response(s) returned - no further data”, (See [1])ETC-16: Overlapping Locking Ranges
Notes
Start of informative comment
None
End of informative comment

SSC Applicability
This test case applies to the following SSCs:
1) Opal 1.00, 2.00 and 2.01
2) All other SSCs supported by this specification, if the MaxRanges column value in the LockingInfo table is > 1

Prerequisites
None

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 85© TCG 2022

TCG Storage Opal Family Test Cases Specification

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Set method on Locking_Range1. Configure the locking range as follows:a. RangeStart=0b. RangeLength= 64

c. If any SSC supported by this specification other than Opal 1.00, adjust RangeStart and RangeLength
according to the RangeAlignment3) Invoke the Set method on Locking_Range2. Configure the locking range as follows:a. RangeStart=0b. RangeLength= 64

c. If any SSC supported by this specification other than Opal 1.00, adjust RangeStart and RangeLength
according to the RangeAlignment4) CLOSE_SESSION

Expected Response
1) Steps #1-2 SUCCEED
2) The Set method in step #3 returns a status code of INVALID_PARAMETER
3) Step #4 SUCCEEDSETC-17: Invalid Type
Notes
Start of informative comment
None
End of informative comment

Prerequisites
None

Test Sequences
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Set method on the Enabled column of the User1 Authority to value of 0xAAAA
3) CLOSE_SESSIONTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 86© TCG 2022

TCG Storage Opal Family Test Cases Specification

Expected Response
1) Steps #1 SUCCEEDS2) The Set method in step #2 returns a status code of INVALID_PARAMETER
3) Step #3 SUCCEEDSETC-18: RevertSP – GlobalRange Locked
Notes
Start of informative comment
None
End of informative comment

SSC Applicability
This test case applies to all SSCs supported by this specification other than Pyrite 1.00

Prerequisites
None

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Set method on GlobalRange with the following conditions:a. ReadLockedEnabled = TRUE
b. WriteLockedEnabled = TRUE
c. ReadLocked = TRUE
d. WriteLocked = TRUE
3) Invoke the RevertSP method on the Locking SP with KeepGlobalRangeKey/KeepData = TRUE
4) CLOSE_SESSION

Expected Response
1) Steps #1-2 SUCCEED
2) Step #3 RevertSP method returns a status code of FAIL
3) Step #4 SUCCEEDSTCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 87© TCG 2022

TCG Storage Opal Family Test Cases Specification

ETC-19: Activate / ATA Security Interaction
Notes
Start of informative commentSee[8]End of informative comment

Prerequisites
1) SID’s PIN column value is set to <SID_PASSWORD> value in the SID’s C_PIN credential PIN column
2) The ATA Security Feature Set Security Characteristics are Enabled and Unlocked
3) Locking SP is in the Manufactured-Inactive state

Test Sequence
1) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID
2) Invoke the Activate method on Locking SP object
3) CLOSE_SESSION

Expected Response
1) Step #1 SUCCEEDS
2) Step #2 the Activate method returns a status code of FAIL
3) Step #3 SUCCEEDSETC-20: StartSession on Inactive Locking SP
Notes
Start of informative comment
None
End of informative comment

Prerequisites
1) Locking SP is in the Manufactured-Inactive state

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 88© TCG 2022

TCG Storage Opal Family Test Cases Specification

Expected Response
1) The StartSession method in step #1 results in a SyncSession method with a status code of
INVALID_PARAMETER

ETC-21: StartSession with Incorrect HostChallenge
NotesStart of informative comment
None
End of informative comment

Prerequisites
1) The C_PIN credential associated with Admin1 has a TryLimit column value of 0; or a Tries column value < theTryLimit column value

Test Sequence
1) Invoke the StartSession method with SPID = Locking SP UID, HostSigningAuthority = Admin1 authority UID,
and HostChallenge = a value that is different from the C_PIN_Admin1 PIN column value

Expected Response
The StartSession method in step #1 results in a SyncSession method with a status code of
NOT_AUTHORIZED

ETC-22: Multiple Sessions
Notes
Start of informative comment
There are two tests performed regarding multiple sessions:
Case 1 attempts to start two Read-Write sessions with the Locking SP
Case 2 attempts to start MaxSessions + 1 Read-Only sessions with the Locking SP
End of informative comment

Case 1:
Prerequisites
1) No open sessions exist at the start of the Test Sequence

Test Sequence
1) Invoke the Properties method to identify the MaxSessions
TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 89© TCG 2022

TCG Storage Opal Family Test Cases Specification

2) Invoke the StartSession method with SPID = Locking SP UID and Write = TRUE
3) Invoke the StartSession method with SPID = Locking SP UID and Write = TRUE

Expected Response
1) Step #1-2 SUCCEEDS2) The StartSession method in step #3 results in a SyncSession method with a status code of:a) If MaxSessions = 1: SP_BUSY or NO_SESSIONS_AVAILABLEb) If MaxSession <> 1: SP_BUSYPrerequisites
1) No open sessions exist at the start of the Test Sequence

Test Sequence
1) Invoke the Properties method to identify the MaxSessions and MaxReadSessions. If MaxSessions = 0 or
MaxReadSessions = 0 or MaxReadSessions is omitted, do not perform this test and the Test Suite SHALL markthe result as NA
2) Invoke the StartSession method with SPID = Locking SP UID and Write = FALSE up to the lesser of
MaxSessions or MaxReadSessions
3) Invoke the StartSession method with SPID = Locking SP UID and Write = FALSE

Expected Response
1) Step #1 SUCCEEDS
2) Every StartSession method invoked in step #2 results in a SyncSession method with a status code of
SUCCESS
3) The StartSession method in step #3 results in a SyncSession method with a status code of
NO_SESSIONS_AVAILABLE

ETC-23: Data Removal Mechanism – Set Unsupported Value
Notes
Start of informative comment
Test the Set method on the ActiveDataRemovalMechanism column in the Data Removal Mechanism table with aninvalid value to make sure a proper error is returned
End of informative comment

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 90© TCG 2022

TCG Storage Opal Family Test Cases Specification

SSC Applicability
This test case applies to the following SSCs:
1) Pyrite 2.00
2) Pyrite 2.01
3) All other SSCs supported by this specification, if the Data Removal Mechanism feature is implemented

Prerequisites
1)

If DUT is other than Opal 2.02, knowledge of supported Data Removal Mechanisms from Supported Data
Removal Mechanisms Feature Descriptor in Level 0 Discovery

Test Sequence
1) Invoke the StartSession method with SPID = Admin SP UID and HostSigningAuthority = SID authority UID
2) Invoke the Set method on the ActiveDataRemovalMechanism column of the DataRemovalMechanism table,a) For Opal 2.02, if Data Removal Mechanisms in Level 0 Discovery is not returned, then the Set method is
invoked with a value that is not Cryptographic Erase Data Removal Mechanismb) If Data Removal Mechanisms in Level 0 Discovery is returned, then the Set method is invoked with a valuethat is not one of the supported Data Removal Mechanisms returned in Level 0 Discovery
3) CLOSE_SESSION

Expected Response
1) Steps #1-3 SUCCEED
2) The Set method in Step #2 returns INVALID_PARAMETER

ETC-24: Read Locked and Write Locked Error Responses
Notes
Start of informative comment
None
End of informative comment

SSC Applicability
This test case applies to the following SSCs:
1) Opal 1.00
2) Opal 2.00
3) Opal 2.01
4) Opal 2.02
5) All other SSCs supported by this specification, if Locking_Range1 is implemented

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 91© TCG 2022

TCG Storage Opal Family Test Cases Specification

Prerequisites
1) Locking_GlobalRange ReadLockEnabled, WriteLockEnabled, ReadLocked and WriteLocked column values =TRUE2) If non-Global Locking Range objects are implemented, then all non-Global Locking Range objects
ReadLockEnabled, WriteLockEnabled, ReadLocked and WriteLocked column values = FALSE and RangeStart
and RangeLength columns values = 03) For Pyrite 1.00, 2.00 and 2.01, and Ruby 1.00, if the MBR Shadowing feature is supported, then the Enable
column value of the MBRControl table = FALSE
4) For Opal 1.00, 2.00, 2.01 and 2.02, and Opalite 1.00, the Enable column value of the MBRControl table =FALSE
The Read command and the Write command (as identified by [2]) issued in this test sequence are the commands
that are supported by the SD and by the Test Suite. The LBA range of the Read command and the Write commandis defined in the ARBITRARILY_VARYING_LBA_RANGE. If other parameters are required for a supported
command, use ARBITRARILY_VARYING_COMMAND_PARAMETERS. Refer to section 3.6.
1) Invoke the StartSession method with SPID = Locking SP UID and HostSigningAuthority = Admin1 authority
UID
2) Invoke the Set method on Locking_Range1. Configure the locking range as follows:a. RangeStart=0b. RangeLength= 1024c. If the SD supports an SSC other than Opal 1.00, adjust RangeStart and RangeLength according to theRangeAlignment3) Invoke the Set method to configure Locking_Range1 ReadLockEnabled and WriteLockEnabled column values= TRUE, ReadLocked column value = FALSE and WriteLocked column values = TRUE
4) Issue a Read command in Locking_Range15) Issue a Write command in Locking_Range1
6) Invoke the Set method to configure Locking_Range1 ReadLockEnabled and WriteLockEnabled column values= TRUE, ReadLocked column value = TRUE and WriteLocked column values = FALSE
7) Issue a Read command in Locking_Range18) Issue a Write command in Locking_Range19) Invoke the Set method to configure Locking_Range1 ReadLockEnabled and WriteLockEnabled column values= TRUE, ReadLocked column value = TRUE and WriteLocked column values = TRUE
10) Issue a Read command in Locking_Range1
11) Issue a Write command in Locking_Range1

Expected Response
1) Steps #1-3 SUCCEED
2) The commands issued in Step #4 SUCCEED. The commands issued in Step #5 FAIL
3) Step #6 SUCCEEDs

TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 92© TCG 2022

TCG Storage Opal Family Test Cases Specification

4) The commands issued in Step #7 FAIL. The commands issued in Step #8 SUCCEED
5) Step #9 SUCCEEDs
6) The commands issued in Step #10 and Step #11 all FAIL
7) For all supported Write commands in step #5, #8, and #11 and all supported Read commands in step #4, #7,
and #10, the SD SHALL:a. For Read command, transfer no data
b. Return a Data Protection Error, (See [2])TCG Storage Opal Family Test Cases Specification | Specification Version 1.01 | Revision 1.10 | 5/30/2023 | PUBLISHED Page 93© TCG 2022