Key Management Interoperability Protocol Test Cases Version 1.2

Committee Note 01

11 November 2014

Specification URIs

This version:

http://docs.oasis-open.org/kmip/testcases/v1.2/cn01/kmip-testcases-v1.2-cn01.doc (Authoritative)

http://docs.oasis-open.org/kmip/testcases/v1.2/cn01/kmip-testcases-v1.2-cn01.html

http://docs.oasis-open.org/kmip/testcases/v1.2/cn01/kmip-testcases-v1.2-cn01.pdf

Previous version:

http://docs.oasis-open.org/kmip/testcases/v1.2/cnprd01/kmip-testcases-v1.2-cnprd01.doc (Authoritative)

http://docs.oasis-open.org/kmip/testcases/v1.2/cnprd01/kmip-testcases-v1.2-cnprd01.html

http://docs.oasis-open.org/kmip/testcases/v1.2/cnprd01/kmip-testcases-v1.2-cnprd01.pdf

Latest version:

http://docs.oasis-open.org/kmip/testcases/v1.2/kmip-testcases-v1.2.doc (Authoritative)

http://docs.oasis-open.org/kmip/testcases/v1.2/kmip-testcases-v1.2.html

http://docs.oasis-open.org/kmip/testcases/v1.2/kmip-testcases-v1.2.pdf

Technical Committee:

OASIS Key Management Interoperability Protocol (KMIP) TC

Chairs:

Saikat Saha (saikat.saha@oracle.com), Oracle

Tony Cox (tjc@cryptsoft.com), Cryptsoft Pty Ltd.

Editors:

Tim Hudson (tjh@cryptsoft.com), Cryptsoft Pty Ltd.

Faisal Faruqui (faisal.faruqui@thalesesec.com), Thales e-Security

Related work:

This document replaces or supersedes:

·         Key Management Interoperability Protocol Test Cases Version 1.1. Edited by Mathias Björkqvist and Tim Hudson. Latest version. http://docs.oasis-open.org/kmip/testcases/v1.1/kmip-testcases-v1.1.html.

This document is related to:

·         Key Management Interoperability Protocol Specification Version 1.2. Edited by Kiran Thota and Kelley Burgin. Latest version: http://docs.oasis-open.org/kmip/spec/v1.2/kmip-spec-v1.2.html.

·         Key Management Interoperability Protocol Profiles Version 1.2. Edited by Tim Hudson and Robert Lockhart. Latest version: http://docs.oasis-open.org/kmip/profiles/v1.2/kmip-profiles-v1.2.html.

·          Key Management Interoperability Protocol Usage Guide Version 1.2. Edited by Indra Fitzgerald and Judith Furlong. Latest version: http://docs.oasis-open.org/kmip/ug/v1.2/kmip-ug-v1.2.html.

Abstract:

This document is intended for developers and architects who wish to design systems and applications that interoperate using the Key Management Interoperability Protocol specification.

Status:

This document was last revised or approved by the OASIS Key Management Interoperability Protocol (KMIP) TC on the above date. The level of approval is also listed above. Check the “Latest version” location noted above for possible later revisions of this document. Any other numbered Versions and other technical work produced by the Technical Committee (TC) are listed at https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=kmip#technical.

Technical Committee members should send comments on this document to the Technical Committee’s email list. Others should send comments to the Technical Committee by using the “Send A Comment” button on the Technical Committee’s web page at https://www.oasis-open.org/committees/kmip/.

Citation format:

When referencing this document the following citation format should be used:

[kmip-testcases-v1.2]

Key Management Interoperability Protocol Test Cases Version 1.2. Edited by Tim Hudson and Faisal Faruqui. 11 November 2014. OASIS Committee Note 01. http://docs.oasis-open.org/kmip/testcases/v1.2/cn01/kmip-testcases-v1.2-cn01.html. Latest version: http://docs.oasis-open.org/kmip/testcases/v1.2/kmip-testcases-v1.2.html.

 

 

Copyright © OASIS Open 2014.  All Rights Reserved.

All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

 

Table of Contents

1       Introduction. 8

1.1 References (non-normative). 8

2       KMIP Test Cases. 9

2.1 KMIP 1.0 Test Cases. 9

2.1.1 TC-311-10 - Create / Destroy. 9

2.1.2 TC-312-10 - Register / Create / Get attributes / Destroy. 11

2.1.3 TC-313-10 - Create / Locate / Get / Destroy. 16

2.1.4 TC-314-10 - Dual Client Test Case, ID Placeholder-linked Locate & Get Batch. 20

2.1.5 TC-315-10 - Register / Destroy Secret Data. 31

2.1.6 TC-32-10 - Asynchronous Locate. 33

2.1.7 TC-41-10 - Revoke Scenario. 41

2.1.8 TC-51-10 - Get Usage Allocation Scenario. 54

2.1.9 TC-61-10 - Import of a Third-party Key. 64

2.1.10 TC-71-10 - Unrecognized Message Extension with Criticality Indicator False. 67

2.1.11 TC-72-10 - Unrecognized Message Extension with Criticality Indicator True. 69

2.1.12 TC-81-10 - Create a Key Pair. 71

2.1.13 TC-82-10 - Register Both Halves of a Key Pair. 75

2.1.14 TC-91-10 - Create a Key, Re-key. 81

2.1.15 TC-92-10 - Existing Key Expired, Re-key with Same Life-cycle. 87

2.1.16 TC-93-10 - Existing Key Compromised, Re-key with Same Life-cycle. 95

2.1.17 TC-94-10 - Create Key, Re-key with New Life-cycle. 102

2.1.18 TC-95-10 - Obtain Lease for Expired Key. 109

2.1.19 TC-101-10 - Create a Key, Archive and Recover it. 118

2.1.20 TC-111-10 - Credential, Operation Policy, Destroy Date. 127

2.1.21 TC-121-10 - Query, Maximum Response Size. 133

2.1.22 TC-131-10 - Register an Asymmetric Key Pair in PKCS1 Format. 135

2.1.23 TC-132-10 - Register an Asymmetric Key Pair and a Corresponding X509 Certificate. 145

2.1.24 TC-134-10 - Register Key Pair, Certify and Re-certify Public Key. 158

2.1.25 TC-NP-1-10 - Put. 175

2.1.26 TC-NP-2-10 - Notify & Put. 179

2.1.27 TC-ECC-1-10 - Register an ECC Key Pair. 186

2.1.28 TC-ECC-2-10 - Register an ECC Key Pair in PKCS8 Format. 194

2.1.29 TC-ECC-3-10 - Register an ECC Key Pair and ECDSA Certificate. 203

2.2 KMIP 1.1 Test Cases. 216

2.2.1 TC-311-11 - Create / Destroy. 216

2.2.2 TC-312-11 - Register / Create / Get attributes / Destroy. 218

2.2.3 TC-313-11 - Create / Locate / Get / Destroy. 223

2.2.4 TC-314-11 - Dual Client Test Case, ID Placeholder-linked Locate & Get Batch. 227

2.2.5 TC-315-11 - Register / Destroy Secret Data. 238

2.2.6 TC-32-11 - Asynchronous Locate. 240

2.2.7 TC-41-11 - Revoke Scenario. 248

2.2.8 TC-51-11 - Get Usage Allocation Scenario. 261

2.2.9 TC-61-11 - Import of a Third-party Key. 271

2.2.10 TC-71-11 - Unrecognized Message Extension with Criticality Indicator False. 275

2.2.11 TC-72-11 - Unrecognized Message Extension with Criticality Indicator True. 277

2.2.12 TC-81-11 - Create a Key Pair. 278

2.2.13 TC-82-11 - Register Both Halves of a Key Pair. 282

2.2.14 TC-91-11 - Create a Key, Re-key. 289

2.2.15 TC-92-11 - Existing Key Expired, Re-key with Same Life-cycle. 295

2.2.16 TC-93-11 - Existing Key Compromised, Re-key with Same Life-cycle. 303

2.2.17 TC-94-11 - Create Key, Re-key with New Life-cycle. 309

2.2.18 TC-95-11 - Obtain Lease for Expired Key. 316

2.2.19 TC-101-11 - Create a Key, Archive and Recover it. 325

2.2.20 TC-111-11 - Credential, Operation Policy, Destroy Date. 335

2.2.21 TC-112-11 - Device Credential, Operation Policy, Destroy Date. 341

2.2.22 TC-121-11 - Query, Maximum Response Size. 348

2.2.23 TC-122-11 - Query Vendor Extensions. 350

2.2.24 TC-131-11 - Register an Asymmetric Key Pair in PKCS1 Format. 351

2.2.25 TC-132-11 - Register an Asymmetric Key Pair and a Corresponding X509 Certificate. 361

2.2.26 TC-133-11 - Create, Re-key Key Pair. 375

2.2.27 TC-134-11 - Register Key Pair, Certify and Re-certify Public Key. 390

2.2.28 TC-141-11 - Key Wrapping using AES Key Wrap and No Encoding. 407

2.2.29 TC-142-11 - Key Wrapping using AES Key Wrap with Attributes. 414

2.2.30 TC-151-11 - Locate a Fresh Object from the Default Group. 420

2.2.31 TC-152-11 - Client-side Group Management. 424

2.2.32 TC-153-11 - Default Object Group Member. 433

2.2.33 TC-161-11 - Discover Versions. 442

2.2.34 TC-171-11 - Handling of Attributes and Attribute Index Values. 445

2.2.35 TC-181-11 - Digests of Symmetric Keys. 450

2.2.36 TC-182-11 - Digests of RSA Private Keys. 459

2.2.37 TC-NP-1-11 - Put. 466

2.2.38 TC-NP-2-11 - Notify & Put. 470

2.2.39 TC-ECC-1-11 - Register an ECC Key Pair. 478

2.2.40 TC-ECC-2-11 - Register an ECC Key Pair in PKCS8 Format. 486

2.2.41 TC-ECC-3-11 - Register an ECC Key Pair and ECDSA Certificate. 494

2.3 KMIP 1.2 Test Cases. 508

2.3.1 TC-311-12 - Create / Destroy. 508

2.3.2 TC-312-12 - Register / Create / Get attributes / Destroy. 510

2.3.3 TC-313-12 - Create / Locate / Get / Destroy. 519

2.3.4 TC-314-12 - Dual Client Test Case, ID Placeholder-linked Locate & Get Batch. 524

2.3.5 TC-315-12 - Register / Destroy Secret Data. 536

2.3.6 TC-32-12 - Asynchronous Locate. 537

2.3.7 TC-41-12 - Revoke Scenario. 545

2.3.8 TC-51-12 - Get Usage Allocation Scenario. 559

2.3.9 TC-61-12 - Import of a Third-party Key. 569

2.3.10 TC-71-12 - Unrecognized Message Extension with Criticality Indicator False. 572

2.3.11 TC-72-12 - Unrecognized Message Extension with Criticality Indicator True. 574

2.3.12 TC-81-12 - Create a Key Pair. 576

2.3.13 TC-82-12 - Register Both Halves of a Key Pair. 580

2.3.14 TC-91-12 - Create a Key, Re-key. 586

2.3.15 TC-92-12 - Existing Key Expired, Re-key with Same Life-cycle. 592

2.3.16 TC-93-12 - Existing Key Compromised, Re-key with Same Life-cycle. 600

2.3.17 TC-94-12 - Create Key, Re-key with New Life-cycle. 607

2.3.18 TC-95-12 - Obtain Lease for Expired Key. 614

2.3.19 TC-101-12 - Create a Key, Archive and Recover it. 622

2.3.20 TC-111-12 - Credential, Operation Policy, Destroy Date. 633

2.3.21 TC-112-12 - Device Credential, Operation Policy, Destroy Date. 639

2.3.22 TC-121-12 - Query, Maximum Response Size. 645

2.3.23 TC-122-12 - Query Vendor Extensions. 648

2.3.24 TC-131-12 - Register an Asymmetric Key Pair in PKCS1 Format. 649

2.3.25 TC-132-12 - Register an Asymmetric Key Pair and a Corresponding X509 Certificate. 659

2.3.26 TC-133-12 - Create, Re-key Key Pair. 673

2.3.27 TC-134-12 - Register Key Pair, Certify and Re-certify Public Key. 688

2.3.28 TC-141-12 - Key Wrapping using AES Key Wrap and No Encoding. 705

2.3.29 TC-142-12 - Key Wrapping using AES Key Wrap with Attributes. 712

2.3.30 TC-151-12 - Locate a Fresh Object from the Default Group. 718

2.3.31 TC-152-12 - Client-side Group Management. 722

2.3.32 TC-153-12 - Default Object Group Member. 731

2.3.33 TC-161-12 - Discover Versions. 740

2.3.34 TC-171-12 - Handling of Attributes and Attribute Index Values. 744

2.3.35 TC-181-12 - Digests of Symmetric Keys. 749

2.3.36 TC-182-12 - Digests of RSA Private Keys. 758

2.3.37 TC-NP-1-12 - Put. 765

2.3.38 TC-NP-2-12 - Notify & Put. 769

2.3.39 TC-ECC-1-12 - Register an ECC Key Pair. 777

2.3.40 TC-ECC-2-12 - Register an ECC Key Pair in PKCS8 Format. 785

2.3.41 TC-ECC-3-12 - Register an ECC Key Pair and ECDSA Certificate. 793

2.3.42 TC-PGP-1-12 - Register PGP Key - RSA.. 807

2.3.43 TC-MDO-1-12 - Register MDO Key. 820

2.3.44 TC-MDO-2-12 - Locate MDO keys by Key Value Present. 824

2.3.45 TC-MDO-3-12 - Register MDO Key using PKCS11 URI 830

2.3.46 TC-SJ-1-12 - Create and Split/Join. 834

2.3.47 TC-SJ-2-12 - Register and Split / Join. 843

2.3.48 TC-SJ-3-12 - Join Split Keys. 855

2.3.49 TC-SJ-4-12 - Register and Split / Join with XOR. 864

Appendix A.    Acknowledgments. 877

Appendix B.     Revision History. 880

 

 


1        Introduction

The purpose of this document is to describe test cases to demonstrate the Key Management Interoperability Protocol (KMIP) [KMIP-SPEC-1_2], [KMIP-SPEC-1_1], and [KMIP-SPEC-1_0]. The test cases illustrate that the concepts within the protocol are sound and how the protocol may be used when implementing KMIP in applications. These test cases are not intended to fully test an implementation of KMIP.  There are test cases for v1.0, v1.1 and v1.2 of the protocol.

1.1 References (non-normative)

 

[KMIP-SPEC-1_0]

Key Management Interoperability Protocol Specification Version 1.0. October 2010. OASIS Standard. http://docs.oasis-open.org/kmip/spec/v1.0/os/kmip-spec-1.0-os.doc.

 

[KMIP-SPEC-1_1]

Key Management Interoperability Protocol Specification Version 1.124 January 2013.  OASIS Standard.  http://docs.oasis-open.org/kmip/spec/v1.1/os/kmip-spec-v1.1-os.doc.

[KMIP-SPEC-1_2]

Key Management Interoperability Protocol Specification Version 1.2. Edited by Kiran Thota and Kelley Burgin. Latest version: http://docs.oasis-open.org/kmip/spec/v1.2/kmip-spec-v1.2.doc.

[KMIP-ENCODINGS]

KMIP Additional Message Encodings Version 1.0. Edited by Tim Hudson. Latest version: http://docs.oasis-open.org/kmip/kmip-addtl-msg-enc/v1.0/kmip-addtl-msg-enc-v1.0.doc.

 

2        KMIP Test Cases

The test cases define a number of request-response pairs for KMIP operations. Each test case is provided in the XML format specified in [KMIP-ENCODINGS] intended to be both human-readable and usable by automated tools. The time sequence (starting from 0) for each request-response pair is noted and line numbers are provided for ease of cross-reference for a given test sequence.

Each test case has a unique label (the section name) which includes the protocol version as part of the identifier.

Many of the test cases contained within this document depend on a specific configuration of a KMIP server to match the assumptions of the test case. Support for a test case depends on a server being configured in a manner consistent with the test case assumptions.

The test cases show one possible way to construct the messages, and the messages shown are not necessarily the only conformant constructions as many items within KMIP are optional and server behavior depends on the server's policy. Support for a test case is predicated on a server matching the test case assumptions and the behavior shown in the request-response pairs.

Where possible the flow of unique identifiers between tests, the date-time values, and other dynamic items are indicated using symbolic identifiers – in actual request and response messages these dynamic values will be filled in with valid values.

2.1 KMIP 1.0 Test Cases

2.1.1 TC-311-10 - Create / Destroy

In this test case the client issues a Create request, whereby the server creates a new symmetric key and returns the Unique Identifier. To clean up, the client then performs a Destroy operation to destroy the key.

 

0001

0002

0003

0004

0005

0006

0007

0008

0009

0010

0011

0012

0013

0014

0015

 

0016

0017

0018

0019

 

0020

0021

0022

0023

 

0024

0025

0026

0027

0028

0029

# TIME 0

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <TemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Algorithm"/>

          <AttributeValue type="Enumeration" value="AES"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Length"/>

          <AttributeValue type="Integer" value="128"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Decrypt Encrypt"/>

        </Attribute>

      </TemplateAttribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0030

0031

0032

0033

0034

0035

0036

0037

0038

0039

0040

0041

0042

0043

0044

 

0045

0046

0047

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T10:47:30+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0048

0049

0050

0051

0052

0053

0054

0055

0056

0057

0058

0059

 

0060

0061

0062

# TIME 1

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0063

0064

0065

0066

0067

0068

0069

0070

0071

0072

0073

0074

0075

0076

 

0077

0078

0079

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T10:47:31+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

2.1.2 TC-312-10 - Register / Create / Get attributes / Destroy

Here the client first registers a template object and then creates a symmetric key using the registered template. To verify that the attributes of the key were set correctly from the template, the client then issues a Get Attributes command, after which it destroys first the key and then the template.

 

0001

0002

0003

0004

0005

0006

0007

0008

0009

0010

0011

0012

0013

0014

0015

0016

0017

0018

0019

0020

0021

 

0022

0023

0024

 

0025

0026

0027

0028

 

0029

0030

0031

0032

0033

0034

0035

0036

0037

0038

0039

 

0040

0041

0042

0043

0044

0045

# TIME 0

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Register"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="Template"/>

      <TemplateAttribute>

      </TemplateAttribute>

      <Template>

        <Attribute>

          <AttributeName type="TextString" value="Object Group"/>

          <AttributeValue type="TextString" value="Group1"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Application Specific Information"/>

          <AttributeValue>

            <ApplicationNamespace type="TextString" value="ssl"/>

            <ApplicationData type="TextString"                      value="www.example.com"/>

          </AttributeValue>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Contact Information"/>

          <AttributeValue type="TextString" value="Joe"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="x-Purpose"/>

          <AttributeValue type="TextString" value="demonstration"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Name"/>

          <AttributeValue>

            <NameValue type="TextString" value="Template1"/>

            <NameType type="Enumeration"                            value="UninterpretedTextString"/>

          </AttributeValue>

        </Attribute>

      </Template>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0046

0047

0048

0049

0050

0051

0052

0053

0054

0055

0056

0057

0058

0059

 

0060

0061

0062

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T10:47:32+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Register"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0063

0064

0065

0066

0067

0068

0069

0070

0071

0072

0073

0074

0075

0076

0077

0078

 

0079

0080

0081

 

0082

0083

0084

0085

 

0086

0087

0088

0089

 

0090

0091

0092

0093

0094

0095

# TIME 1

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <TemplateAttribute>

        <Name>

          <NameValue type="TextString" value="Template1"/>

          <NameType type="Enumeration"                              value="UninterpretedTextString"/>

        </Name>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Algorithm"/>

          <AttributeValue type="Enumeration" value="AES"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Length"/>

          <AttributeValue type="Integer" value="128"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Decrypt Encrypt"/>

        </Attribute>

      </TemplateAttribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0096

0097

0098

0099

0100

0101

0102

0103

0104

0105

0106

0107

0108

0109

0110

 

0111

0112

0113

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T10:47:33+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0114

0115

0116

0117

0118

0119

0120

0121

0122

0123

0124

0125

 

0126

0127

 

0128

0129

0130

0131

0132

# TIME 2

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributes"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <AttributeName type="TextString" value="Object Group"/>

      <AttributeName type="TextString" value="Application Specific Information"/>

      <AttributeName type="TextString" value="Contact Information"/>

      <AttributeName type="TextString" value="x-Purpose"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0133

0134

0135

0136

0137

0138

0139

0140

0141

0142

0143

0144

0145

0146

 

0147

0148

0149

0150

0151

0152

 

0153

0154

0155

 

0156

0157

0158

0159

 

0160

0161

0162

0163

0164

0165

0166

0167

0168

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T10:47:34+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributes"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <Attribute>

        <AttributeName type="TextString" value="Object Group"/>

        <AttributeValue type="TextString" value="Group1"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Application Specific Information"/>

        <AttributeValue>

          <ApplicationNamespace type="TextString" value="ssl"/>

          <ApplicationData type="TextString"                        value="www.example.com"/>

        </AttributeValue>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Contact Information"/>

        <AttributeValue type="TextString" value="Joe"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="x-Purpose"/>

        <AttributeValue type="TextString" value="demonstration"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0169

0170

0171

0172

0173

0174

0175

0176

0177

0178

0179

0180

 

0181

0182

0183

# TIME 3

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0184

0185

0186

0187

0188

0189

0190

0191

0192

0193

0194

0195

0196

0197

 

0198

0199

0200

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T10:47:34+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0201

0202

0203

0204

0205

0206

0207

0208

0209

0210

0211

0212

 

0213

0214

0215

# TIME 4

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0216

0217

0218

0219

0220

0221

0222

0223

0224

0225

0226

0227

0228

0229

 

0230

0231

0232

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T10:47:34+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

2.1.3 TC-313-10 - Create / Locate / Get / Destroy

This test case tests the Locate and Get operations, in addition to the previously used operations Create and Destroy. A symmetric key is first created, and then a lookup is performed on the Name attribute using the Locate operation. Subsequently, a Get request is issued to retrieve the located key, after which the key on the server is destroyed.

 

0001

0002

0003

0004

0005

0006

0007

0008

0009

0010

0011

0012

0013

0014

0015

0016

0017

0018

 

0019

0020

0021

0022

 

0023

0024

0025

0026

 

0027

0028

0029

0030

 

0031

0032

0033

0034

 

0035

0036

0037

0038

0039

0040

# TIME 0

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <TemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Name"/>

          <AttributeValue>

            <NameValue type="TextString" value="Key1"/>

            <NameType type="Enumeration"                            value="UninterpretedTextString"/>

          </AttributeValue>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Algorithm"/>

          <AttributeValue type="Enumeration" value="DES3"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Length"/>

          <AttributeValue type="Integer" value="168"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Decrypt Encrypt"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Contact Information"/>

          <AttributeValue type="TextString" value="Joe"/>

        </Attribute>

      </TemplateAttribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0041

0042

0043

0044

0045

0046

0047

0048

0049

0050

0051

0052

0053

0054

0055

 

0056

0057

0058

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T10:47:35+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0059

0060

0061

0062

0063

0064

0065

0066

0067

0068

0069

0070

0071

0072

0073

0074

0075

0076

0077

0078

 

0079

0080

0081

0082

0083

# TIME 1

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Object Type"/>

        <AttributeValue type="Enumeration" value="SymmetricKey"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Name"/>

        <AttributeValue>

          <NameValue type="TextString" value="Key1"/>

          <NameType type="Enumeration"                              value="UninterpretedTextString"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0084

0085

0086

0087

0088

0089

0090

0091

0092

0093

0094

0095

0096

0097

 

0098

0099

0100

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T10:47:36+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0101

0102

0103

0104

0105

0106

0107

0108

0109

0110

0111

0112

 

0113

0114

0115

# TIME 2

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0116

0117

0118

0119

0120

0121

0122

0123

0124

0125

0126

0127

0128

0129

0130

 

0131

0132

0133

0134

0135

 

0136

0137

0138

0139

0140

0141

0142

0143

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T10:47:36+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <SymmetricKey>

        <KeyBlock>

          <KeyFormatType type="Enumeration" value="Raw"/>

          <KeyValue>

            <KeyMaterial type="ByteString"                          value="c8e51523f73d6ee9f40eab7cd06825499d8c0bd0739e1046"/>

          </KeyValue>

          <CryptographicAlgorithm type="Enumeration" value="DES3"/>

          <CryptographicLength type="Integer" value="168"/>

        </KeyBlock>

      </SymmetricKey>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0144

0145

0146

0147

0148

0149

0150

0151

0152

0153

0154

0155

 

0156

0157

0158

# TIME 3

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0159

0160

0161

0162

0163

0164

0165

0166

0167

0168

0169

0170

0171

0172

 

0173

0174

0175

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T10:47:36+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0176

0177

0178

0179

0180

0181

0182

0183

0184

0185

0186

0187

0188

0189

 

0190

0191

0192

0193

# TIME 4

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Unique Identifier"/>

        <AttributeValue type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0194

0195

0196

0197

0198

0199

0200

0201

0202

0203

0204

0205

0206

0207

0208

0209

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T10:47:36+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

2.1.4 TC-314-10 - Dual Client Test Case, ID Placeholder-linked Locate & Get Batch

This test case has two clients performing operations on the same key. The first client initially registers a template and creates a symmetric key using that template. The second client then does a batched Locate and Get using the ID Placeholder to retrieve the key. The second client thereafter performs a number of operations on the key (Get Attribute List, Get Attribute, Add Attribute, Modify Attribute and Delete Attribute), before the first client finally destroys the key and the template. The first client also tries to Get the key and the template after they have been destroyed, but the Get operation fails in both cases.  This test case demonstrates the fact that it is possible for two clients to cooperate and use the same managed object while only having knowledge of a single pre-agreed Name attribute value and without having to share any other information.

 

0001

0002

0003

0004

0005

0006

0007

0008

0009

0010

0011

0012

0013

0014

0015

0016

0017

 

0018

0019

0020

0021

 

0022

0023

0024

0025

0026

0027

0028

 

0029

0030

0031

0032

0033

0034

# TIME 0

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Register"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="Template"/>

      <TemplateAttribute>

      </TemplateAttribute>

      <Template>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Algorithm"/>

          <AttributeValue type="Enumeration" value="AES"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Length"/>

          <AttributeValue type="Integer" value="128"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Name"/>

          <AttributeValue>

            <NameValue type="TextString" value="Template1"/>

            <NameType type="Enumeration"                            value="UninterpretedTextString"/>

          </AttributeValue>

        </Attribute>

      </Template>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0035

0036

0037

0038

0039

0040

0041

0042

0043

0044

0045

0046

0047

0048

 

0049

0050

0051

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:25+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Register"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0052

0053

0054

0055

0056

0057

0058

0059

0060

0061

0062

0063

0064

0065

0066

0067

 

0068

0069

0070

0071

0072

0073

 

0074

0075

0076

0077

 

0078

0079

0080

0081

 

0082

0083

0084

0085

0086

0087

# TIME 1

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <TemplateAttribute>

        <Name>

          <NameValue type="TextString" value="Template1"/>

          <NameType type="Enumeration"                              value="UninterpretedTextString"/>

        </Name>

        <Attribute>

          <AttributeName type="TextString" value="Name"/>

          <AttributeValue>

            <NameValue type="TextString" value="Key1"/>

            <NameType type="Enumeration"                            value="UninterpretedTextString"/>

          </AttributeValue>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Encrypt"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Contact Information"/>

          <AttributeValue type="TextString" value="Foo"/>

        </Attribute>

      </TemplateAttribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0088

0089

0090

0091

0092

0093

0094

0095

0096

0097

0098

0099

0100

0101

0102

 

0103

0104

0105

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:27+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0106

0107

0108

0109

0110

0111

0112

0113

0114

0115

0116

0117

0118

0119

0120

0121

0122

0123

0124

0125

0126

0127

 

0128

0129

0130

0131

0132

0133

0134

0135

0136

0137

0138

# TIME 2

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchOrderOption type="Boolean" value="true"/>

    <BatchCount type="Integer" value="2"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <UniqueBatchItemID type="ByteString" value="0e9e1875336e415e"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Object Type"/>

        <AttributeValue type="Enumeration" value="SymmetricKey"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Name"/>

        <AttributeValue>

          <NameValue type="TextString" value="Key1"/>

          <NameType type="Enumeration"                              value="UninterpretedTextString"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <UniqueBatchItemID type="ByteString" value="cfef21dddf1cf5e3"/>

    <RequestPayload>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0139

0140

0141

0142

0143

0144

0145

0146

0147

0148

0149

0150

0151

0152

0153

 

0154

0155

0156

0157

0158

0159

0160

0161

0162

 

0163

0164

0165

0166

0167

 

0168

0169

0170

0171

0172

0173

0174

0175

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:28+00:00"/>

    <BatchCount type="Integer" value="2"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <UniqueBatchItemID type="ByteString" value="0e9e1875336e415e"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </ResponsePayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <UniqueBatchItemID type="ByteString" value="cfef21dddf1cf5e3"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <SymmetricKey>

        <KeyBlock>

          <KeyFormatType type="Enumeration" value="Raw"/>

          <KeyValue>

            <KeyMaterial type="ByteString"                          value="755d03c639648fb5828d5f1cc9fe9b57"/>

          </KeyValue>

          <CryptographicAlgorithm type="Enumeration" value="AES"/>

          <CryptographicLength type="Integer" value="128"/>

        </KeyBlock>

      </SymmetricKey>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0176

0177

0178

0179

0180

0181

0182

0183

0184

0185

0186

0187

 

0188

0189

0190

# TIME 3

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributeList"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0191

0192

0193

0194

0195

0196

0197

0198

0199

0200

0201

0202

0203

0204

 

0205

 

0206

 

0207

0208

0209

0210

0211

0212

0213

 

0214

0215

0216

0217

0218

0219

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:28+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributeList"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <AttributeName type="TextString" value="Cryptographic Length"/>

      <AttributeName type="TextString" value="Cryptographic Algorithm"/>

      <AttributeName type="TextString" value="State"/>

      <AttributeName type="TextString" value="Digest"/>

      <AttributeName type="TextString" value="Initial Date"/>

      <AttributeName type="TextString" value="Unique Identifier"/>

      <AttributeName type="TextString" value="Name"/>

      <AttributeName type="TextString" value="Lease Time"/>

      <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

      <AttributeName type="TextString" value="Object Type"/>

      <AttributeName type="TextString" value="Contact Information"/>

      <AttributeName type="TextString" value="Last Change Date"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0220

0221

0222

0223

0224

0225

0226

0227

0228

0229

0230

0231

 

0232

0233

0234

0235

0236

# TIME 4

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributes"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <AttributeName type="TextString" value="Name"/>

      <AttributeName type="TextString" value="Contact Information"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0237

0238

0239

0240

0241

0242

0243

0244

0245

0246

0247

0248

0249

0250

 

0251

0252

0253

0254

0255

 

0256

0257

0258

0259

 

0260

0261

0262

0263

0264

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:28+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributes"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <Attribute>

        <AttributeName type="TextString" value="Name"/>

        <AttributeValue>

          <NameValue type="TextString" value="Key1"/>

          <NameType type="Enumeration"                              value="UninterpretedTextString"/>

        </AttributeValue>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Contact Information"/>

        <AttributeValue type="TextString" value="Foo"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0265

0266

0267

0268

0269

0270

0271

0272

0273

0274

0275

0276

0277

 

0278

0279

0280

0281

0282

0283

0284

0285

0286

0287

0288

 

0289

0290

0291

0292

0293

0294

0295

# TIME 5

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="2"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <UniqueBatchItemID type="ByteString" value="7a92dda525eb158a"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute1"/>

        <AttributeValue type="TextString" value="Value1"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <UniqueBatchItemID type="ByteString" value="7230f6e4d3bea249"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute2"/>

        <AttributeValue type="TextString" value="Value2"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0296

0297

0298

0299

0300

0301

0302

0303

0304

0305

0306

0307

0308

0309

0310

 

0311

0312

0313

0314

0315

0316

0317

0318

0319

0320

0321

0322

 

0323

0324

0325

0326

0327

0328

0329

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:29+00:00"/>

    <BatchCount type="Integer" value="2"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <UniqueBatchItemID type="ByteString" value="7a92dda525eb158a"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute1"/>

        <AttributeValue type="TextString" value="Value1"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <UniqueBatchItemID type="ByteString" value="7230f6e4d3bea249"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute2"/>

        <AttributeValue type="TextString" value="Value2"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0330

0331

0332

0333

0334

0335

0336

0337

0338

0339

0340

0341

0342

 

0343

0344

0345

0346

0347

0348

0349

0350

0351

0352

0353

 

0354

0355

0356

0357

0358

0359

0360

# TIME 6

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="2"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="ModifyAttribute"/>

    <UniqueBatchItemID type="ByteString" value="ba3ea60548ecb699"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute1"/>

        <AttributeValue type="TextString" value="ModifiedValue1"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="ModifyAttribute"/>

    <UniqueBatchItemID type="ByteString" value="321984e716274a3d"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute2"/>

        <AttributeValue type="TextString" value="ModifiedValue2"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0361

0362

0363

0364

0365

0366

0367

0368

0369

0370

0371

0372

0373

0374

0375

 

0376

0377

0378

0379

0380

0381

0382

0383

0384

0385

0386

0387

 

0388

0389

0390

0391

0392

0393

0394

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:30+00:00"/>

    <BatchCount type="Integer" value="2"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="ModifyAttribute"/>

    <UniqueBatchItemID type="ByteString" value="ba3ea60548ecb699"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute1"/>

        <AttributeValue type="TextString" value="ModifiedValue1"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="ModifyAttribute"/>

    <UniqueBatchItemID type="ByteString" value="321984e716274a3d"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute2"/>

        <AttributeValue type="TextString" value="ModifiedValue2"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0395

0396

0397

0398

0399

0400

0401

0402

0403

0404

0405

0406

0407

 

0408

0409

0410

0411

0412

0413

0414

0415

 

0416

0417

0418

0419

# TIME 7

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="2"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="DeleteAttribute"/>

    <UniqueBatchItemID type="ByteString" value="d5c6df842daeecd8"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <AttributeName type="TextString" value="x-attribute1"/>

    </RequestPayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="DeleteAttribute"/>

    <UniqueBatchItemID type="ByteString" value="572d4f0d433dab10"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <AttributeName type="TextString" value="x-attribute2"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0420

0421

0422

0423

0424

0425

0426

0427

0428

0429

0430

0431

0432

0433

0434

 

0435

0436

0437

0438

0439

0440

0441

0442

0443

0444

0445

0446

 

0447

0448

0449

0450

0451

0452

0453

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:30+00:00"/>

    <BatchCount type="Integer" value="2"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="DeleteAttribute"/>

    <UniqueBatchItemID type="ByteString" value="d5c6df842daeecd8"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute1"/>

        <AttributeValue type="TextString" value="ModifiedValue1"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="DeleteAttribute"/>

    <UniqueBatchItemID type="ByteString" value="572d4f0d433dab10"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute2"/>

        <AttributeValue type="TextString" value="ModifiedValue2"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0454

0455

0456

0457

0458

0459

0460

0461

0462

0463

0464

0465

 

0466

0467

0468

# TIME 8

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0469

0470

0471

0472

0473

0474

0475

0476

0477

0478

0479

0480

0481

0482

 

0483

0484

0485

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:31+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0486

0487

0488

0489

0490

0491

0492

0493

0494

0495

0496

0497

 

0498

0499

0500

# TIME 9

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0501

0502

0503

0504

0505

0506

0507

0508

0509

0510

0511

0512

0513

0514

0515

0516

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:31+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <ResultStatus type="Enumeration" value="OperationFailed"/>

    <ResultReason type="Enumeration" value="ItemNotFound"/>

    <ResultMessage type="TextString" value="Object does not exist"/>

  </BatchItem>

</ResponseMessage>

 

0517

0518

0519

0520

0521

0522

0523

0524

0525

0526

0527

0528

 

0529

0530

0531

# TIME 10

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0532

0533

0534

0535

0536

0537

0538

0539

0540

0541

0542

0543

0544

0545

 

0546

0547

0548

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:31+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0549

0550

0551

0552

0553

0554

0555

0556

0557

0558

0559

0560

 

0561

0562

0563

# TIME 11

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0564

0565

0566

0567

0568

0569

0570

0571

0572

0573

0574

0575

0576

0577

 

0578

0579

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:31+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <ResultStatus type="Enumeration" value="OperationFailed"/>

    <ResultReason type="Enumeration" value="ItemNotFound"/>

    <ResultMessage type="TextString" value="No Cryptographic Object found with given Unique Identifier"/>

  </BatchItem>

</ResponseMessage>

 

2.1.5 TC-315-10 - Register / Destroy Secret Data

In this test case the client issues a Register request containing a Secret Data object, whereby the server registers the object and returns the Unique Identifier. To clean up, the client then performs a Destroy operation to destroy the object.

 

0001

0002

0003

0004

0005

0006

0007

0008

 

0009

0010

0011

0012

 

0013

0014

0015

 

0016

 

0017

 

0018

0019

0020

0021

0022

0023

# TIME 0

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion> <BatchCount type="Integer" value="1"/>

  </RequestHeader> <BatchItem>

    <Operation type="Enumeration"                                   value="Register"/> <RequestPayload>

      <ObjectType type="Enumeration" value="SecretData"/>

      <TemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>       <AttributeValue type="Integer" value="Verify"/>

        </Attribute>

      </TemplateAttribute> <SecretData>

        <SecretDataType type="Enumeration"                          value="Password"/> <KeyBlock>

          <KeyFormatType type="Enumeration"                         value="Opaque"/> <KeyValue>

            <KeyMaterial type="ByteString"                          value="53656372657450617373776f7264"/>

          </KeyValue>

        </KeyBlock>

      </SecretData>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0024

0025

0026

0027

0028

0029

0030

0031

0032

0033

0034

0035

0036

0037

 

0038

0039

0040

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-15T10:41:21+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Register"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0041

0042

0043

0044

0045

0046

0047

0048

0049

0050

0051

0052

 

0053

0054

0055

# TIME 1

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0056

0057

0058

0059

0060

0061

0062

0063

0064

0065

0066

0067

0068

0069

 

0070

0071

0072

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-15T10:41:21+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

2.1.6 TC-32-10 - Asynchronous Locate

This test case tests the asynchronous capabilities of KMIP using the Locate operation. A key is created and then a Locate request is sent containing the Name of the created key and with the message header Asynchronous Indicator-field set to True. If the server returns an asynchronous response to the Locate, the client then polls the server until the operation is ready. If the server responded asynchronously, a subsequent Locate operation that is also handled asynchronously is then Canceled, before the key is finally destroyed.

This test case shows the use of two clients with the same assumptions as in the test case described in Section . Since the client is unable to force the server to respond asynchronously, it is possible for a server to respond synchronously to the requests issued at times 1 and 4, in which case the expected response are the ones shown at times 2 and 5, respectively. In the case of the server not responding asynchronously to the Locate requests, the client is permitted to skip the requests illustrated at time 7 and 8.

 

0001

0002

0003

0004

0005

0006

0007

0008

0009

0010

0011

0012

0013

0014

0015

 

0016

0017

0018

0019

 

0020

0021

0022

0023

0024

0025

0026

 

0027

0028

0029

0030

 

0031

0032

0033

0034

0035

0036

0037

0038

0039

0040

# TIME 0

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <TemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Algorithm"/>

          <AttributeValue type="Enumeration" value="AES"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Length"/>

          <AttributeValue type="Integer" value="128"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Name"/>

          <AttributeValue>

            <NameValue type="TextString" value="Key1"/>

            <NameType type="Enumeration"                            value="UninterpretedTextString"/>

          </AttributeValue>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Encrypt"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Object Group"/>

          <AttributeValue type="TextString" value="Group1"/>

        </Attribute>

      </TemplateAttribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0041

0042

0043

0044

0045

0046

0047

0048

0049

0050

0051

0052

0053

0054

0055

 

0056

0057

0058

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:32+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0059

0060

0061

0062

0063

0064

0065

0066

0067

0068

0069

0070

0071

0072

0073

0074

0075

0076

0077

0078

0079

 

0080

0081

0082

0083

0084

# TIME 1

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <AsynchronousIndicator type="Boolean" value="true"/>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Object Type"/>

        <AttributeValue type="Enumeration" value="SymmetricKey"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Name"/>

        <AttributeValue>

          <NameValue type="TextString" value="Key1"/>

          <NameType type="Enumeration"                              value="UninterpretedTextString"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0085

0086

0087

0088

0089

0090

0091

0092

0093

0094

0095

0096

0097

 

0098

0099

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:32+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="OperationPending"/>

    <AsynchronousCorrelationValue type="ByteString"                 value="$ASYNCHRONOUS_CORRELATION_VALUE"/>

  </BatchItem>

</ResponseMessage>

 

0100

0101

0102

0103

0104

0105

0106

0107

0108

0109

0110

0111

 

0112

0113

0114

# TIME 2

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Poll"/>

    <RequestPayload>

      <AsynchronousCorrelationValue type="ByteString"               value="$ASYNCHRONOUS_CORRELATION_VALUE"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0115

0116

0117

0118

0119

0120

0121

0122

0123

0124

0125

0126

0127

0128

 

0129

0130

0131

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:32+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0132

0133

0134

0135

0136

0137

0138

0139

0140

0141

0142

0143

 

0144

0145

0146

# TIME 3

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0147

0148

0149

0150

0151

0152

0153

0154

0155

0156

0157

0158

0159

0160

0161

 

0162

0163

0164

0165

0166

 

0167

0168

0169

0170

0171

0172

0173

0174

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:33+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <SymmetricKey>

        <KeyBlock>

          <KeyFormatType type="Enumeration" value="Raw"/>

          <KeyValue>

            <KeyMaterial type="ByteString"                          value="bef01f82dfb4682a01c2a08413834aab"/>

          </KeyValue>

          <CryptographicAlgorithm type="Enumeration" value="AES"/>

          <CryptographicLength type="Integer" value="128"/>

        </KeyBlock>

      </SymmetricKey>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0175

0176

0177

0178

0179

0180

0181

0182

0183

0184

0185

0186

0187

0188

0189

0190

0191

0192

0193

0194

0195

0196

0197

# TIME 4

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <AsynchronousIndicator type="Boolean" value="true"/>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Object Type"/>

        <AttributeValue type="Enumeration" value="SymmetricKey"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Object Group"/>

        <AttributeValue type="TextString" value="Group1"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0198

0199

0200

0201

0202

0203

0204

0205

0206

0207

0208

0209

0210

 

0211

0212

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:33+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="OperationPending"/>

    <AsynchronousCorrelationValue type="ByteString"                 value="$ASYNCHRONOUS_CORRELATION_VALUE"/>

  </BatchItem>

</ResponseMessage>

 

0213

0214

0215

0216

0217

0218

0219

0220

0221

0222

0223

0224

 

0225

0226

0227

# TIME 5

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Poll"/>

    <RequestPayload>

      <AsynchronousCorrelationValue type="ByteString"               value="$ASYNCHRONOUS_CORRELATION_VALUE"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0228

0229

0230

0231

0232

0233

0234

0235

0236

0237

0238

0239

0240

0241

 

0242

0243

0244

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:33+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0245

0246

0247

0248

0249

0250

0251

0252

0253

0254

0255

0256

 

0257

0258

0259

# TIME 6

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0260

0261

0262

0263

0264

0265

0266

0267

0268

0269

0270

0271

0272

0273

0274

 

0275

0276

0277

0278

0279

 

0280

0281

0282

0283

0284

0285

0286

0287

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:33+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <SymmetricKey>

        <KeyBlock>

          <KeyFormatType type="Enumeration" value="Raw"/>

          <KeyValue>

            <KeyMaterial type="ByteString"                          value="bef01f82dfb4682a01c2a08413834aab"/>

          </KeyValue>

          <CryptographicAlgorithm type="Enumeration" value="AES"/>

          <CryptographicLength type="Integer" value="128"/>

        </KeyBlock>

      </SymmetricKey>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0288

0289

0290

0291

0292

0293

0294

0295

0296

0297

0298

0299

0300

0301

0302

0303

0304

0305

0306

0307

0308

 

0309

0310

0311

0312

0313

# TIME 7

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <AsynchronousIndicator type="Boolean" value="true"/>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Object Type"/>

        <AttributeValue type="Enumeration" value="SymmetricKey"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Name"/>

        <AttributeValue>

          <NameValue type="TextString" value="Key1"/>

          <NameType type="Enumeration"                              value="UninterpretedTextString"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0314

0315

0316

0317

0318

0319

0320

0321

0322

0323

0324

0325

0326

 

0327

0328

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:33+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="OperationPending"/>

    <AsynchronousCorrelationValue type="ByteString"                 value="$ASYNCHRONOUS_CORRELATION_VALUE"/>

  </BatchItem>

</ResponseMessage>

 

0329

0330

0331

0332

0333

0334

0335

0336

0337

0338

0339

0340

 

0341

0342

0343

# TIME 8

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Cancel"/>

    <RequestPayload>

      <AsynchronousCorrelationValue type="ByteString"               value="$ASYNCHRONOUS_CORRELATION_VALUE"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0344

0345

0346

0347

0348

0349

0350

0351

0352

0353

0354

0355

0356

0357

 

0358

0359

0360

0361

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:33+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Cancel"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <AsynchronousCorrelationValue type="ByteString"               value="4d6bbfc35fe57fba"/>

      <CancellationResult type="Enumeration" value="Canceled"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0362

0363

0364

0365

0366

0367

0368

0369

0370

0371

0372

0373

 

0374

0375

0376

# TIME 9

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0377

0378

0379

0380

0381

0382

0383

0384

0385

0386

0387

0388

0389

0390

 

0391

0392

0393

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:34+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

2.1.7 TC-41-10 - Revoke Scenario

This test case tests the revocation aspect of the key life cycle support in KMIP. A key is created and a Get Attribute for the State-attribute reveals that the key is in Pre-active state. The Activation Date is then set, which changes the state to Active. The key is then revoked with a revocation reason of Compromised and the state subsequently changed to Compromised, but this does not stop a client from being able to add, modify and delete attributes or even get the key (since we assume here that the out-of-band registration has been used to make the server aware of the fact that the client is capable of interpreting the attributes of the key and determining what it is allowed to do with the key). To clean up, the created key is finally destroyed.

 

0001

0002

0003

0004

0005

0006

0007

0008

0009

0010

0011

0012

0013

0014

0015

 

0016

0017

0018

0019

 

0020

0021

0022

0023

0024

0025

0026

 

0027

0028

0029

0030

 

0031

0032

0033

0034

0035

0036

# TIME 0

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <TemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Algorithm"/>

          <AttributeValue type="Enumeration" value="AES"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Length"/>

          <AttributeValue type="Integer" value="128"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Name"/>

          <AttributeValue>

            <NameValue type="TextString" value="Key1"/>

            <NameType type="Enumeration"                            value="UninterpretedTextString"/>

          </AttributeValue>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Encrypt"/>

        </Attribute>

      </TemplateAttribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0037

0038

0039

0040

0041

0042

0043

0044

0045

0046

0047

0048

0049

0050

0051

 

0052

0053

0054

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:35+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0055

0056

0057

0058

0059

0060

0061

0062

0063

0064

0065

0066

 

0067

0068

0069

0070

# TIME 1

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributes"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <AttributeName type="TextString" value="State"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0071

0072

0073

0074

0075

0076

0077

0078

0079

0080

0081

0082

0083

0084

 

0085

0086

0087

0088

0089

0090

0091

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:35+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributes"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="State"/>

        <AttributeValue type="Enumeration" value="PreActive"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0092

0093

0094

0095

0096

0097

0098

0099

0100

0101

0102

0103

 

0104

0105

0106

# TIME 2

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Activate"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0107

0108

0109

0110

0111

0112

0113

0114

0115

0116

0117

0118

0119

0120

 

0121

0122

0123

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:35+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Activate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0124

0125

0126

0127

0128

0129

0130

0131

0132

0133

0134

0135

 

0136

0137

0138

0139

# TIME 3

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributes"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <AttributeName type="TextString" value="State"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0140

0141

0142

0143

0144

0145

0146

0147

0148

0149

0150

0151

0152

0153

 

0154

0155

0156

0157

0158

0159

0160

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:35+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributes"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="State"/>

        <AttributeValue type="Enumeration" value="Active"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0161

0162

0163

0164

0165

0166

0167

0168

0169

0170

0171

0172

0173

0174

0175

0176

0177

0178

0179

0180

 

0181

0182

0183

0184

0185

# TIME 4

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Object Type"/>

        <AttributeValue type="Enumeration" value="SymmetricKey"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Name"/>

        <AttributeValue>

          <NameValue type="TextString" value="Key1"/>

          <NameType type="Enumeration"                              value="UninterpretedTextString"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0186

0187

0188

0189

0190

0191

0192

0193

0194

0195

0196

0197

0198

0199

 

0200

0201

0202

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:35+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0203

0204

0205

0206

0207

0208

0209

0210

0211

0212

0213

0214

 

0215

0216

0217

# TIME 5

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0218

0219

0220

0221

0222

0223

0224

0225

0226

0227

0228

0229

0230

0231

0232

 

0233

0234

0235

0236

0237

 

0238

0239

0240

0241

0242

0243

0244

0245

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:35+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <SymmetricKey>

        <KeyBlock>

          <KeyFormatType type="Enumeration" value="Raw"/>

          <KeyValue>

            <KeyMaterial type="ByteString"                          value="ef7833ab15f5a1ee5874bc0d9bbc4be7"/>

          </KeyValue>

          <CryptographicAlgorithm type="Enumeration" value="AES"/>

          <CryptographicLength type="Integer" value="128"/>

        </KeyBlock>

      </SymmetricKey>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0246

0247

0248

0249

0250

0251

0252

0253

0254

0255

0256

0257

 

0258

0259

 

0260

0261

 

0262

0263

0264

# TIME 6

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Revoke"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <RevocationReason>

        <RevocationReasonCode type="Enumeration"                    value="KeyCompromise"/>

      </RevocationReason>

      <CompromiseOccurrenceDate type="DateTime" value="1970-01-01T00:00:06+00:00"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0265

0266

0267

0268

0269

0270

0271

0272

0273

0274

0275

0276

0277

0278

 

0279

0280

0281

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:35+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Revoke"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0282

0283

0284

0285

0286

0287

0288

0289

0290

0291

0292

0293

 

0294

0295

0296

0297

# TIME 7

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributes"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <AttributeName type="TextString" value="State"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0298

0299

0300

0301

0302

0303

0304

0305

0306

0307

0308

0309

0310

0311

 

0312

0313

0314

0315

0316

0317

0318

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:36+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributes"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="State"/>

        <AttributeValue type="Enumeration" value="Compromised"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0319

0320

0321

0322

0323

0324

0325

0326

0327

0328

0329

0330

 

0331

0332

0333

# TIME 8

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributeList"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0334

0335

0336

0337

0338

0339

0340

0341

0342

0343

0344

0345

0346

0347

 

0348

 

0349

 

0350

0351

 

0352

0353

0354

0355

0356

0357

0358

0359

0360

 

0361

0362

0363

0364

0365

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:36+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributeList"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <AttributeName type="TextString" value="Cryptographic Length"/>

      <AttributeName type="TextString" value="Cryptographic Algorithm"/>

      <AttributeName type="TextString" value="State"/>

      <AttributeName type="TextString" value="Compromise Occurrence Date"/>

      <AttributeName type="TextString" value="Compromise Date"/>

      <AttributeName type="TextString" value="Digest"/>

      <AttributeName type="TextString" value="Initial Date"/>

      <AttributeName type="TextString" value="Activation Date"/>

      <AttributeName type="TextString" value="Revocation Reason"/>

      <AttributeName type="TextString" value="Unique Identifier"/>

      <AttributeName type="TextString" value="Name"/>

      <AttributeName type="TextString" value="Lease Time"/>

      <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

      <AttributeName type="TextString" value="Object Type"/>

      <AttributeName type="TextString" value="Last Change Date"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0366

0367

0368

0369

0370

0371

0372

0373

0374

0375

0376

0377

 

0378

0379

0380

0381

# TIME 9

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributes"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <AttributeName type="TextString" value="State"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0382

0383

0384

0385

0386

0387

0388

0389

0390

0391

0392

0393

0394

0395

 

0396

0397

0398

0399

0400

0401

0402

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:36+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributes"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="State"/>

        <AttributeValue type="Enumeration" value="Compromised"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0403

0404

0405

0406

0407

0408

0409

0410

0411

0412

0413

0414

0415

 

0416

0417

0418

0419

0420

0421

0422

0423

0424

0425

0426

 

0427

0428

0429

0430

0431

0432

0433

# TIME 10

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="2"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <UniqueBatchItemID type="ByteString" value="9d407ffb45c95672"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute1"/>

        <AttributeValue type="TextString" value="Value1"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <UniqueBatchItemID type="ByteString" value="d62107c3158409d8"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute2"/>

        <AttributeValue type="TextString" value="Value2"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0434

0435

0436

0437

0438

0439

0440

0441

0442

0443

0444

0445

0446

0447

0448

 

0449

0450

0451

0452

0453

0454

0455

0456

0457

0458

0459

0460

 

0461

0462

0463

0464

0465

0466

0467

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:36+00:00"/>

    <BatchCount type="Integer" value="2"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <UniqueBatchItemID type="ByteString" value="9d407ffb45c95672"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute1"/>

        <AttributeValue type="TextString" value="Value1"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <UniqueBatchItemID type="ByteString" value="d62107c3158409d8"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute2"/>

        <AttributeValue type="TextString" value="Value2"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0468

0469

0470

0471

0472

0473

0474

0475

0476

0477

0478

0479

0480

 

0481

0482

0483

0484

0485

0486

0487

0488

0489

0490

0491

 

0492

0493

0494

0495

0496

0497

0498

# TIME 11

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="2"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="ModifyAttribute"/>

    <UniqueBatchItemID type="ByteString" value="47fb42cceca3f6ec"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute1"/>

        <AttributeValue type="TextString" value="ModifiedValue1"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="ModifyAttribute"/>

    <UniqueBatchItemID type="ByteString" value="08019a230a05e9e1"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute2"/>

        <AttributeValue type="TextString" value="ModifiedValue2"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0499

0500

0501

0502

0503

0504

0505

0506

0507

0508

0509

0510

0511

0512

0513

 

0514

0515

0516

0517

0518

0519

0520

0521

0522

0523

0524

0525

 

0526

0527

0528

0529

0530

0531

0532

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:37+00:00"/>

    <BatchCount type="Integer" value="2"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="ModifyAttribute"/>

    <UniqueBatchItemID type="ByteString" value="47fb42cceca3f6ec"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute1"/>

        <AttributeValue type="TextString" value="ModifiedValue1"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="ModifyAttribute"/>

    <UniqueBatchItemID type="ByteString" value="08019a230a05e9e1"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute2"/>

        <AttributeValue type="TextString" value="ModifiedValue2"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0533

0534

0535

0536

0537

0538

0539

0540

0541

0542

0543

0544

0545

 

0546

0547

0548

0549

0550

0551

0552

0553

 

0554

0555

0556

0557

# TIME 12

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="2"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="DeleteAttribute"/>

    <UniqueBatchItemID type="ByteString" value="3e2c080fa8806057"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <AttributeName type="TextString" value="x-attribute1"/>

    </RequestPayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="DeleteAttribute"/>

    <UniqueBatchItemID type="ByteString" value="9d55988d43d23b82"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <AttributeName type="TextString" value="x-attribute2"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0558

0559

0560

0561

0562

0563

0564

0565

0566

0567

0568

0569

0570

0571

0572

 

0573

0574

0575

0576

0577

0578

0579

0580

0581

0582

0583

0584

 

0585

0586

0587

0588

0589

0590

0591

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:37+00:00"/>

    <BatchCount type="Integer" value="2"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="DeleteAttribute"/>

    <UniqueBatchItemID type="ByteString" value="3e2c080fa8806057"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute1"/>

        <AttributeValue type="TextString" value="ModifiedValue1"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="DeleteAttribute"/>

    <UniqueBatchItemID type="ByteString" value="9d55988d43d23b82"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-attribute2"/>

        <AttributeValue type="TextString" value="ModifiedValue2"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0592

0593

0594

0595

0596

0597

0598

0599

0600

0601

0602

0603

 

0604

0605

0606

# TIME 13

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0607

0608

0609

0610

0611

0612

0613

0614

0615

0616

0617

0618

0619

0620

0621

 

0622

0623

0624

0625

0626

 

0627

0628

0629

0630

0631

0632

0633

0634

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:37+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <SymmetricKey>

        <KeyBlock>

          <KeyFormatType type="Enumeration" value="Raw"/>

          <KeyValue>

            <KeyMaterial type="ByteString"                          value="ef7833ab15f5a1ee5874bc0d9bbc4be7"/>

          </KeyValue>

          <CryptographicAlgorithm type="Enumeration" value="AES"/>

          <CryptographicLength type="Integer" value="128"/>

        </KeyBlock>

      </SymmetricKey>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0635

0636

0637

0638

0639

0640

0641

0642

0643

0644

0645

0646

 

0647

0648

0649

# TIME 14

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0650

0651

0652

0653

0654

0655

0656

0657

0658

0659

0660

0661

0662

0663

 

0664

0665

0666

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:38+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

2.1.8 TC-51-10 - Get Usage Allocation Scenario

This test case tests the usage management functionality of KMIP. A key is created and the Activation Date and Protect Stop Date attributes are set in such a way as to allow the Get Usage Allocation operation to be performed. The value of the Usage Limits attribute is set to 1000 bytes, and two subsequent requests for 500 bytes succeed (one of them also verifying the amount that can be received using the Check operation), while a third fails since the usage allocation has been used up. The key is finally revoked and destroyed. This test case shows the use of multiple clients (Client-A, Client-B and Client-C).

 

 

0001

0002

0003

0004

0005

0006

0007

0008

0009

0010

0011

0012

0013

0014

0015

 

0016

0017

0018

0019

 

0020

0021

0022

0023

0024

0025

0026

 

0027

0028

0029

0030

 

0031

0032

0033

0034

0035

0036

# TIME 0

# [Client-A]

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <TemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Algorithm"/>

          <AttributeValue type="Enumeration" value="AES"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Length"/>

          <AttributeValue type="Integer" value="128"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Name"/>

          <AttributeValue>

            <NameValue type="TextString" value="Key1"/>

            <NameType type="Enumeration"                            value="UninterpretedTextString"/>

          </AttributeValue>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Encrypt"/>

        </Attribute>

      </TemplateAttribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0037

0038

0039

0040

0041

0042

0043

0044

0045

0046

0047

0048

0049

0050

0051

 

0052

0053

0054

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-03-11T12:21:46+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

 

0055

0056

0057

0058

0059

0060

0061

0062

0063

0064

0065

0066

0067

 

0068

0069

0070

0071

0072

0073

0074

0075

0076

0077

0078

 

0079

0080

0081

0082

0083

0084

0085

# TIME 1

# [Client-A]

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="2"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <UniqueBatchItemID type="ByteString" value="d7fe2477e364ae1a"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="Activation Date"/>

        <AttributeValue type="DateTime" value="$NOW-3600"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <UniqueBatchItemID type="ByteString" value="9696012991bc8a59"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="Protect Stop Date"/>

        <AttributeValue type="DateTime" value="$NOW+600"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0086

0087

0088

0089

0090

0091

0092

0093

0094

0095

0096

0097

0098

0099

0100

 

0101

0102

0103

0104

0105

0106

0107

0108

0109

0110

0111

0112

 

0113

0114

0115

0116

0117

0118

0119

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-03-11T12:21:47+00:00"/>

    <BatchCount type="Integer" value="2"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <UniqueBatchItemID type="ByteString" value="d7fe2477e364ae1a"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="Activation Date"/>

        <AttributeValue type="DateTime" value="$NOW-3600"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <UniqueBatchItemID type="ByteString" value="9696012991bc8a59"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="Protect Stop Date"/>

        <AttributeValue type="DateTime" value="$NOW+600"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

 

0120

0121

0122

0123

0124

0125

0126

0127

0128

0129

0130

0131

 

0132

0133

0134

0135

0136

0137

0138

0139

0140

0141

# TIME 2

# [Client-A]

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="Usage Limits"/>

        <AttributeValue>

          <UsageLimitsTotal type="LongInteger" value="1000"/>

          <UsageLimitsUnit type="Enumeration" value="Byte"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0142

0143

0144

0145

0146

0147

0148

0149

0150

0151

0152

0153

0154

0155

 

0156

0157

0158

0159

0160

0161

0162

0163

0164

0165

0166

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-03-11T12:21:48+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="Usage Limits"/>

        <AttributeValue>

          <UsageLimitsTotal type="LongInteger" value="1000"/>

          <UsageLimitsCount type="LongInteger" value="1000"/>

          <UsageLimitsUnit type="Enumeration" value="Byte"/>

        </AttributeValue>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

 

0167

0168

0169

0170

0171

0172

0173

0174

0175

0176

0177

0178

0179

0180

0181

0182

0183

0184

0185

0186

 

0187

0188

0189

0190

0191

# TIME 3

# [Client-B]

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Object Type"/>

        <AttributeValue type="Enumeration" value="SymmetricKey"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Name"/>

        <AttributeValue>

          <NameValue type="TextString" value="Key1"/>

          <NameType type="Enumeration"                              value="UninterpretedTextString"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0192

0193

0194

0195

0196

0197

0198

0199

0200

0201

0202

0203

0204

0205

 

0206

0207

0208

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-03-11T12:21:48+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

 

0209

0210

0211

0212

0213

0214

0215

0216

0217

0218

0219

0220

 

0221

0222

0223

# TIME 4

# [Client-B]

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0224

0225

0226

0227

0228

0229

0230

0231

0232

0233

0234

0235

0236

0237

0238

 

0239

0240

0241

0242

0243

 

0244

0245

0246

0247

0248

0249

0250

0251

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-03-11T12:21:48+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <SymmetricKey>

        <KeyBlock>

          <KeyFormatType type="Enumeration" value="Raw"/>

          <KeyValue>

            <KeyMaterial type="ByteString"                          value="674b32b1a3266df1253b0f2c4440b0b0"/>

          </KeyValue>

          <CryptographicAlgorithm type="Enumeration" value="AES"/>

          <CryptographicLength type="Integer" value="128"/>

        </KeyBlock>

      </SymmetricKey>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

 

0252

0253

0254

0255

0256

0257

0258

0259

0260

0261

0262

0263

0264

0265

 

0266

0267

0268

0269

0270

0271

0272

0273

 

0274

0275

0276

0277

# TIME 5

# [Client-B]

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchOrderOption type="Boolean" value="true"/>

    <BatchCount type="Integer" value="2"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Check"/>

    <UniqueBatchItemID type="ByteString" value="19d4f3dc9635307a"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <UsageLimitsCount type="LongInteger" value="500"/>

    </RequestPayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="GetUsageAllocation"/>

    <UniqueBatchItemID type="ByteString" value="20c8dffd55bdeee8"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <UsageLimitsCount type="LongInteger" value="500"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0278

0279

0280

0281

0282

0283

0284

0285

0286

0287

0288

0289

0290

0291

0292

 

0293

0294

0295

0296

0297

0298

0299

0300

 

0301

0302

0303

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-03-11T12:21:49+00:00"/>

    <BatchCount type="Integer" value="2"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Check"/>

    <UniqueBatchItemID type="ByteString" value="19d4f3dc9635307a"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="GetUsageAllocation"/>

    <UniqueBatchItemID type="ByteString" value="20c8dffd55bdeee8"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

 

0304

0305

0306

0307

0308

0309

0310

0311

0312

0313

0314

0315

 

0316

0317

0318

0319

# TIME 6

# [Client-A]

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetUsageAllocation"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <UsageLimitsCount type="LongInteger" value="500"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0320

0321

0322

0323

0324

0325

0326

0327

0328

0329

0330

0331

0332

0333

 

0334

0335

0336

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-03-11T12:21:49+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetUsageAllocation"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

 

0337

0338

0339

0340

0341

0342

0343

0344

0345

0346

0347

0348

0349

0350

0351

0352

0353

0354

0355

0356

 

0357

0358

0359

0360

0361

# TIME 7

# [Client-C]

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Object Type"/>

        <AttributeValue type="Enumeration" value="SymmetricKey"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Name"/>

        <AttributeValue>

          <NameValue type="TextString" value="Key1"/>

          <NameType type="Enumeration"                              value="UninterpretedTextString"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0362

0363

0364

0365

0366

0367

0368

0369

0370

0371

0372

0373

0374

0375

 

0376

0377

0378

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-03-11T12:21:49+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

 

0379

0380

0381

0382

0383

0384

0385

0386

0387

0388

0389

0390

 

0391

0392

0393

# TIME 8

# [Client-C]

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0394

0395

0396

0397

0398

0399

0400

0401

0402

0403

0404

0405

0406

0407

0408

 

0409

0410

0411

0412

0413

 

0414

0415

0416

0417

0418

0419

0420

0421

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-03-11T12:21:49+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Get"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <SymmetricKey>

        <KeyBlock>

          <KeyFormatType type="Enumeration" value="Raw"/>

          <KeyValue>

            <KeyMaterial type="ByteString"                          value="674b32b1a3266df1253b0f2c4440b0b0"/>

          </KeyValue>

          <CryptographicAlgorithm type="Enumeration" value="AES"/>

          <CryptographicLength type="Integer" value="128"/>

        </KeyBlock>

      </SymmetricKey>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

 

0422

0423

0424

0425

0426

0427

0428

0429

0430

0431

0432

0433

 

0434

0435

0436

0437

# TIME 9

# [Client-C]

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetUsageAllocation"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <UsageLimitsCount type="LongInteger" value="500"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0438

0439

0440

0441

0442

0443

0444

0445

0446

0447

0448

0449

0450

0451

 

0452

0453

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-03-11T12:21:49+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetUsageAllocation"/>

    <ResultStatus type="Enumeration" value="OperationFailed"/>

    <ResultReason type="Enumeration" value="PermissionDenied"/>

    <ResultMessage type="TextString" value="Unable to allocate requested amount"/>

  </BatchItem>

</ResponseMessage>

 

 

0454

0455

0456

0457

0458

0459

0460

0461

0462

0463

0464

0465

0466

0467

 

0468

0469

 

0470

0471

0472

0473

0474

0475

0476

0477

 

0478

0479

0480

# TIME 10

# [Client-A]

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchOrderOption type="Boolean" value="true"/>

    <BatchCount type="Integer" value="2"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Revoke"/>

    <UniqueBatchItemID type="ByteString" value="727a212bc674b4ea"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <RevocationReason>

        <RevocationReasonCode type="Enumeration"                    value="CessationOfOperation"/>

      </RevocationReason>

    </RequestPayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <UniqueBatchItemID type="ByteString" value="1d0ebf826109b0a5"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0481

0482

0483

0484

0485

0486

0487

0488

0489

0490

0491

0492

0493

0494

0495

 

0496

0497

0498

0499

0500

0501

0502

0503

 

0504

0505

0506

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-03-11T12:21:51+00:00"/>

    <BatchCount type="Integer" value="2"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Revoke"/>

    <UniqueBatchItemID type="ByteString" value="727a212bc674b4ea"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <UniqueBatchItemID type="ByteString" value="1d0ebf826109b0a5"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

2.1.9 TC-61-10 - Import of a Third-party Key

This test case tests the import of a foreign key using the Register operation. To validate that the registered key is treated the same as a locally created key, an attribute is added to the key and then modified. Finally, the key is destroyed.

 

0001

0002

0003

0004

0005

0006

0007

0008

0009

0010

0011

0012

0013

0014

0015

 

0016

0017

0018

0019

0020

0021

0022

0023

 

0024

0025

0026

0027

0028

0029

0030

0031

# TIME 0

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Register"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <TemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Encrypt"/>

        </Attribute>

      </TemplateAttribute>

      <SymmetricKey>

        <KeyBlock>

          <KeyFormatType type="Enumeration" value="Raw"/>

          <KeyValue>

            <KeyMaterial type="ByteString"                          value="0123456789abcdef0123456789abcdef"/>

          </KeyValue>

          <CryptographicAlgorithm type="Enumeration" value="AES"/>

          <CryptographicLength type="Integer" value="128"/>

        </KeyBlock>

      </SymmetricKey>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0032

0033

0034

0035

0036

0037

0038

0039

0040

0041

0042

0043

0044

0045

 

0046

0047

0048

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:42+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Register"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0049

0050

0051

0052

0053

0054

0055

0056

0057

0058

0059

0060

 

0061

0062

0063

0064

0065

0066

0067

# TIME 1

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-provider"/>

        <AttributeValue type="TextString" value="unknown"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0068

0069

0070

0071

0072

0073

0074

0075

0076

0077

0078

0079

0080

0081

 

0082

0083

0084

0085

0086

0087

0088

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:42+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-provider"/>

        <AttributeValue type="TextString" value="unknown"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0089

0090

0091

0092

0093

0094

0095

0096

0097

0098

0099

0100

 

0101

0102

0103

0104

0105

0106

0107

# TIME 2

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="ModifyAttribute"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-provider"/>

        <AttributeValue type="TextString" value="third party"/>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0108

0109

0110

0111

0112

0113

0114

0115

0116

0117

0118

0119

0120

0121

 

0122

0123

0124

0125

0126

0127

0128

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:42+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="ModifyAttribute"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="x-provider"/>

        <AttributeValue type="TextString" value="third party"/>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0129

0130

0131

0132

0133

0134

0135

0136

0137

0138

0139

0140

 

0141

0142

0143

# TIME 3

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0144

0145

0146

0147

0148

0149

0150

0151

0152

0153

0154

0155

0156

0157

 

0158

0159

0160

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2009-11-12T11:10:42+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

2.1.10 TC-71-10 - Unrecognized Message Extension with Criticality Indicator False

A create request is issued and the request contains a Message Extension with the Criticality Indicator set to false. The server does not understand the extension, but since it is non-critical, the create request is processed normally. Subsequently, the created key is deleted.

 

0001

0002

0003

0004

0005

0006

0007

0008

0009

0010

0011

0012

0013

0014

0015

 

0016

0017

0018

0019

 

0020

0021

0022

0023

 

0024

0025

0026

0027

0028

0029

0030

0031

0032

0033

0034

0035

0036

0037

0038

0039

0040

# TIME 0

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <TemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Length"/>

          <AttributeValue type="Integer" value="128"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Algorithm"/>

          <AttributeValue type="Enumeration" value="AES"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Decrypt Encrypt"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="x-ID"/>

          <AttributeValue type="TextString" value="TC-71-10"/>

        </Attribute>

      </TemplateAttribute>

    </RequestPayload>

    <MessageExtension>

      <VendorIdentification type="TextString" value="Acme"/>

      <CriticalityIndicator type="Boolean" value="false"/>

      <VendorExtension>

        <TTLV tag="0x540001" type="TextString" value="na"/>

      </VendorExtension>

    </MessageExtension>

  </BatchItem>

</RequestMessage>

0041

0042

0043

0044

0045

0046

0047

0048

0049

0050

0051

0052

0053

0054

0055

 

0056

0057

0058

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:26:04+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0059

0060

0061

0062

0063

0064

0065

0066

0067

0068

0069

0070

 

0071

0072

0073

# TIME 1

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0074

0075

0076

0077

0078

0079

0080

0081

0082

0083

0084

0085

0086

0087

 

0088

0089

0090

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:26:04+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

2.1.11 TC-72-10 - Unrecognized Message Extension with Criticality Indicator True

A create request is issued and the request contains a Message Extension with the Criticality Indicator set to true. The server does not understand the extension, and since it is critical, the create request fails and an error is returned.

 

0001

0002

0003

0004

0005

0006

0007

0008

0009

0010

0011

0012

0013

0014

0015

 

0016

0017

0018

0019

 

0020

0021

0022

0023

 

0024

0025

0026

0027

0028

0029

0030

0031

0032

0033

0034

0035

0036

0037

0038

0039

0040

# TIME 0

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <TemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Length"/>

          <AttributeValue type="Integer" value="128"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Algorithm"/>

          <AttributeValue type="Enumeration" value="AES"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Decrypt Encrypt"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="x-ID"/>

          <AttributeValue type="TextString" value="TC-72-10"/>

        </Attribute>

      </TemplateAttribute>

    </RequestPayload>

    <MessageExtension>

      <VendorIdentification type="TextString" value="Acme"/>

      <CriticalityIndicator type="Boolean" value="true"/>

      <VendorExtension>

        <TTLV tag="0x540001" type="TextString" value="na"/>

      </VendorExtension>

    </MessageExtension>

  </BatchItem>

</RequestMessage>

0041

0042

0043

0044

0045

0046

0047

0048

0049

0050

0051

0052

0053

0054

 

0055

0056

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:26:05+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <ResultStatus type="Enumeration" value="OperationFailed"/>

    <ResultReason type="Enumeration" value="FeatureNotSupported"/>

    <ResultMessage type="TextString" value="Critical Message Extension not recognized"/>

  </BatchItem>

</ResponseMessage>

 

2.1.12 TC-81-10 - Create a Key Pair

Create a new private/public key pair. Make sure they are linked correctly by issuing Locate commands with the assigned Unique Identifiers. Finally delete both key halves.

 

0001

0002

0003

0004

0005

0006

0007

0008

0009

0010

0011

0012

0013

0014

 

0015

0016

0017

0018

 

0019

0020

0021

0022

0023

0024

0025

0026

0027

 

0028

0029

0030

0031

 

0032

0033

0034

0035

0036

0037

0038

0039

0040

 

0041

0042

0043

0044

 

0045

0046

0047

0048

0049

0050

# TIME 0

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="CreateKeyPair"/>

    <RequestPayload>

      <CommonTemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Algorithm"/>

          <AttributeValue type="Enumeration" value="RSA"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Length"/>

          <AttributeValue type="Integer" value="1024"/>

        </Attribute>

      </CommonTemplateAttribute>

      <PrivateKeyTemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Name"/>

          <AttributeValue>

            <NameValue type="TextString" value="PrivateKey1"/>

            <NameType type="Enumeration"                            value="UninterpretedTextString"/>

          </AttributeValue>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Sign"/>

        </Attribute>

      </PrivateKeyTemplateAttribute>

      <PublicKeyTemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Name"/>

          <AttributeValue>

            <NameValue type="TextString" value="PublicKey1"/>

            <NameType type="Enumeration"                            value="UninterpretedTextString"/>

          </AttributeValue>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Verify"/>

        </Attribute>

      </PublicKeyTemplateAttribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0051

0052

0053

0054

0055

0056

0057

0058

0059

0060

0061

0062

0063

0064

 

0065

 

0066

0067

0068

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:35:06+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="CreateKeyPair"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <PrivateKeyUniqueIdentifier type="TextString"                 value="$UNIQUE_IDENTIFIER_0"/>

      <PublicKeyUniqueIdentifier type="TextString"                  value="$UNIQUE_IDENTIFIER_1"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0069

0070

0071

0072

0073

0074

0075

0076

0077

0078

0079

0080

0081

0082

0083

0084

0085

0086

0087

0088

 

0089

0090

0091

0092

0093

# TIME 1

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Object Type"/>

        <AttributeValue type="Enumeration" value="PublicKey"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Link"/>

        <AttributeValue>

          <LinkType type="Enumeration" value="PrivateKeyLink"/>

          <LinkedObjectIdentifier type="TextString"                 value="$UNIQUE_IDENTIFIER_0"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0094

0095

0096

0097

0098

0099

0100

0101

0102

0103

0104

0105

0106

0107

 

0108

0109

0110

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:35:07+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0111

0112

0113

0114

0115

0116

0117

0118

0119

0120

0121

0122

0123

0124

0125

0126

0127

0128

0129

0130

 

0131

0132

0133

0134

0135

# TIME 2

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Object Type"/>

        <AttributeValue type="Enumeration" value="PrivateKey"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Link"/>

        <AttributeValue>

          <LinkType type="Enumeration" value="PublicKeyLink"/>

          <LinkedObjectIdentifier type="TextString"                 value="$UNIQUE_IDENTIFIER_1"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0136

0137

0138

0139

0140

0141

0142

0143

0144

0145

0146

0147

0148

0149

 

0150

0151

0152

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:35:07+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0153

0154

0155

0156

0157

0158

0159

0160

0161

0162

0163

0164

 

0165

0166

0167

# TIME 3

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0168

0169

0170

0171

0172

0173

0174

0175

0176

0177

0178

0179

0180

0181

 

0182

0183

0184

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:35:07+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0185

0186

0187

0188

0189

0190

0191

0192

0193

0194

0195

0196

 

0197

0198

0199

# TIME 4

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0200

0201

0202

0203

0204

0205

0206

0207

0208

0209

0210

0211

0212

0213

 

0214

0215

0216

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:35:07+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

2.1.13 TC-82-10 - Register Both Halves of a Key Pair

Register a private key and a public key and set the Link attribute to point to each other. Verify the links were set correctly by locating the keys based on the link attributes, and then delete both objects.

 

0001

0002

0003

0004

0005

0006

0007

0008

0009

0010

0011

0012

0013

0014

0015

 

0016

0017

0018

0019

0020

0021

0022

0023

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0024

0025

0026

0027

0028

0029

0030

0031

# TIME 0

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Register"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="PrivateKey"/>

      <TemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Sign"/>

        </Attribute>

      </TemplateAttribute>

      <PrivateKey>

        <KeyBlock>

          <KeyFormatType type="Enumeration" value="PKCS_8"/>

          <KeyValue>

            <KeyMaterial type="ByteString"                          value="30820276020100300d06092a864886f70d0101010500048202603082025c02010002818100930451c9ecd94f5bb9da17dd09381bd23be43eca8c7539f301fc8a8cd5d5274c3e7699dbdc711c97a7aa91e2c50a82bd0b1034f0df493dec16362427e58acce7f6ce0f9bcc617bbd8c90d0094a2703ba0d09eb19d1005f2fb265526aac75af32f8bc782cded2a57f811e03eaf67a944de5e78413dca8f232d074e6dcea4cec9f02030100010281800b6a7d736199ea48a420e4537ca0c7c046784dcbeaa63baebc0bc132787449cde8d7cad0c0c863c0fefb06c3062befc50033ecf87b4e33a9be7bcbc8f1511ae215e80deb5d8af2bd31319d7821196640935a0cd67c94599579f2100d65e038831fdafb0dbe2bbdac00a696e67e756350e1c99ace11a36dabac3ed3e730960059024100ddf672fbcc5bda3d73affc4e791e0c03390224405d69ccaabc749faa0dcd4c2583c71dde8941a7b9aa030f52ef1451466c074d4d338fe677892acd9e10fd35bd024100a98fbc3ed6b4c6f860f97165ac2f7bb6f2e2cb192a9abd49795be5bcf37d8ee69a6e169c24e5c32e4e7fa33265461407f952ba49e204818a2f785f113f922b8b0240253f9470390d39049303777ddbc9750e9d64849ce0903eae704dc9f589b7680deb9d609fd5bcd4decd6f120542e5cff5d76f2a43c8615fb5b3a9213463797aa9024100a1ddf023c0cd94c019bb26d09b9e3ca8fa971cb16aa58b9baf79d6081a1dbba452ba53653e2804ba98ff69e8bb1b3a161ea225ea501463216a8dab9b88a75e5f02406178646e112cf79d921a8a843f17f6e7ff974f688122365bf6690cdfc996e1890952eb3820dd1890ec1c8619e87a2bd38f9d03b37fac742efb748c7885942c39"/>

          </KeyValue>

          <CryptographicAlgorithm type="Enumeration" value="RSA"/>

          <CryptographicLength type="Integer" value="1024"/>

        </KeyBlock>

      </PrivateKey>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0032

0033

0034

0035

0036

0037

0038

0039

0040

0041

0042

0043

0044

0045

 

0046

0047

0048

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:49:37+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Register"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0049

0050

0051

0052

0053

0054

0055

0056

0057

0058

0059

0060

0061

0062

0063

 

0064

0065

0066

0067

0068

0069

0070

 

0071

0072

0073

0074

0075

0076

0077

0078

 

 

 

 

 

0079

0080

0081

0082

0083

0084

0085

0086

# TIME 1

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Register"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="PublicKey"/>

      <TemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Verify"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Link"/>

          <AttributeValue>

            <LinkType type="Enumeration" value="PrivateKeyLink"/>

            <LinkedObjectIdentifier type="TextString"               value="$UNIQUE_IDENTIFIER_0"/>

          </AttributeValue>

        </Attribute>

      </TemplateAttribute>

      <PublicKey>

        <KeyBlock>

          <KeyFormatType type="Enumeration" value="X_509"/>

          <KeyValue>

            <KeyMaterial type="ByteString"                          value="30819f300d06092a864886f70d010101050003818d0030818902818100930451c9ecd94f5bb9da17dd09381bd23be43eca8c7539f301fc8a8cd5d5274c3e7699dbdc711c97a7aa91e2c50a82bd0b1034f0df493dec16362427e58acce7f6ce0f9bcc617bbd8c90d0094a2703ba0d09eb19d1005f2fb265526aac75af32f8bc782cded2a57f811e03eaf67a944de5e78413dca8f232d074e6dcea4cec9f0203010001"/>

          </KeyValue>

          <CryptographicAlgorithm type="Enumeration" value="RSA"/>

          <CryptographicLength type="Integer" value="1024"/>

        </KeyBlock>

      </PublicKey>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0087

0088

0089

0090

0091

0092

0093

0094

0095

0096

0097

0098

0099

0100

 

0101

0102

0103

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:49:38+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Register"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0104

0105

0106

0107

0108

0109

0110

0111

0112

0113

0114

0115

 

0116

0117

0118

0119

0120

 

0121

0122

0123

0124

0125

# TIME 2

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="Link"/>

        <AttributeValue>

          <LinkType type="Enumeration" value="PublicKeyLink"/>

          <LinkedObjectIdentifier type="TextString"                 value="$UNIQUE_IDENTIFIER_1"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0126

0127

0128

0129

0130

0131

0132

0133

0134

0135

0136

0137

0138

0139

 

0140

0141

0142

0143

0144

 

0145

0146

0147

0148

0149

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:49:38+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="AddAttribute"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <Attribute>

        <AttributeName type="TextString" value="Link"/>

        <AttributeValue>

          <LinkType type="Enumeration" value="PublicKeyLink"/>

          <LinkedObjectIdentifier type="TextString"                 value="$UNIQUE_IDENTIFIER_1"/>

        </AttributeValue>

      </Attribute>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0150

0151

0152

0153

0154

0155

0156

0157

0158

0159

0160

0161

0162

0163

0164

0165

0166

0167

0168

0169

 

0170

0171

0172

0173

0174

# TIME 3

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Object Type"/>

        <AttributeValue type="Enumeration" value="PublicKey"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Link"/>

        <AttributeValue>

          <LinkType type="Enumeration" value="PrivateKeyLink"/>

          <LinkedObjectIdentifier type="TextString"                 value="$UNIQUE_IDENTIFIER_0"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0175

0176

0177

0178

0179

0180

0181

0182

0183

0184

0185

0186

0187

0188

 

0189

0190

0191

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:49:38+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0192

0193

0194

0195

0196

0197

0198

0199

0200

0201

0202

0203

0204

0205

0206

0207

0208

0209

0210

0211

 

0212

0213

0214

0215

0216

# TIME 4

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Object Type"/>

        <AttributeValue type="Enumeration" value="PrivateKey"/>

      </Attribute>

      <Attribute>

        <AttributeName type="TextString" value="Link"/>

        <AttributeValue>

          <LinkType type="Enumeration" value="PublicKeyLink"/>

          <LinkedObjectIdentifier type="TextString"                 value="$UNIQUE_IDENTIFIER_1"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0217

0218

0219

0220

0221

0222

0223

0224

0225

0226

0227

0228

0229

0230

 

0231

0232

0233

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:49:39+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0234

0235

0236

0237

0238

0239

0240

0241

0242

0243

0244

0245

 

0246

0247

0248

# TIME 5

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0249

0250

0251

0252

0253

0254

0255

0256

0257

0258

0259

0260

0261

0262

 

0263

0264

0265

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:49:39+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0266

0267

0268

0269

0270

0271

0272

0273

0274

0275

0276

0277

 

0278

0279

0280

# TIME 6

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0281

0282

0283

0284

0285

0286

0287

0288

0289

0290

0291

0292

0293

0294

 

0295

0296

0297

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T08:49:39+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Destroy"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

2.1.14 TC-91-10 - Create a Key, Re-key

Create a symmetric key with a specific name, and then use Locate to find the key. After using Re-key to create a new key, verify that the name was removed from the existing key and copied to the new key. Also verify that the key material for the old key is still retrievable. To clean up, both keys are deleted.

 

0001

0002

0003

0004

0005

0006

0007

0008

0009

0010

0011

0012

0013

0014

0015

 

0016

0017

0018

0019

 

0020

0021

0022

0023

 

0024

0025

0026

0027

0028

0029

0030

 

0031

0032

0033

0034

0035

0036

# TIME 0

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <RequestPayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <TemplateAttribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Algorithm"/>

          <AttributeValue type="Enumeration" value="AES"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Length"/>

          <AttributeValue type="Integer" value="128"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Cryptographic Usage Mask"/>

          <AttributeValue type="Integer" value="Decrypt Encrypt"/>

        </Attribute>

        <Attribute>

          <AttributeName type="TextString" value="Name"/>

          <AttributeValue>

            <NameValue type="TextString" value="rekeyKey"/>

            <NameType type="Enumeration"                            value="UninterpretedTextString"/>

          </AttributeValue>

        </Attribute>

      </TemplateAttribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0037

0038

0039

0040

0041

0042

0043

0044

0045

0046

0047

0048

0049

0050

0051

 

0052

0053

0054

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T09:07:06+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Create"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <ObjectType type="Enumeration" value="SymmetricKey"/>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0055

0056

0057

0058

0059

0060

0061

0062

0063

0064

0065

0066

0067

0068

0069

0070

 

0071

0072

0073

0074

0075

# TIME 1

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Name"/>

        <AttributeValue>

          <NameValue type="TextString" value="rekeyKey"/>

          <NameType type="Enumeration"                              value="UninterpretedTextString"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0076

0077

0078

0079

0080

0081

0082

0083

0084

0085

0086

0087

0088

0089

 

0090

0091

0092

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T09:07:06+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0093

0094

0095

0096

0097

0098

0099

0100

0101

0102

0103

0104

 

0105

0106

0107

# TIME 2

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="ReKey"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0108

0109

0110

0111

0112

0113

0114

0115

0116

0117

0118

0119

0120

0121

 

0122

0123

0124

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T09:07:07+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="ReKey"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0125

0126

0127

0128

0129

0130

0131

0132

0133

0134

0135

0136

0137

0138

0139

0140

 

0141

0142

0143

0144

0145

# TIME 3

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <RequestPayload>

      <Attribute>

        <AttributeName type="TextString" value="Name"/>

        <AttributeValue>

          <NameValue type="TextString" value="rekeyKey"/>

          <NameType type="Enumeration"                              value="UninterpretedTextString"/>

        </AttributeValue>

      </Attribute>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0146

0147

0148

0149

0150

0151

0152

0153

0154

0155

0156

0157

0158

0159

 

0160

0161

0162

<ResponseMessage>

  <ResponseHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <TimeStamp type="DateTime" value="2010-02-11T09:07:07+00:00"/>

    <BatchCount type="Integer" value="1"/>

  </ResponseHeader>

  <BatchItem>

    <Operation type="Enumeration" value="Locate"/>

    <ResultStatus type="Enumeration" value="Success"/>

    <ResponsePayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_1"/>

    </ResponsePayload>

  </BatchItem>

</ResponseMessage>

 

0163

0164

0165

0166

0167

0168

0169

0170

0171

0172

0173

0174

 

0175

0176

0177

0178

# TIME 4

<RequestMessage>

  <RequestHeader>

    <ProtocolVersion>

      <ProtocolVersionMajor type="Integer" value="1"/>

      <ProtocolVersionMinor type="Integer" value="0"/>

    </ProtocolVersion>

    <BatchCount type="Integer" value="1"/>

  </RequestHeader>

  <BatchItem>

    <Operation type="Enumeration" value="GetAttributes"/>

    <RequestPayload>

      <UniqueIdentifier type="TextString"                           value="$UNIQUE_IDENTIFIER_0"/>

      <AttributeName type="TextString" value="Name"/>

    </RequestPayload>

  </BatchItem>

</RequestMessage>

0179

0180

0181

0182

0183

0184

0185

0186

0187

0188

0189

0190

0191

0192

 

0193

0194

0195

<ResponseMessage>

  <ResponseHeader>