Kmip 1.0 Spec Ed 0.98

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 135

1

2TBD (Key Management Interoperability


3Protocol)

4Editor’s Draft 0.98


527 August3 September 2009
6Specification URIs:
7This Version:
8 TBD.html
9 TBD.doc (Authoritative)
10 TBD.pdf
11Previous Version:
12 TBD.html
13 TBD.doc (Authoritative)
14 TBD.pdf
15Latest Version:
16 TBD.html
17 TBD.doc
18 TBD.pdf
19Technical Committee:
20 OASIS Key Management Interoperability Protocol (KMIP) TC
21Chair(s):
22 Robert Griffin
23 Subhash SankuratripatiAnthony Nadalin
24Editor(s):
25 Robert Haas
26 Indra Fitzgerald
27Related work:
28 This specification replaces or supersedes:
29  None
30 This specification is related to:
31  TBD
32Declared XML Namespace(s):
33 TBD
34Abstract:
35 This document is intended for developers and architects who wish to design systems and
36 applications that interoperate using the Key Management Interoperability Protocol specification.
37Status:
38 This document was last revised or approved by the Key Management Interoperability Protocol TC
39 on the above date. The level of approval is also listed above. Check the “Latest Version” or
40 “Latest Approved Version” location noted above for possible later revisions of this document.

1kmip-1.0-spec-ed-0.98 3 September 2009


2Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 1 of 135
41 Technical Committee members should send comments on this specification to the Technical
42 Committee’s email list. Others should send comments to the Technical Committee by using the
43 “Send A Comment” button on the Technical Committee’s web page at http://www.oasis-
44 open.org/committees/kmip/.
45 For information on whether any patents have been disclosed that may be essential to
46 implementing this specification, and any offers of patent licensing terms, please refer to the
47 Intellectual Property Rights section of the Technical Committee web page (http://www.oasis-
48 open.org/committees/kmip/ipr.php.
49 The non-normative errata page for this specification is located at http://www.oasis-
50 open.org/committees/kmip/.

4kmip-1.0-spec-ed-0.98 3 September 2009


5Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 2 of 135
51Notices

52Copyright © OASIS® 2009. All Rights Reserved.


53All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual
54Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.
55This document and translations of it may be copied and furnished to others, and derivative works that
56comment on or otherwise explain it or assist in its implementation may be prepared, copied, published,
57and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice
58and this section are included on all such copies and derivative works. However, this document itself may
59not be modified in any way, including by removing the copyright notice or references to OASIS, except as
60needed for the purpose of developing any document or deliverable produced by an OASIS Technical
61Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must
62be followed) or as required to translate it into languages other than English.
63The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors
64or assigns.
65This document and the information contained herein is provided on an "AS IS" basis and OASIS
66DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
67WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
68OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
69PARTICULAR PURPOSE.
70OASIS requests that any OASIS Party or any other party that believes it has patent claims that would
71necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard,
72to notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to
73such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that
74produced this specification.
75OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of
76any patent claims that would necessarily be infringed by implementations of this specification by a patent
77holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR
78Mode of the OASIS Technical Committee that produced this specification. OASIS may include such
79claims on its website, but disclaims any obligation to do so.
80OASIS takes no position regarding the validity or scope of any intellectual property or other rights that
81might be claimed to pertain to the implementation or use of the technology described in this document or
82the extent to which any license under such rights might or might not be available; neither does it represent
83that it has made any effort to identify any such rights. Information on OASIS' procedures with respect to
84rights in any document or deliverable produced by an OASIS Technical Committee can be found on the
85OASIS website. Copies of claims of rights made available for publication and any assurances of licenses
86to be made available, or the result of an attempt made to obtain a general license or permission for the
87use of such proprietary rights by implementers or users of this OASIS Committee Specification or OASIS
88Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any
89information or list of intellectual property rights will at any time be complete, or that any claims in such list
90are, in fact, Essential Claims.
91The names "OASIS", [insert specific trademarked names and abbreviations here] are trademarks of
92OASIS, the owner and developer of this specification, and should be used only to refer to the organization
93and its official outputs. OASIS welcomes reference to, and implementation and use of, specifications,
94while reserving the right to enforce its marks against misleading uses. Please see http://www.oasis-
95open.org/who/trademark.php for above guidance.

7kmip-1.0-spec-ed-0.98 3 September 2009


8Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 3 of 135
96Table of Contents
971 Introduction............................................................................................................................................... 8
98 1.1 Document Roadmap.......................................................................................................................... 8
99 1.2 Goals and Requirements................................................................................................................... 8
100 1.3 Notational Conventions..................................................................................................................... 8
101 1.4 Namespaces..................................................................................................................................... 8
102 1.5 Terminology....................................................................................................................................... 8
103 1.6 Normative References....................................................................................................................... 9
104 1.7 Non-normative References................................................................................................................ 9
105 1.8 Compliance....................................................................................................................................... 9
1062 Objects................................................................................................................................................... 10
107 2.1 Base Objects................................................................................................................................... 10
108 2.1.1 Attribute.................................................................................................................................... 10
109 2.1.2 Credential................................................................................................................................. 10
110 2.1.3 Key Block................................................................................................................................. 11
111 2.1.4 Key Value................................................................................................................................. 12
112 2.1.5 Key Wrapping Data.................................................................................................................. 13
113 2.1.6 Key Wrapping Specification..................................................................................................... 14
114 2.1.7 Transparent Key Structures..................................................................................................... 15
115 2.1.8 Template-Attribute Structures.................................................................................................. 18
116 2.2 Managed Objects............................................................................................................................ 18
117 2.2.1 Certificate................................................................................................................................. 18
118 2.2.2 Symmetric Key......................................................................................................................... 19
119 2.2.3 Public Key................................................................................................................................ 19
120 2.2.4 Private Key............................................................................................................................... 19
121 2.2.5 Split Key................................................................................................................................... 19
122 2.2.6 Template.................................................................................................................................. 21
123 2.2.7 Secret Data.............................................................................................................................. 21
124 2.2.8 Opaque Object......................................................................................................................... 22
1253 Attributes................................................................................................................................................ 23
126 3.1 Unique Identifier.............................................................................................................................. 23
127 3.2 Name............................................................................................................................................... 23
128 3.3 Object Type..................................................................................................................................... 24
129 3.4 Cryptographic Algorithm.................................................................................................................. 24
130 3.5 Cryptographic Length...................................................................................................................... 25
131 3.6 Cryptographic Parameters............................................................................................................... 25
132 3.7 Certificate Type............................................................................................................................... 27
133 3.8 Certificate Issuer............................................................................................................................. 27
134 3.9 Certificate Subject........................................................................................................................... 28
135 3.10 Digest............................................................................................................................................ 28
136 3.11 Operation Policy Name.................................................................................................................. 29
137 3.11.1 Operations outside of operation policy control.......................................................................30
138 3.11.2 Default Operation Policy......................................................................................................... 30

10kmip-1.0-spec-ed-0.98 3 September 2009


11Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 4 of 135
139 3.12 Cryptographic Usage Mask........................................................................................................... 33
140 3.13 Lease Time.................................................................................................................................... 34
141 3.14 Usage Limits.................................................................................................................................. 35
142 3.15 State.............................................................................................................................................. 36
143 3.16 Initial Date..................................................................................................................................... 38
144 3.17 Activation Date.............................................................................................................................. 38
145 3.18 Process Start Date........................................................................................................................ 39
146 3.19 Protect Stop Date.......................................................................................................................... 39
147 3.20 Deactivation Date.......................................................................................................................... 40
148 3.21 Destroy Date................................................................................................................................. 41
149 3.22 Compromise Occurrence Date...................................................................................................... 41
150 3.23 Compromise Date.......................................................................................................................... 41
151 3.24 Revocation Reason....................................................................................................................... 42
152 3.25 Archive Date.................................................................................................................................. 43
153 3.26 Object Group................................................................................................................................. 43
154 3.27 Link................................................................................................................................................ 43
155 3.28 Application Specific Information.................................................................................................... 45
156 3.29 Contact Information....................................................................................................................... 45
157 3.30 Last Changed Date........................................................................................................................ 46
158 3.31 Custom Attribute............................................................................................................................ 46
1594 Client-to-Server Operations.................................................................................................................... 47
160 4.1 Create.............................................................................................................................................. 48
161 4.2 Create Key Pair............................................................................................................................... 49
162 4.3 Register........................................................................................................................................... 50
163 4.4 Re-key............................................................................................................................................. 51
164 4.5 Derive Key....................................................................................................................................... 53
165 4.6 Certify.............................................................................................................................................. 56
166 4.7 Re-certify......................................................................................................................................... 57
167 4.8 Locate.............................................................................................................................................. 59
168 4.9 Check.............................................................................................................................................. 60
169 4.10 Get................................................................................................................................................. 62
170 4.11 Get Attributes................................................................................................................................ 62
171 4.12 Get Attribute List............................................................................................................................ 63
172 4.13 Add Attribute.................................................................................................................................. 63
173 4.14 Modify Attribute............................................................................................................................. 64
174 4.15 Delete Attribute.............................................................................................................................. 64
175 4.16 Obtain Lease................................................................................................................................. 65
176 4.17 Get Usage Allocation..................................................................................................................... 66
177 4.18 Activate.......................................................................................................................................... 67
178 4.19 Revoke.......................................................................................................................................... 67
179 4.20 Destroy.......................................................................................................................................... 68
180 4.21 Archive.......................................................................................................................................... 68
181 4.22 Recover......................................................................................................................................... 68
182 4.23 Validate......................................................................................................................................... 69
183 4.24 Query............................................................................................................................................. 69
13kmip-1.0-spec-ed-0.98 3 September 2009
14Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 5 of 135
184 4.25 Cancel........................................................................................................................................... 71
185 4.26 Poll................................................................................................................................................ 72
1865 Server-to-Client Operations.................................................................................................................... 72
187 5.1 Notify............................................................................................................................................... 72
188 5.2 Put................................................................................................................................................... 72
1896 Message Contents.................................................................................................................................. 73
190 6.1 Protocol Version.............................................................................................................................. 73
191 6.2 Operation......................................................................................................................................... 74
192 6.3 Maximum Response Size................................................................................................................ 74
193 6.4 Unique Batch Item ID...................................................................................................................... 74
194 6.5 Time Stamp..................................................................................................................................... 74
195 6.6 Authentication.................................................................................................................................. 75
196 6.7 Asynchronous Indicator................................................................................................................... 75
197 6.8 Asynchronous Correlation Value..................................................................................................... 75
198 6.9 Result Status................................................................................................................................... 75
199 6.10 Result Reason............................................................................................................................... 76
200 6.11 Result Message............................................................................................................................. 76
201 6.12 Batch Order Option........................................................................................................................ 77
202 6.13 Batch Error Continuation Option.................................................................................................... 77
203 6.14 Batch Count................................................................................................................................... 77
204 6.15 Batch Item..................................................................................................................................... 77
205 6.16 Message Extension....................................................................................................................... 78
2067 Message Format..................................................................................................................................... 78
207 7.1 Message Structure.......................................................................................................................... 78
208 7.2 Synchronous Operations................................................................................................................. 79
209 7.3 Asynchronous Operations............................................................................................................... 80
2108 Authentication......................................................................................................................................... 81
2119 Message Encoding................................................................................................................................. 82
212 9.1 TTLV Encoding................................................................................................................................ 82
213 9.1.1 TTLV Encoding Fields.............................................................................................................. 82
214 9.1.2 Examples................................................................................................................................. 84
215 9.1.3 Defined Values......................................................................................................................... 85
216 9.2 XML Encoding............................................................................................................................... 104
21710 Transport............................................................................................................................................ 104
21811 Error Handling..................................................................................................................................... 104
219 11.1 General........................................................................................................................................ 104
220 11.2 Create.......................................................................................................................................... 105
221 11.3 Create Key Pair........................................................................................................................... 106
222 11.4 Register....................................................................................................................................... 106
223 11.5 Re-key......................................................................................................................................... 107
224 11.6 Derive Key................................................................................................................................... 108
225 11.7 Certify.......................................................................................................................................... 108
226 11.8 Re-certify..................................................................................................................................... 109
227 11.9 Locate.......................................................................................................................................... 109
228 11.10 Check........................................................................................................................................ 109
16kmip-1.0-spec-ed-0.98 3 September 2009
17Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 6 of 135
229 11.11 Get............................................................................................................................................. 110
230 11.12 Get Attributes............................................................................................................................ 110
231 11.13 Get Attribute List........................................................................................................................ 110
232 11.14 Add Attribute.............................................................................................................................. 111
233 11.15 Modify Attribute......................................................................................................................... 111
234 11.16 Delete Attribute.......................................................................................................................... 112
235 11.17 Obtain Lease............................................................................................................................. 112
236 11.18 Get Usage Allocation................................................................................................................. 112
237 11.19 Activate...................................................................................................................................... 113
238 11.20 Revoke...................................................................................................................................... 113
239 11.21 Destroy...................................................................................................................................... 113
240 11.22 Archive...................................................................................................................................... 113
241 11.23 Recover..................................................................................................................................... 114
242 11.24 Validate..................................................................................................................................... 114
243 11.25 Query......................................................................................................................................... 114
244 11.26 Cancel....................................................................................................................................... 114
245 11.27 Poll............................................................................................................................................ 114
246 11.28 Batch Items............................................................................................................................... 114
24712 Security Considerations...................................................................................................................... 115
248A. Attribute Cross-reference.................................................................................................................... 116
249B. Tag Cross-reference........................................................................................................................... 118
250C. Operation and Object Cross-reference...............................................................................................123
251D. Acronyms............................................................................................................................................ 124
252E. List of Figures and Tables................................................................................................................... 126
253F. Acknowledgements............................................................................................................................. 133
254G. Revision History.................................................................................................................................. 134
255

19kmip-1.0-spec-ed-0.98 3 September 2009


20Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 7 of 135
2561 Introduction
257This document is intended as a specification of the protocol used for the communication between clients
258and servers to perform certain management operations on objects stored and maintained by a key
259management system. These objects are referred to as Managed Objects in this specification. They
260include symmetric and asymmetric cryptographic keys, digital certificates, and templates used to simplify
261the creation of objects and control their use. Managed Objects are managed with operations that include
262the ability to generate cryptographic keys, register objects with the key management system, obtain
263objects from the system, destroy objects from the system, and search for objects maintained by the
264system. Managed Objects also have associated attributes, which are named values stored by the key
265management system and are able to be obtained from the system via operations. Certain attributes
266mayare also be changed, added, modified, or deleted by operations.
267The protocol specified in this document includes several certificate-related functions for which there are a
268number of existing protocols – namely Validate (e.g., SVP or XKMS), Certify (e.g. CMP, CMC, SCEP) and
269Re-certify (e.g. CMP, CMC, SCEP). The protocol does not attempt to define a comprehensive certificate
270management protocol such (i.e., as would be required for a certification authority). However, it does
271include functions that are needed to allow a key server to provide a proxy for certificate management
272functions.
273In addition to the normative definitions for managed objects, operations and attributes, this specification
274also includes normative definitions for the following aspects of the protocol:
275  The expected behavior of the server and client as a result of operations
276  Message contents and formats
277  Authentication profiles for clients and servers
278  Message encoding (including enumerations)
279  Error handling
280This specification is complemented by two other documents. The Usage Guide provides illustrative
281information on using the protocol. The Test Specification provides samples of protocol messages
282corresponding to a set of defined test cases.

1.1283Document Roadmap
284TBD

1.2285Goals and Requirements


286TBD

1.3287Notational Conventions
288TBD

1.4289Namespaces
290TBD

1.5291Terminology
292TBD

22kmip-1.0-spec-ed-0.98 3 September 2009


23Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 8 of 135
1.6293Normative References
294TBD
295RFC 2119, “Key words for use in RFCs to Indicate Requirement Levels”, S. Bradner, March 1997. [The
296Conformance Language proposal is missing]

1.7297Non-normative References
298TBD

1.8299Compliance
300TBD
301The key words "SHALL", "SHALL NOT", "REQUIRED", "SHOULD", "SHOULD NOT",
302"RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC
3032119. The words ‘must’, ‘can’, and ‘will’ are forbidden. [The Conformance Language proposal is missing]

25kmip-1.0-spec-ed-0.98 3 September 2009


26Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 9 of 135
304Objects
305The following subsections describe the objects that are passed between the clients and servers of the key
306management system. Some of these object types, called Base Objects, are used only in the protocol
307itself, and are not considered Managed Objects. Key management systems mayMAY choose to support a
308subset of the Managed Objects. The object descriptions refer to the primitive data types of which they are
309composed. These primitive data types are
310  Integer
311  Long Integer
312  Big Integer
313  Enumeration – choices from a predefined list of values
314  Boolean
315  Text String – string of characters representing human-readable text
316  Octet String – sequence of unencoded byte values
317  Date-Time – date and time, with a granularity of one second
318  Interval – time interval expressed in seconds
319 Structures are composed of ordered lists of primitive data types or structures.

1.9320Base Objects
321These objects are used within the messages of the protocol, but are not objects managed by the key
322management system. They may arebe components of Managed Objects.

3231.9.1 Attribute
324An Attribute object is a structure (see Table 1) used for sending and receiving Managed Object attributes.
325The Attribute Name is a text-string that is used to identify the attribute. The Attribute Index is an index
326number assigned by the key management server when a specified named attribute is allowed to have
327multiple instances. The Attribute Index is used to identify the particular instance. Attribute Indices
328shallSHALL start with 0. The Attribute Index of an attribute shall notSHALL NOT change when other
329instances are added or deleted. For example, if a particular attribute has 4 instances with Attribute Indices
3300, 1, 2 and 3, and the instance with Attribute Index 2 is deleted, then the Attribute Index of instance 3 is
331not changed. Attributes that have a single instance have an Attribute Index of 0, which is assumed if the
332Attribute Index is not specified. The Attribute Value is either a primitive data type or structured object,
333depending on the attribute.

Object Encoding Required


Attribute Structure Yes
Attribute Name Text String Yes
Attribute Index Integer No
Attribute Value Varies, depending Yes
on attribute. See
Section 2

334 Table 1: Attribute Object Structure

28kmip-1.0-spec-ed-0.98 3 September 2009


29Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 10 of 135
3351.9.2 Credential
336A credential is a structure (see Table 2) used for client identification purposes and is not managed by the
337key management system (e.g., user id/password pairs, Kerberos tokens, etc). See Section 7.

Object Encoding Required


Credential Structure Yes
Credential Type Enumeration Yes
Credential Value Octet String Yes

338 Table 2: Credential Object Structure

3391.9.3 Key Block


340A Key Block object is a structure (see Table 3) used to encapsulate all of the information that is closely
341associated with a cryptographic key. It contains a Key Value of one of the following Key Value Types:
342  Raw – This is a key that contains only cryptographic key material, encoded as a string of bytes.
343  Opaque – This is an encoded key for which the encoding is unknown to the key management
344 system. It is encoded as a string of bytes.
345  PKCS1 – This is an encoded private key, expressed as a DER-encoded ASN.1 PKCS#1 object.
346  PKCS8 – This is an encoded private key, expressed as a DER-encoded ASN.1 PKCS#8 object,
347 supporting both RSAPrivateKey syntax and EncryptedPrivateKey.
348  Several Transparent Key types – These are algorithm-specific structures containing defined
349 values for the various key types, as defined in Section 1.9.7.
350  Extensions – These are vendor-specific extensions to allow for proprietary or legacy key formats.
351The Key Block also contains the CryptogtaphicCryptographic Algorithm and the Cryptographic Length of
352the key contained in the Key Value field. Some example values are:
353  RSA keys are typically 1024, 2048 or 3072 bits in length
354  3DES keys are typically 168 bits in length
355  AES keys are typically 128 or 256 bits in length
356The Key Block maySHALL contain a Key Wrapping Data structure , which indicates thatif the key in the
357Key Value field is wrapped (i.e., encrypted, or MACed/signed, or both).

31kmip-1.0-spec-ed-0.98 3 September 2009


32Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 11 of 135
Object Encoding Required
Key Block Structure Yes
Key Value Type Enumeration Yes
Key Value Octet String: for Yes
wrapped Key Value;
Structure: for
plaintext Key Value
Cryptographic Enumeration Yes, mayMAY be omitted
Algorithm only if this information is
available from the Key
Value. Does not apply to
Secret Data or Opaque
Objects. If present,
Cryptographic Length
shallSHALL also be present.
Cryptographic Integer Yes, mayMAY be omitted
Length only if this information is
available from the Key
Value. Does not apply to
Secret Data or Opaque
Objects. If present,
Cryptographic Algorithm
shallSHALL also be present.
Key Wrapping Data Structure No, SHALL only be present
if the key is wrapped.

358 Table 3: Key Block Object Structure

3591.9.4 Key Value


360The Key Value is used only inside a Key Block and is either an Octet String or a structure (see Table 4):
361  The Key Value structure contains the key material, either as an octet string or as a Transparent
362 Key structure (see Section 1.9.7), and optional attribute information that is associated and
363 encapsulated with the key material. This attribute information differs from the attributes
364 associated with Managed Objects, and which is obtained via the Get Attributes operation, only by
365 the fact that it is encapsulated with (and maypossibly be wrapped with) the key material itself.
366  The Key Value Octet String is the wrapped TTLV-encoded (see Section 8.1) Key Value structure.

Object Encoding Required


Key Value Structure Yes
Key Material Octet String: for Yes
Raw, Opaque,
PKCS1, PKCS8, or
Vendor Extension
Key Value types;
Structure: for
Transparent, or
Vendor Extension
Key Value Types
Attribute Attribute Object, see No. MayMAY be repeated
Section 1.9.1
34kmip-1.0-spec-ed-0.98 3 September 2009
35Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 12 of 135
367 Table 4: Key Value Object Structure

3681.9.5 Key Wrapping Data


369The Key Block mayMAY also supply optional information about a cryptographic key wrapping mechanism
370used to wrap the Key Value. This consists of a Key Wrapping Data structure (see Table 5). The Key Block
371is only used inside a Key Block.
372This structure contains fields for:
373  A Wrapping Method, which indicates the method used to wrap the Key Value.
374  Encryption Key Information, which contains the Unique Identifier value of the encryption key and
375 associated cryptographic parameters.
376  MAC/Signature Key Information, which contains the Unique Identifier value of the MAC/signature
377 key and associated cryptographic parameters.
378  A MAC/Signature, which contains the MAC or signature of the Key Value.
379  An IV/Counter/Nonce, if required by the wrapping method.
380If wrapping is used, then the whole Key Value structure is wrapped unless otherwise specified by the
381Wrapping Method. The algorithms are given by the Cryptographic Algorithm attributes of the encryption
382key and/or MAC/signature key; the block-cipher mode, padding method, and hashing algorithm used are
383given by the Cryptographic Parameters in the Encryption Key Information and/or MAC/Signature Key
384Information, or, if not present, from the Cryptographic Parameters attribute of the respective key(s).
385The following wrapping methods are currently defined:
386  Encrypt only (i.e., encryption using a symmetric key or public key, or authenticated encryption
387 algorithms that use a single key)
388  MAC/sign only (i.e., either MAC’ing the Key Value with a symmetric key, or signing the Key Value
389 with a private key)
390  Encrypt then MAC/sign
391  MAC/sign then encrypt
392  TR-31
393  Extensions

Object Encoding Required


Key Wrapping Data Structure Yes
Wrapping Method Enumeration Yes
Encryption Key Structure No. Corresponds to the key
Information that was used to encrypt the
Key Value.
MAC/Signature Key Structure No. Corresponds to the
Information symmetric key used to MAC
the Key Value or the private
key used to sign the Key
Value
MAC/Signature Octet String No
IV/Counter/Nonce Octet String No

394 Table 5: Key Wrapping Data Object Structure

37kmip-1.0-spec-ed-0.98 3 September 2009


38Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 13 of 135
395The structures of the Encryption Key Information (see Table 6) and the MAC/Signature Key Information
396(see Table 7) are as follows:

Object Encoding Required


Encryption Key Information Structure Yes
Unique Identifier Text string Yes
Cryptographic Structure No
Parameters

397 Table 6: Encryption Key Information Object Structure

Object Encoding Required


MAC/Signature Key Structure Yes
Information
Unique Identifier Text string Yes. It mayMAY be the
Unique Identifier of the
Symmetric Key used to
MAC, or of the Private Key
(or its corresponding Public
Key) used to sign.
Cryptographic Structure No
Parameters

398 Table 7: MAC/Signature Key Information Object Structure

3991.9.6 Key Wrapping Specification


400This is a separate structure (see Table 8) defined for operations that provide the option to return wrapped
401keys. The Key Wrapping Specification shallSHALL be specified inside the operation request if clients
402request the server to return a wrapped key. If Cryptographic Parameters are specified in the Encryption
403Key Information and the MAC/Signature Key Information, then the server shallSHALL verify that they
404match one of the instances of the Cryptographic Parameters attribute of the corresponding key. If
405Cryptographic Parameters are omitted, then the server shallSHALL use the Cryptographic Parameters
406attribute with the lowest Attribute Index of the corresponding key. If the corresponding key does not have
407any Cryptographic Parameters attribute, or if no match is found, then an error is returned.
408This structure contains :contains:
409  A Wrapping Method that indicates the method used to wrap the Key Value.
410  An Encryption Key Information with the Unique Identifier value of the encryption key and
411 associated cryptographic parameters.
412  A MAC/Signature Key Information with the Unique Identifier value of the MAC/signature key and
413 associated cryptographic parameters.
414  Zero or more Attribute Names to indicate the attributes to be wrapped with the key material.

40kmip-1.0-spec-ed-0.98 3 September 2009


41Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 14 of 135
Object Encoding Required
Key Wrapping Specification Structure Yes
Wrapping Method Enumeration Yes
Encryption Key Structure No
Information
MAC/Signature Key Structure No
Information
Attribute Name Text String No, MayMAY be repeated

415 Table 8: Key Wrapping Specification Object Structure


416The structures of the Encryption Key Information and the MAC/Signature Key Information are defined in
417Section 1.9.5.

4181.9.7 Transparent Key Structures


419Transparent Key structures describe key material in a form that is easily interpreted by all participants in
420the protocol. They are used in the Key Value structure.

4211.9.7.1 Transparent Symmetric Key


422If the Key Value Type in the Key Block is Transparent Symmetric Key, then Key Material is a structure as
423shown in Table 9.

Object Encoding Required


Key Material Structure Yes
Key Octet String Yes

424 Table 9: Key Material Object Structure for Transparent Symmetric Keys

4251.9.7.2 Transparent DSA Private Key


426If the Key Value Type in the Key Block is Transparent DSA Private Key, then Key Material is a structure
427as shown in Table 10.

Object Encoding Required


Key Material Structure Yes
P Big Integer Yes
Q Big Integer Yes
G Big Integer Yes
X Big Integer Yes

428 Table 10: Key Material Object Structure for Transparent DSA Private Keys
429P is the prime modulus. Q is the prime divisor of P-1. G is the generator. X is the private key (refer to
430NIST FIPS PUB 186-3).

4311.9.7.3 Transparent DSA Public Key


432If the Key Value Type in the Key Block is Transparent DSA Public Key, then Key Material is a structure as
433shown in Table 11.

43kmip-1.0-spec-ed-0.98 3 September 2009


44Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 15 of 135
Object Encoding Required
Key Material Structure Yes
P Big Integer Yes
Q Big Integer Yes
G Big Integer Yes
Y Big Integer Yes

434 Table 11: Key Material Object Structure for Transparent DSA Public Keys
435P is the prime modulus. Q is the prime divisor of P-1. G is the generator. Y is the public key (refer to NIST
436FIPS PUB 186-3).

4371.9.7.4 Transparent RSA Private Key


438If the Key Value Type in the Key Block is Transparent RSA Private Key, then Key Material is a structure
439as shown in Table 12.

Object Encoding Required


Key Material Structure Yes
Modulus Big Integer Yes
Private Exponent Big Integer No
Public Exponent Big Integer No
P Big Integer No
Q Big Integer No
Prime Exponent P Big Integer No
Prime Exponent Q Big Integer No
CRT Coefficient Big Integer No

440 Table 12: Key Material Object Structure for Transparent RSA Private Keys
441One of the following shallSHALL be present (refer to RSA PKCS#1):
442  Private Exponent
443  P and Q (the first two prime factors of Modulus)
444  Prime Exponent P and Prime Exponent Q.

4451.9.7.5 Transparent RSA Public Key


446If the Key Value Type in the Key Block is Transparent RSA Public Key, then Key Material is a structure as
447shown in Table 13.

Object Encoding Required


Key Material Structure Yes
Modulus Big Integer Yes
Public Exponent Big Integer Yes

448 Table 13: Key Material Object Structure for Transparent RSA Public Keys

46kmip-1.0-spec-ed-0.98 3 September 2009


47Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 16 of 135
4491.9.7.6 Transparent DH Private Key
450If the Key Value Type in the Key Block is Transparent DH Private Key, then Key Material is a structure as
451shown in Table 14.

Object Encoding Required


Key Material Structure Yes
P Big Integer Yes
G Big Integer Yes
Q Big Integer No
J Big Integer No
X Big Integer Yes

452 Table 14: Key Material Object Structure for Transparent DH Private Keys
453P is the prime, P = JQ + 1. G is the generator G Q = 1 mod P. Q is the prime factor of P-1. J is the cofactor.
454X is the private key (refer to ANSI X9.42).

4551.9.7.7 Transparent DH Public Key


456If the Key Value Type in the Key Block is Transparent DH Public Key, then Key Material is a structure as
457shown in Table 15.

Object Encoding Required


Key Material Structure Yes
P Big Integer Yes
G Big Integer Yes
Q Big Integer No
J Big Integer No
Y Big Integer Yes

458 Table 15: Key Material Object Structure for Transparent DH Public Keys
459P is the prime, P = JQ + 1. G is the generator G Q = 1 mod P. Q is the prime factor of P-1. J is the
460cofactor. Y is the public key (refer to ANSI X9.42).

4611.9.7.8 Transparent ECDSA Private Key


462If the Key Value Type in the Key Block is Transparent ECDSA Private Key, then Key Material is a
463structure as shown in Table 16.

Object Encoding Required


Key Material Structure Yes
Recommended Enumeration Yes
Curve
D Big Integer Yes

464 Table 16: Key Material Object Structure for Transparent ECDSA Private Keys
465D is the private key (refer to NIST FIPS PUB 186-3).

49kmip-1.0-spec-ed-0.98 3 September 2009


50Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 17 of 135
4661.9.7.9 Transparent ECDSA Public Key
467If the Key Value Type in the Key Block is Transparent ECDSA Public Key, then Key Material is a structure
468as shown in Table 17.

Object Encoding Required


Key Material Structure Yes
Recommended Enumeration Yes
Curve
Q String Octet String Yes

469 Table 17: Key Material Object Structure for Transparent ECDSA Public Keys
470Q String is the public key (refer to NIST FIPS PUB 186-3).

4711.9.7.10 Transparent ECDH Private Key


472If the Key Value Type in the Key Block is Transparent ECDH Private Key, then Key Material is a structure
473as shown in Table 18.

Object Encoding Required


Key Material Structure Yes
Recommended Enumeration Yes
Curve
D Big Integer Yes

474 Table 18: Key Material Object Structure for Transparent ECDH Private Keys

4751.9.7.11Transparent ECDH Public Key


476If the Key Value Type in the Key Block is Transparent ECDH Public Key, then Key Material is a structure
477as shown in Table 19.

Object Encoding Required


Key Material Structure Yes
Recommended Enumeration Yes
Curve
Q String Octet String Yes

478 Table 19: Key Material Object Structure for Transparent ECDH Public Keys

4791.9.8 Template-Attribute Structures


480These structures are used in various operations to provide the desired attribute values and/or template
481names in the request and to return the actual attribute values in the response.
482The Template-Attribute, Common Template-Attribute, Private Key Template-Attribute, and Public Key
483Template-Attribute structures are defined identically as follows:

52kmip-1.0-spec-ed-0.98 3 September 2009


53Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 18 of 135
Object Encoding Required
Template-Attribute, Structure Yes
Common Template-Attribute,
Private Key Template-
Attribute,
Public Key Template-Attribute
Name Structure, see No, MayMAY be repeated.
Section 2.2
Attribute Attribute Object, No, MayMAY be repeated
see Section 1.9.1

484 Table 20: Template-Attribute Object Structure


485Name is the Name attribute of the Template object defined in Section 1.10.6.

1.10
486Managed Objects
487Managed Objects are objects that are the subjects of key management operations, which are described in
488Sections 3and 4. Managed Cryptographic Objects are the subset of Managed Objects that contain
489cryptographic material (e.g. certificates, keys, and secret data).

4901.10.1 Certificate
491A Managed Cryptographic Object that is a digital certificate (e.g., an encoded X.509 certificate).

Object Encoding Required


Certificate Structure Yes
Certificate Type Enumeration Yes
Certificate Value Octet String Yes

492 Table 21: Certificate Object Structure

4931.10.2 Symmetric Key


494A Managed Cryptographic Object that is a symmetric key.

Object Encoding Required


Symmetric Key Structure Yes
Key Block Structure Yes

495 Table 22: Symmetric Key Object Structure

4961.10.3 Public Key


497A Managed Cryptographic Object that is the public portion of an asymmetric key pair. This is only a public
498key, not a certificate.

Object Encoding Required


Public Key Structure Yes
Key Block Structure Yes

499 Table 23: Public Key Object Structure

55kmip-1.0-spec-ed-0.98 3 September 2009


56Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 19 of 135
5001.10.4 Private Key
501A Managed Cryptographic Object that is the private portion of an asymmetric key pair.

Object Encoding Required


Private Key Structure Yes
Key Block Structure Yes

502 Table 24: Private Key Object Structure

5031.10.5 Split Key


504A Managed Cryptographic Object that is a split key. A split key is a secret, usually a symmetric key or a
505private key that has been split into a number of parts, each of which mayMAY then be distributed to
506several key holders, for additional security. The Split Key Parts field contains the total number of parts,
507and the Split Key Threshold field contains the minimum number of parts needed to reconstruct the entire
508key. The Key Part Identifier indicates which key part is contained in the cryptographic object, and
509shallSHALL be at least 1 and shallSHALL be less than or equal to Split Key Parts.

Object Encoding Required


Split Key Structure Yes
Split Key Parts Integer Yes
Key Part Identifier Integer Yes
Split Key Threshold Integer Yes
Split Key Method Enumeration Yes
Prime Field Size Big Integer No, required only if Split Key
Method is Polynomial
Sharing Prime Field.
Key Block Structure Yes

510 Table 25: Split Key Object Structure


511There are three Split Key Methods for secret sharing: the first one is based on XOR and the other two are
512based on polynomial secret sharing, according to Adi Shamir, "How to share a secret", Communications
513of the ACM, vol. 22, no. 11, pp. 612-613.
514Let L be the minimum number of bits needed to represent all values of the secret.
515  When the Split Key Method is XOR, then the Key Material in the Key Value of the Key Block is of
516 length L bits. The number of split keys is Split Key Parts (identical to Split Key Threshold), and
517 the secret is reconstructed by XOR'ing all of the parts.
518  When the Split Key Method is Polynomial Sharing Prime Field, then secret sharing is performed
519 in the field GF(Prime Field Size), represented as integers, where Prime Field Size is a prime
520 bigger than 2L.
521  When the Split Key Method is Polynomial Sharing GF(2 16), then secret sharing is performed in the
522 field GF(216). The Key Material in the Key Value of the Key Block is a bit string of length L, and
523 when L is bigger than 216, then secret sharing is applied piecewise in pieces of 16 bits each. The
524 Key Material in the Key Value of the Key Block is the concatenation of the corresponding shares
525 of all pieces of the secret.
526 Secret sharing is performed in the field GF(216), which is represented as an algebraic extension of
527 GF(28):
528 GF(216) ≈ GF(28) [y]/(y2+y+m), where m is defined later.
58kmip-1.0-spec-ed-0.98 3 September 2009
59Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 20 of 135
529 An element of this field then consists of a linear combination uy + v, where u and v are elements
530 of the smaller field GF(28).
531 The representation of field elements and the notation in this section rely on FIPS PUB 197,
532 Sections 3 and 4. The field GF(28) is as described in FIPS PUB 197,
533 GF(28) ≈ GF(2) [x]/(x8+x4+x3+x+1).
534 An element of GF(28) is represented as an octet. Addition and subtraction in GF(2 8) is able tois
535 be performed as a bit-wise XOR of the octets. Multiplication and inversion are more complex (see
536 FIPS PUB 197 Section 4.1 and 4.2 for details).
537 An element of GF(216) is represented as a pair of octets (u, v). The element m is given by
538 m = x5+x4+x3+x,
539 which is represented by the octet 0x3A (or {3A} in notation according to FIPS PUB 197).
540 Addition and subtraction in GF(216) both correspond to simply XORing the octets. The product of
541 two elements ry + s and uy + v is given by
542 (ry + s) (uy + v) = ((r + s)(u + v) + sv)y + (ru + svm).
543 The inverse of an element uy + v is given by
544 (uy + v)-1 = ud-1y + (u + v)d-1, where d = (u + v)v + mu2.

5451.10.6 Template
546A Template is a named Managed Object containing the client-settable attributes of a Managed
547Cryptographic Object (i.e., a stored, named list of attributes). A Template is used to specify the attributes
548of a new Managed Cryptographic Object in various operations. It is intended to be used to specify the
549cryptographic attributes of new objects in a standardized or convenient way. None of the client-settable
550attributes specified in a Template except the Name attribute apply to the template object itself, but instead
551apply to any object created using the Template.
552The Template mayMAY be the subject of the Register, Locate, Get, Get Attributes, Get Attribute List, Add
553Attribute, Modify Attribute, Delete Attribute, and Destroy operations.
554An attribute specified in a Template is applicable either to the Template itself or to objects created using
555the Template.
556Attributes applicable to the Template itself are: Unique Identifier, Object Type, Name, Initial Date, Archive
557Date, and Last Changed Date.
558Attributes applicable to objects created using the Template are:
559  Cryptographic Algorithm
560  Cryptographic Length
561  Cryptographic Parameters
562  Operation Policy Name
563  Cryptographic Usage Mask
564  Usage Limits
565  Activation Date
566  Process Start Date
567  Protect Stop Date
568  Deactivation Date

61kmip-1.0-spec-ed-0.98 3 September 2009


62Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 21 of 135
569  Object Group
570  Application Specific IdentificationInformation
571  Contact Information
572  Custom Attribute

Object Encoding Required


Template Structure Yes
Attribute Attribute Object, see Yes. MayMAY be repeated.
Section 1.9.1

573 Table 26: Template Object Structure

5741.10.7 Secret Data


575A Managed Cryptographic Object containing a shared secret value that is not a key or certificate (e.g., a
576password). The Key Block of the Secret Data object contains a Key Value of the Opaque type. The Key
577Value mayMAY be wrapped.

Object Encoding Required


Secret Data Structure Yes
Secret Data Type Enumeration Yes
Key Block Structure Yes

578 Table 27: Secret Data Object Structure

5791.10.8 Opaque Object


580A Managed Object that the key management server mayis possibly not be able to interpret, but stores.
581The context information for this object is able toMAY be stored and retrieved using Custom Attributes.

Object Encoding Required


Opaque Object Structure Yes
Opaque Data Type Enumeration Yes
Opaque Data Value Octet String Yes

582 Table 28: Opaque Object Structure

64kmip-1.0-spec-ed-0.98 3 September 2009


65Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 22 of 135
5832 Attributes
584The following subsections describe the attributes that are associated with Managed Objects. These
585attributes are able to be obtained by a client from the server using the Get Attribute operation. Some
586attributes are able to be set by the Add Attribute operation or updated by the Modify Attribute operation,
587and some are able to be deleted by the Delete Attribute operation if they no longer apply to the Managed
588Object.
589When attributes are returned by the server (e.g., via a Get Attributes operation), the returned attribute
590value mayMAY differ depending on the client (e.g., the Cryptographic Usage Mask value mayMAY be
591different for different clients, depending on the policy of the server).
592The attribute name contained in the first row of the Object column of the first table in each subsection is
593the canonical name used when managing attributes using the Get Attributes, Get Attribute List, Add
594Attribute, Modify Attribute, and Delete Attribute operations.
595The second table in each subsection lists certain attribute characteristics (e.g., “ShallSHALL always have
596a value”). The “When implicitly set” characteristic indicates which operations (other than operations that
597manage attributes) are able to implicitly add to or modify the attribute of the object, which mayMAY be
598object(s) on which the operation is performed or object(s) created as a result of the operation. Implicit
599attribute changes mayMAY occur even if the attribute is not specified in the operation request itself.

2.1600Unique Identifier
601The Unique Identifier is generated by the key management system to uniquely identify a Managed Object.
602It is only required to be unique within the identifier space managed by a single key management system,
603however it is recommended that this identifier be globally unique, to allow for key management domain
604export of such objects. This attribute shallSHALL be assigned by the key management system at creation
605or registration time, and then shall notSHALL NOT be changed or deleted by any entity at any time.

Object Encoding Required


Unique Identifier Text String Yes

606 Table 29: Unique Identifier Attribute


ShallSHALL always have a Yes
value
Initially set by Server
Modifiable by server No
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Create Key Pair,
Register, Derive Key, Certify,
Re-certify, Re-key
Applies to Object Types All Objects

607 Table 30: Unique Identifier Attribute Rules

2.2608Name
609The Name attribute is a structure (see Table 31) used to identify and locate the object, assigned by the
610client, and that is able to be intepreted by humans are able to interpret. The key management system
67kmip-1.0-spec-ed-0.98 3 September 2009
68Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 23 of 135
611mayMAY specify rules by which the client is able to creates valid names. Clients are informed of such
612rules by a mechanism that is not specified by this standard. Names shallSHALL be unique within a given
613key management domain, but are not required to be globally unique.

Object Encoding Required


Name Structure Yes
Name Value Text String Yes
Name Type Enumeration Yes

614 Table 31: Name Attribute Structure

ShallSHALL always have a No


value
Initially set by Client
Modifiable by server Yes
Modifiable by client Yes
Deletable by client Yes
Multiple instances permitted Yes
When implicitly set Re-key, Re-certify
Applies to Object Types All Objects

615 Table 32: Name Attribute Rules

2.3616Object Type
617The type of a Managed Object (e.g., public key, private key, symmetric key, etc). This attribute
618shallSHALL be set by the server when the object is created or registered and then shall notSHALL NOT
619be changed.

Object Encoding Required


Object Type Enumeration Yes

620 Table 33: Object Type Attribute

ShallSHALL always have a Yes


value
Initially set by Server
Modifiable by server No
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Create Key Pair,
Register, Derive Key, Certify,
Re-certify, Re-key
Applies to Object Types All Objects

621 Table 34: Object Type Attribute Rules

70kmip-1.0-spec-ed-0.98 3 September 2009


71Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 24 of 135
2.4622Cryptographic Algorithm
623The cryptographic algorithm used by the object (e.g., RSA, DSA, DES, 3DES, AES, etc). This attribute
624shallSHALL be set by the server when the object is created or registered and then shall notSHALL NOT
625be changed.

Object Encoding Required


Cryptographic Algorithm Enumeration Yes

626 Table 35: Cryptographic Algorithm Attribute

ShallSHALL always have a Yes


value
Initially set by Server
Modifiable by server No
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Create Key Pair,
Register, Derive Key, Re-key
Applies to Object Types Keys, Certificates, Templates

627 Table 36: Cryptographic Algorithm Attribute Rules

2.5628Cryptographic Length
629Cryptographic Length is the length in bits of the clear-text cryptographic key material of the Managed
630Cryptographic Object. This attribute shallSHALL be set by the server when the object is created or
631registered, and then shall notSHALL NOT be changed.

Object Encoding Required


Cryptographic Length Integer Yes

632 Table 37: Cryptographic Length Attribute

ShallSHALL always have a Yes


value
Initially set by Server
Modifiable by server No
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Create Key Pair,
Register, Derive Key, Re-key
Applies to Object Types Keys ,Certificates, Templates

633 Table 38: Cryptographic Length Attribute Rules

73kmip-1.0-spec-ed-0.98 3 September 2009


74Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 25 of 135
2.6634Cryptographic Parameters
635The Cryptographic Parameters attribute is a structure (see Table 39) that contains a set of optional fields
636that describe certain cryptographic parameters to be used when performing cryptographic operations
637using the object. It is possible that specific fields only pertain to certain types of Managed Cryptographic
638Objects.

Object Encoding Required


Cryptographic Parameters Structure Yes
Block Cipher Mode Enumeration No
Padding Method Enumeration No
Hashing Algorithm Enumeration No
Role Type Enumeration No

639 Table 39: Cryptographic Parameters Attribute Structure

ShallSHALL always have a No


value
Initially set by Client
Modifiable by server No
Modifiable by client Yes
Deletable by client Yes
Multiple instances permitted Yes
When implicitly set Re-key, Re-certify
Applies to Object Types Keys ,Certificates, Templates

640 Table 40: Cryptographic Parameters Attribute Rules


641Role Type definitions match those defined in ANSI X9 “TR-31 2005 Interoperable Secure Key Exchange
642Key Block Specification for Symmetric Algorithms” and are defined in Table 41:Role Types are defined as
643follows:

76kmip-1.0-spec-ed-0.98 3 September 2009


77Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 26 of 135
BDK Base Derivation Key (ANSI X9.24 DUKPT key derivation)ZMK –
Shared key to allow transfer of subordinate keys between two
entities
CVK Card Verification Key (CVV/signature strip number validation)ZPK
– Shared key to allow transfer of PINs between two entities
DEK Data Encryption Key (General Data Encryption)MAC – MAC key,
specifically X9.9/19 retail MAC
MKAC EMV/chip card Master Key: Application CryptogramsCVK – Key
for generating/verifying 3-digit VISA/Mastercard signature strip
codes (CVV/CVC)
MKSMC EMV/chip card Master Key: Secure Messaging for
ConfidentialityCSC – Key for generating/verifying 4-digit American
Express Card Security Codes
MKSMI EMV/chip card Master Key: Secure Messaging for
IntegrityPVKIBM – Derivation key for derived PINs checked with
the IBM offset method
MKDAC EMV/chip card Master Key: Data Authentication CodePVKPVV –
Verification key for random PINs checked with the PVV method
MKDN EMV/chip card Master Key: Dynamic NumbersMKCVC – Master
key for dynamic CVC calculations
MKCP EMV/chip card Master Key: Card PersonalizationMKSMI – Master
key for smart card secure messaging integrity
KMOTH EMV/chip card Master Key: OtherMKSMC – Master key for smart
card secure messaging confidentiality
KEK Key Encryption or Wrapping KeyMKIDN – Master key for Card
Dynamic Number
MAC16609 ISO16609 MAC Algorithm 1MKAC – Master key for Chip card
cryptogram
MAC97971 ISO9797-1 MAC Algorithm 1MKCAP – Master key for Cardholder
Authentication Programme
MAC97972 ISO9797-1 MAC Algorithm 2BDK – Base derivation key for
DUKPT
MAC97973 ISO9797-1 MAC Algorithm 3 (Note this is commonly known as
X9.19 Retail MAC)
MAC97974 ISO9797-1 MAC Algorithm 4
MAC97975 ISO9797-1 MAC Algorithm 5
ZPK PIN Block Encryption Key
PVKIBM PIN Verification Key, IBM 3624 Algorithm
PVKPVV PIN Verification Key, VISA PVV Algorithm
PVKOTH PIN Verification Key, Other Algorithm

643 Table 41: Role Types


644Accredited Standards Committee X9, Inc. - Financial Industry Standards (www.x9.org) contributed to
645Table 41. Key role names and descriptions are derived from material in the Accredited Standards
646Committee X9, Inc's Technical Report "TR-31 2005 Interoperable Secure Key Exchange Key Block

79kmip-1.0-spec-ed-0.98 3 September 2009


80Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 27 of 135
647Specification for Symmetric Algorithms" and used with the permission of Accredited Standards Committee
648X9, Inc. in an effort to improve interoperability between X9 standards and OASIS KMIP. The complete
649ANSI X9 TR-31 is available at www.x9.org.

2.7650Certificate Type
651The type of a certificate (e.g., X.509, PGP, etc). This value shallSHALL be set by the server when the
652certificate is created or registered and then shall notSHALL NOT be changed.

Object Encoding Required


Certificate Type Enumeration Yes

653 Table 42: Certificate Type Attribute

ShallSHALL always have a Yes


value
Initially set by Server
Modifiable by server No
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Register, Certify, Re-certify
Applies to Object Types Certificates

654 Table 43: Certificate Type Attribute Rules

2.8655Certificate Issuer
656The Certificate Issuer attribute is a structure (see Table 44) used to provide identification of a certificate,
657containing the Issuer Distinguished Name (i.e., from the Issuer field of the certificate) and the Certificate
658Serial Number (i.e., from the Serial Number field of the certificate). This value shallSHALL be set by the
659server when the certificate is created or registered and then shall notSHALL NOT be changed.

Object Encoding Required


Certificate Issuer Structure Yes
Issuer Text String Yes
Serial Number Text String Yes (for X.509 certificates) / No
(for PGP certificates since they
do not contain a serial number)

660 Table 44: Certificate Issuer Attribute Structure

82kmip-1.0-spec-ed-0.98 3 September 2009


83Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 28 of 135
ShallSHALL always have a Yes
value
Initially set by Server
Modifiable by server No
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Register, Certify, Re-certify
Applies to Object Types Certificates

661 Table 45: Certificate Issuer Attribute Rules

2.9662Certificate Subject
663The Certificate Subject attribute is a structure (see Table 46) used to identify the subject of a certificate,
664containing the Subject Distinguished Name (i.e., from the Subject field of the certificate). It mayMAY
665include one or more alternative names (e.g., email address, IP address, DNS name) for the subject of the
666certificate (i.e., from the Subject Alternative Name extension within the certificate). These values
667shallSHALL be set by the server when the certificate is created or registered and shall notSHALL NOT be
668changed until the certificate is renewed.
669If the Subject Alternative Name extension is included in the certificate and is marked CRITICAL, then it is
670possible to issue an X.509 certificate where the subject field is left blank. Therefore an empty string is an
671acceptable value for the Certificate Subject Distinguished Name.

Object Encoding Required


Certificate Subject Structure Yes
Certificate Subject Text String Yes
Distinguished Name
Certificate Subject Text String No, MayMAY be repeated
Alternative Name

672 Table 46: Certificate Subject Attribute Structure


ShallSHALL always have a Yes
value
Initially set by Server
Modifiable by server No
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Register, Certify, Re-certify
Applies to Object Types Certificates

673 Table 47: Certificate Subject Attribute Rules

85kmip-1.0-spec-ed-0.98 3 September 2009


86Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 29 of 135
2.10
674Digest
675The Digest attribute is a structure (see Table 48) that contains the digest value of the key or secret data
676(i.e., digest of the Key Material), certificate (i.e., digest of the Certificate Value), or opaque object (i.e.,
677digest of the Opaque Data Value). Multiple digests mayMAY be calculated using different algorithms. The
678mandatory digest shallSHALL be computed with the SHA-256 hashing algorithm; the server mayMAY
679store additional digests. The digest(s) are static and shallSHALL be generated by the server when the
680object is created or registered.

Object Encoding Required


Digest Structure Yes
Hashing Algorithm Enumeration Yes
Digest Value Octet String Yes

681 Table 48: Digest Attribute Structure

ShallSHALL always have a Yes


value
Initially set by Server
Modifiable by server Yes
Modifiable by client No
Deletable by client No
Multiple instances permitted Yes
When implicitly set Create, Create Key Pair,
Register, Derive Key, Certify,
Re-certify, Re-key
Applies to Object Types All Cryptographic Objects,
Opaque Objects

682 Table 49: Digest Attribute Rules

2.11
683Operation Policy Name
684An operation policy controls what entities mayMAY perform which key management operations on the
685object. The content of the Operation Policy Name attribute is the name of a policy object known to the key
686management system and therefore server dependent. The named policy objects are created and
687managed using mechanisms outside the scope of the protocol. The policies determine what entities
688mayMAY perform specified operations on the object, and which of the object’s attributes mayMAY be
689modified or deleted. The Operation Policy Name attribute shouldSHOULD be set when operations that
690result in a new Managed Object on the server are executed. It is set either explicitly or via some default
691set by the server, which then applies to all subsequent operations on the object.

Object Encoding Required


Operation Policy Name Text String Yes

692 Table 50: Operation Policy Name Attribute

88kmip-1.0-spec-ed-0.98 3 September 2009


89Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 30 of 135
ShallSHALL always have a No
value
Initially set by Server or Client
Modifiable by server Yes
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Create Key Pair,
Register, Derive Key, Certify,
Re-certify, Re-key
Applies to Object Types All Objects

693 Table 51: Operation Policy Name Attribute Rules

6942.11.1Operations outside of operation policy control


695Some of the operations shouldSHOULD be allowed forby any client at any time, without respect to
696operation policy. These operations are:
697  Create
698  Create Key Pair
699  Register
700  Certify
701  Validate
702  Query
703  Cancel
704  Poll

7052.11.2Default Operation Policy


706A key management system implementation shallSHALL implement at least one named operation policy,
707which is used for objects when the Operation Policy attribute is not specified by the Client in a Create or
708Register operation, or in a template specified in these operations. This policy is named default. It specifies
709the following rules for operations on objects created or registered with this policy, depending on the object
710type.

7112.11.2.1 Default Operation Policy for Secret Objects


712This policy applies to Symmetric Keys, Private Keys, Split Keys, Secret Data, and Opaque Objects.

91kmip-1.0-spec-ed-0.98 3 September 2009


92Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 31 of 135
Default Operation Policy for Secret Objects
Operation Policy
Re-Key Allowed to creator only
Derive Key Allowed to creator only
Locate Allowed to creator only
Check Allowed to creator only
Get Allowed to creator only
Get Attributes Allowed to creator only
Get Attribute List Allowed to creator only
Add Attribute Allowed to creator only
Modify Attribute Allowed to creator only
Delete Attribute Allowed to creator only
Obtain Lease Allowed to creator only
Get Usage Allocation Allowed to creator only
Activate Allowed to creator only
Revoke Allowed to creator only
Destroy Allowed to creator only
Archive Allowed to creator only
Recover Allowed to creator only

713 Table 52: Default Operation Policy for Secret Objects


714For mandatory profiles, the creator shallSHALL be the transport-layer identification (see Usage Guide)
715provided at the Create or Register operation time.

7162.11.2.2 Default Operation Policy for Certificates and Public Key Objects
717This policy applies to Certificates and Public Keys.

94kmip-1.0-spec-ed-0.98 3 September 2009


95Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 32 of 135
Default Operation Policy for Certificates and Public Key
Objects
Operation Policy
Certify Allowed to creator only
Re-certify Allowed to creator only
Locate Allowed to all
Check Allowed to all
Get Allowed to all
Get Attributes Allowed to all
Get Attribute List Allowed to all
Add Attribute Allowed to creator only
Modify Attribute Allowed to creator only
Delete Attribute Allowed to creator only
Obtain Lease Allowed to all
Activate Allowed to creator only
Revoke Allowed to creator only
Destroy Allowed to creator only
Archive Allowed to creator only
Recover Allowed to creator only

718 Table 53: Default Operation Policy for Certificates and Public Key Objects

7192.11.2.3Default Operation Policy for Template Objects


720The operation policy specified as an attribute in the Create operation for a template object is the operation
721policy used for objects created using that template, and is not the policy used to control operations on the
722template itself. There is no mechanism to specify a policy used to control operations on template objects,
723so the default policy for template objects is always used for templates created by clients using the
724Register operation to create template objects.

Default Operation Policy for Private Template Objects


Operation Policy
Locate Allowed to creator only
Get Allowed to creator only
Get Attributes Allowed to creator only
Get Attribute List Allowed to creator only
Add Attribute Allowed to creator only
Modify Attribute Allowed to creator only
Delete Attribute Allowed to creator only
Destroy Allowed to creator only

725 Table 54: Default Operation Policy for Private Template Objects

97kmip-1.0-spec-ed-0.98 3 September 2009


98Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 33 of 135
726In addition to private template objects (which are controlled by the above policy, and which mayMAY be
727created by clients or the server), publicly known and usable templates mayMAY be created and managed
728by the server, with a default policy different from private template objects.

Default Operation Policy for Public Template Objects


Operation Policy
Locate Allowed to all
Get Allowed to all
Get Attributes Allowed to all
Get Attribute List Allowed to all
Add Attribute Disallowed to all
Modify Attribute Disallowed to all
Delete Attribute Disallowed to all
Destroy Disallowed to all

729 Table 55: Default Operation Policy for Public Template Objects

2.12
730Cryptographic Usage Mask
731The Cryptographic Usage Mask defines the cryptographic usage of a key. This is a bit mask that indicates
732to the client which cryptographic functions mayMAY be performed using the key.
733  Sign
734  Verify
735  Encrypt
736  Decrypt
737  Wrap Key
738  Unwrap Key
739  Export
740  MAC Generate
741  MAC Verify
742  Derive Key
743  Content Commitment
744  Key Agreement
745  Certificate Sign
746  CRL Sign
747  Generate Cryptogram
748  Validate Cryptogram
749  Translate Encrypt
750  Translate Decrypt
751  Translate Wrap
752  Translate Unwrap
753This list takes into consideration values that mayMAY appear in the Key Usage extension in an X.509
754certificate. However, the list does not consider the additional usages that mayMAY appear in the
755Extended Key Usage extension.
756X.509 Key Usage values shallSHALL be mapped to Cryptographic Usage Mask values in the following
757manner:

100kmip-1.0-spec-ed-0.98 3 September 2009


101Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 34 of 135
X.509 Key Usage to Cryptographic Usage Mask Mapping
X.509 Key Usage Value Cryptographic Usage Mask Value

digitalSignature Sign and Verify

contentCommitment Content Commitment


(Non Repudiation)

keyEncipherment Wrap Key and Unwrap Key

dataEncipherment Encrypt and Decrypt

keyAgreement Key Agreement

keyCertSign Certificate Sign

cRLSign CRL Sign

encipherOnly Encrypt

decipherOnly Decrypt

758 Table 56: X.509 Key Usage to Cryptographic Usage Mask Mapping
759The Content Commitment (Non-Repudiation) Cryptographic Usage Mask value shallSHALL be set for
760public keys used to verify digital signatures for non-repudiation purposes (i.e., to protect against a signing
761entity denying an action). Public keys used to verify digital signatures for other purposes (e.g.,
762authentication and integrity) shallSHALL be set with the Sign, Verify, or both Cryptographic Usage Mask
763values.

Object Encoding Required


Cryptographic Usage Mask Integer Yes

764 Table 57: Cryptographic Usage Mask Attribute

ShallSHALL always have a Yes


value
Initially set by Server or Client
Modifiable by server Yes
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Create Key Pair,
Register, Derive Key, Certify,
Re-certify, Re-key
Applies to Object Types All Cryptographic Objects,
Templates

765 Table 58: Cryptographic Usage Mask Attribute Rules

103kmip-1.0-spec-ed-0.98 3 September 2009


104Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 35 of 135
2.13
766Lease Time
767The Lease Time attribute defines a time interval for a Managed Cryptographic Object that indicates how
768long a client shouldSHOULD use the object. This attribute always holds the initial value of a lease, and
769not the actual remaining time. Once the lease expires, then the client is only able to renew the lease by
770calling Obtain Lease. A server shouldSHOULD store in this attribute the maximum Lease Time it is able
771to serve and a client obtains lease time (with Obtain Lease) that is less than or equal to the maximum
772Lease Time. This attribute is read-only for clients. It is able toSHALL be modified by the server only.

Object Encoding Required


Lease Time Interval Yes

773 Table 59: Lease Time Attribute

ShallSHALL always have a No


value
Initially set by Server
Modifiable by server Yes
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Create Key Pair,
Register, Derive Key, Certify,
Re-certify, Re-key
Applies to Object Types All Cryptographic Objects

774 Table 60: Lease Time Attribute Rules

2.14
775Usage Limits
776This is a mechanism for limiting the usage of a Managed Cryptographic Object. It only applies to
777Managed Cryptographic Objects that are able to be used for protection purposes (e.g., symmetric keys,
778private keys, public keys, etc.), and it shallSHALL only reflect their usage for protection (e.g., encryption,
779signing, etc.). This attribute may does not necessarily exist for all Managed Cryptographic Objects, since
780some objects are able to be used without limit, depending on client/server policies. Usage for process
781purposes (e.g., decryption, verification, etc.) is not limited. The attribute has four fields for two different
782types of limits. Exactly one of these two types (i.e., either bytes or objects) shallSHALL be present. These
783limits are:
784  Usage Limits Total Bytes – the total number of bytes allowed to be protected. This is the total
785 value for the entire life of the object, and shall notSHALL NOT be changed once the object begins
786 to be used for protection purposes.
787  Usage Limits Byte Count – the currently remaining number of bytes allowed to be protected.
788  Usage Limits Total Objects – the total number of objects allowed to be protected. This is the total
789 value for the entire life of the object, and shall notSHALL NOT be changed once the object begins
790 to be used for protection purposes.
791  Usage Limits Object Count – the currently remaining number of objects allowed to be protected.
792When the attribute is initially set (usually during object creation or registration), the values set are the
793Total values allowed for the useful life of the object. The count values shallSHALL be ignored by the
794server if the attribute is specified in an operation that creates a new object. Changes made via the Modify
795Attribute operation reflect corrections to these Total values, but they shall notSHALL NOT be changed

106kmip-1.0-spec-ed-0.98 3 September 2009


107Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 36 of 135
796once the count values have changed by a Get Usage Allocation operation. The count values shall
797notSHALL NOT be set or modified by the client via the Add Attribute or Modify Attribute operations.

Object Encoding Required


Usage Limits Structure Yes
Usage Limits Total Big Integer No. ShallSHALL be present
Bytes if Usage Limits Byte Count is
present
Usage Limits Byte Big Integer No. ShallSHALL be present
Count if Usage Limits Object Count
is not present
Usage Limits Total Big Integer No. ShallSHALL be present
Objects if Usage Limits Object Count
is present
Usage Limits Object Big Integer No. ShallSHALL be present
Count if Usage Limits Byte Count is
not present

798 Table 61: Usage Limits Attribute Structure

ShallSHALL always have No


a value
Initially set by Server or Client
Modifiable by server Yes
Modifiable by client Yes
Deletable by client Yes
Multiple instances No
permitted
When implicitly set Create, Create Key Pair,
Register, Derive Key, Re-
key, Get Usage Allocation
Applies to Object Types Keys, Templates

799 Table 62: Usage Limits Attribute Rules

2.15800State
801This attribute is an indication of the state of an object as
1
802known to the key management server. The state shall
803notSHALL NOT be changed by using the Modify Attribute
804operation on this attribute. The state shallSHALL only be Pre-Active
805changed by the server as a part of other operations or other 2 3
806server processes. An object shallSHALL be in one of the
807following states at any given time. (Note: These states 4
808correspond to those described in NIST Special Publication
809800-57). 5
Active
810  Pre-Active: The object exists but is not yet usable for
811 any cryptographic purpose. 6

7 8
Deactivated Compromised
109kmip-1.0-spec-ed-0.98 3 September 2009
110Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 37 of 135
9

10
Destroyed
Figure 1: Cryptographic
Destroyed Object States
Compromised
and Transitions
812  Active: The object mayMAY be used for all cryptographic purposes that are allowed by its
813 Cryptographic Usage Mask attribute.
814  Deactivated: The object shall notSHALL NOT be used for protection purpose (e.g., encryption or
815 signing), but, if permitted by the Cryptographic Usage Mask attribute, then mayMAY be used for
816 process purposes (e.g., decryption or verification), but only under extraordinary circumstances
817 and when special permission is granted.
818  Compromised: It is possible that the object has been compromised, and shouldSHOULD only be
819 used for process purposes in a client that is trusted to handle compromised cryptographic
820 objects.
821  Destroyed: The object is no longer usable for any purpose.
822  Destroyed Compromised: The object is no longer usable for any purpose; however its
823 compromised status mayMAY be retained for audit or security purposes.
824State transitions occur as follows:
825 1. The transition from a non-existent key to the Pre-Active state is caused by the creation of the
826 object. When an object is created or registered, it automatically goes from non-existent to Pre-
827 Active. If, however, the operation that creates or registers the object contains an Activation Date
828 that has already occurred, then the state immediately transitions to Active. In this case, the server
829 shallSHALL set the Activation Date attribute to the time when the operation is received, or fail the
830 request attempting to create or register the object, depending on server policy. If the operation
831 contains an Activation Date attribute in the future, or contains no Activation Date, then the
832 Cryptographic Object is initialized in the key management system in the Pre-Active state.
833 2. The transition from Pre-Active to Compromised is caused by a client issuing a Revoke operation
834 with a Revocation Reason of Compromised.
835 3. The transition from Pre-Active to Active is able toSHALL occur in one of three ways:
836  The object has an Activation Date in the future. At the time that the Activation Date is
837 reached, the server changes the state to Active.
838  A client issues a Modify Attribute operation, modifying the Activation Date to a date in the
839 past, or the current date. In this case, the server shallSHALL either set the Activation Date
840 attribute to the date in the past or fail the operation, depending on server policy.
841  A client issues an Activate operation on the object. The server shallSHALL set the
842 Activation Date to the time the Activate operation is received.
843 4. The transition from Active to Compromised is caused by a client issuing a Revoke operation with
844 a Revocation Reason of Compromised.
845 5. The transition from Active to Deactivated is able toSHALL occur in one of three ways:
846  The object's Deactivation Date is reached.
847  A client issues a Revoke operation, with a Revocation Reason other than Compromised.
848  The client issues a Modify Attribute operation, modifying the Deactivation Date to a date in
849 the past, or the current date. In this case, the server shallSHALL either set the Deactivation
850 Date attribute to the date in the past or fail the operation, depending on server policy.
851 6. The transition from Deactivated to Destroyed is caused by a client issuing a Destroy operation.
852 The server destroys the object when (and if) server policy dictates.
853 7. The transition from Deactivated to Compromised is caused by a client issuing a Revoke operation
854 with a Revocation Reason of Compromised.
855 8. The transition from Compromised to Destroyed Compromised is caused by a client issuing a
856 Destroy operation. The server destroys the object when (and if) server policy dictates.

112kmip-1.0-spec-ed-0.98 3 September 2009


113Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 38 of 135
857 9. The transition from Destroyed to Destroyed Compromised is caused by a client issuing a Revoke
858 operation with a Revocation Reason of Compromised.
859Only the transitions described above are permitted.

Object Encoding Required


State Enumeration Yes

860 Table 63: State Attribute

ShallSHALL always have a Yes


value
Initially set by Server
Modifiable by server Yes
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Create Key Pair,
Register, Derive Key,
Activate, Revoke, Destroy,
Certify, Re-certify, Re-key
Applies to Object Types All Cryptographic Objects

861 Table 64: State Attribute Rules

2.16
862Initial Date
863This is the date and time when the Managed Object was first created or registered at the server. This time
864corresponds to state transition 1 (see Section 2.15). This attribute shallSHALL be set by the server when
865the object is created or registered, and then shall notSHALL NOT be changed. This attribute is also set
866for non-cryptographic objects (e.g., templates) when they are first registered with the server.

Object Encoding Required


Initial Date Date-Time Yes

867 Table 65: Initial Date Attribute

ShallSHALL always have a Yes


value
Initially set by Server
Modifiable by server No
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Create Key Pair,
Register, Derive Key, Certify,
Re-certify, Re-key
Applies to Object Types All Objects

868 Table 66: Initial Date Attribute Rules

115kmip-1.0-spec-ed-0.98 3 September 2009


116Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 39 of 135
2.17
869Activation Date
870This is the date and time when the Managed Cryptographic Object mayMAY begin to be used. This time
871corresponds to state transition 4 (see Section 2.15). The object shall notSHALL NOT be used for any
872cryptographic purpose before the Activation Date has been reached. Once the state transition has
873occurred, then this attribute shall notSHALL NOT be modified by the server or client.

Object Encoding Required


Activation Date Date-Time Yes

874 Table 67: Activation Date Attribute


ShallSHALL always have a No
value
Initially set by Server or Client
Modifiable by server Yes
Modifiable by client Yes
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Create Key Pair,
Register, Derive Key,
Activate Certify, Re-certify,
Re-key
Applies to Object Types All Cryptographic Objects,
Templates

875 Table 68: Activation Date Attribute Rules

2.18
876Process Start Date
877This is the date and time when a Managed Symmetric Key Object mayMAY begin to be used for process
878purposes (e.g., decryption or unwrapping), depending on the value of its Cryptographic Usage Mask
879attribute. The object shall notSHALL NOT be used for these cryptographic purposes before the Process
880Start Date has been reached. This value mayMAY be equal to, but shall notSHALL NOT precede, the
881Activation Date. Once the Process Start Date has occurred, then this attribute shall notSHALL NOT be
882modified by the server or the client.

Object Encoding Required


Process Start Date Date-Time Yes

883 Table 69: Process Start Date Attribute

118kmip-1.0-spec-ed-0.98 3 September 2009


119Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 40 of 135
ShallSHALL always have a No
value
Initially set by Server or Client
Modifiable by server Yes
Modifiable by client Yes
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Register, Derive Key,
Re-key
Applies to Object Types Symmetric Keys, Split Keys
of symmetric keys,
Templates

884 Table 70: Process Start Date Attribute Rules

2.19
885Protect Stop Date
886This is the date and time when a Managed Symmetric Key Object shall notSHALL NOT be used for
887protect purposes (e.g., encryption or wrapping), depending on the value of its Cryptographic Usage Mask
888attribute. This value mayMAY be equal to, but shall notSHALL NOT be later than the Deactivation Date.
889Once the Protect Stop Date has occurred, then this attribute shall notSHALL NOT be modified by the
890server or the client.

Object Encoding Required


Protect Stop Date Date-Time Yes

891 Table 71: Protect Stop Date Attribute

ShallSHALL always have a No


value
Initially set by Server or Client
Modifiable by server Yes
Modifiable by client Yes
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Register, Derive Key,
Re-key
Applies to Object Types Symmetric Keys, Split Keys
of symmetric keys,
Templates

892 Table 72: Protect Stop Date Attribute Rules

2.20
893Deactivation Date
894This is the date and time when the Managed Cryptographic Object shall notSHALL NOT be used for any
895purpose, except for decryption, signature verification, or unwrapping, but only under extraordinary
896circumstances and only when special permission is granted. This time corresponds to state transition 6

121kmip-1.0-spec-ed-0.98 3 September 2009


122Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 41 of 135
897(see Section 2.15). Once this transition has occurred, then this attribute shall notSHALL NOT be modified
898by the server or client.

Object Encoding Required


Deactivation Date Date-Time Yes

899 Table 73: Deactivation Date Attribute


ShallSHALL always have a No
value
Initially set by Server or Client
Modifiable by server Yes
Modifiable by client Yes
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Create Key Pair,
Register, Derive Key, Revoke
Certify, Re-certify, Re-key
Applies to Object Types All Cryptographic Objects,
Templates

900 Table 74: Deactivation Date Attribute Rules

2.21
901Destroy Date
902This is the date and time when the Managed Object was destroyed. This time corresponds to state
903transitions 2, 7, or 9 (see Section 2.15). This value is set by the server when the object is destroyed due
904to the reception of a Destroy operation, or due to server policy or out-of-band administrative action.

Object Encoding Required


Destroy Date Date-Time Yes

905 Table 75: Destroy Date Attribute


ShallSHALL always have a No
value
Initially set by Server
Modifiable by server No
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Destroy
Applies to Object Types All Cryptographic Objects,
Opaque Objects

906 Table 76: Destroy Date Attribute Rules

124kmip-1.0-spec-ed-0.98 3 September 2009


125Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 42 of 135
2.22
907Compromise Occurrence Date
908This is the date and time when the Managed Cryptographic Object was first believed to be compromised.
909If it is not possible to estimate when the compromise occurred, then this value shouldSHOULD be set to
910the Initial Date for the object.

Object Encoding Required


Compromise Occurrence Date Date-Time Yes

911 Table 77: Compromise Occurrence Date Attribute


ShallSHALL always have a No
value
Initially set by Server
Modifiable by server No
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Revoke
Applies to Object Types All Cryptographic Objects,
Opaque Object

912 Table 78: Compromise Occurrence Date Attribute Rules

2.23
913Compromise Date
914This is the date and time when the Managed Cryptographic Object entered into the compromised state.
915This time corresponds to state transitions 3, 5, 8, or 10 (see Section 2.15). This time indicates when the
916key management system was made aware of the compromise, not necessarily when the compromise
917occurred. This attribute is set by the server when it receives a Revoke operation with a Revocation
918Reason of Compromised, or due to server policy or out-of-band administrative action.

Object Encoding Required


Compromise Date Date-Time Yes

919 Table 79: Compromise Date Attribute


ShallSHALL always have a No
value
Initially set by Server
Modifiable by server No
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Revoke
Applies to Object Types All Cryptographic Objects,
Opaque Object

920 Table 80: Compromise Date Attribute Rules

127kmip-1.0-spec-ed-0.98 3 September 2009


128Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 43 of 135
2.24
921Revocation Reason
922The Revocation Reason attribute is a structure (see Table 81) used to indicate why the Managed
923Cryptographic Object was revoked (e.g., “compromised”, “expired”, “no longer used”, etc). This attribute is
924only changed by the server as a part of the Revoke Operation.
925The Revocation Message is an optional field that is used exclusively for audit trail/logging purposes and
926mayMAY contain additional information about why the object was revoked (e.g., “Laptop stolen”, or
927“Machine decommissioned”).

Object Encoding Required


Revocation Reason Structure Yes
Revocation Reason Enumeration Yes
Code
Revocation Message Text String No

928 Table 81: Revocation Reason Attribute Structure

ShallSHALL always have a No


value
Initially set by Server
Modifiable by server Yes
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Revoke
Applies to Object Types All Cryptographic Objects,
Opaque Object

929 Table 82: Revocation Reason Attribute Rules

2.25
930Archive Date
931This is the date and time when the Managed Object was placed in archival storage. This value is set by
932the server as a part of the Archive operation. This attribute is deleted whenever a Recover operation is
933performed.

Object Encoding Required


Archive Date Date-Time Yes

934 Table 83: Archive Date Attribute

130kmip-1.0-spec-ed-0.98 3 September 2009


131Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 44 of 135
ShallSHALL always have a No
value
Initially set by Server
Modifiable by server Yes
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Archive
Applies to Object Types All Objects

935 Table 84: Archive Date Attribute Rules

2.26
936Object Group
937An object mayMAY be part of a group of objects. An object mayMAY belong to more than one group of
938objects. To assign an object to a group of objects, the object group name shouldSHOULD be set into this
939attribute.

Object Encoding Required


Object Group Text String Yes

940 Table 85: Object Group Attribute

ShallSHALL always have a No


value
Initially set by Client or Server
Modifiable by server Yes
Modifiable by client Yes
Deletable by client Yes
Multiple instances permitted Yes
When implicitly set Create, Create Key Pair,
Register, Derive Key, Certify,
Re-certify, Re-key
Applies to Object Types All Objects

941 Table 86: Object Group Attribute Rules

2.27
942Link
943The Link attribute is a structure (see Table 87) used to create a link from one Managed Cryptographic
944Object to another, closely related target Managed Cryptographic Object. The link has a type, and the
945allowed types differ, depending on the Object Type of the Managed Cryptographic Object. The Linked
946Object Identifier identifies the target Managed Cryptographic Object by its Unique Identifier. The link
947contains information associated between the Managed Cryptographic Objects (e.g., the private key
948corresponding to a public key; the parent certificate for a certificate in a chain; or for a derived symmetric
949key, the base key from which it was derived).
950Possible values of Link Type in accordance with the Object Type of the Managed Cryptographic Object
951are:

133kmip-1.0-spec-ed-0.98 3 September 2009


134Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 45 of 135
952  Private Key Link. For a Public Key object: the private key corresponding to the public key
953  Public Key Link. For a Private Key object: the public key corresponding to the private key. For a
954 Certificate object: the public key certified by the certificate
955  Certificate Link. For Certificate objects: the parent certificate for a certificate in a certificate chain.
956 For Public Key objects: the corresponding certificate(s), containing the same public key
957  Derivation Base Object Link for a derived Symmetric Key object: the object(s) from which the
958 current symmetric key was derived
959  Derived Key Link: the symmetric key(s) that were derived from the current object.
960  Replacement Object Link. For a Symmetric Key, Private Key, or Public Key object: the key that
961 resulted from the re-key of the current key. For a Certificate object: the certificate that resulted
962 from the re-certify. Note that there is able toSHALL be only one such replacement object.
963  Replaced Object Link. For a Symmetric Key, Private Key, or Public Key object: the key that was
964 re-keyed to obtain the current key. For a Certificate object: the certificate that was re-certified to
965 obtain the current certificate
966The Link attribute shouldSHOULD be present for private keys and public keys for which a certificate chain
967is stored by the server, and for certificates in a certificate chain.
968Note that it is possible for a Managed Object to have multiple instances of the Link attribute (e.g., a
969Private Key has links to the associated certificate as well as the associated public key; a Certificate object
970has links to both the public key and to the certificate of the certification authority that signed the
971certificate).
972It is also possible that a Managed Object does not have links to associated cryptographic objects. This is
973able toMAY occur in cases where the associated key material is not available to the server or client (e.g.,
974the registration of a CA Signer certificate with a server, where the corresponding private key is held in a
975different manner).

Object Encoding Required


Link Structure Yes
Link Type Enumeration Yes
Linked Object Text String Yes
Identifier

976 Table 87: Link Attribute Structure

ShallSHALL always have a No


value
Initially set by Client or Server
Modifiable by server Yes
Modifiable by client Yes
Deletable by client Yes
Multiple instances permitted Yes
When implicitly set Create Key Pair, Derive Key,
Certify, Re-certify, Re-key
Applies to Object Types All Cryptographic Objects

977 Table 88: Link Attribute Structure Rules

136kmip-1.0-spec-ed-0.98 3 September 2009


137Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 46 of 135
2.28
978Application Specific IdentificationInformation
979The Application Specific Identification Information attribute is a structure (see Table 89) used to store data
980specific to the application(s) using the specify the intended use of a Managed Object. It consists of twothe
981following partsfields: the an Aapplication Nnames space that uses the object, and Application Dataan
982identification specific to that application name space. The application name spaces are arbitrary text
983strings so that new types of application identifiers are able to be used without requiring the standard to be
984updated.A list of standard application namespaces is provided in [TBD].
985Clients MAY request to set (i.e., using any of the operations that results in generating new Managed
986Object(s) or adding/modifying the attribute of an existing Managed Object) an instance of this attribute
987with a particular Application Namespace while omitting Application Data. In that case, if the server
988supports this namespace (as indicated by the Query operation in Section 3.24), then it SHALL return a
989suitable Application Data value. If the server does not support this namespace, then an error SHALL be
990returned.
991Some examples of application name space and identifier pairs:
992  SMIME, '[email protected]'
993  SSL, 'some.domain.name'
994  Volume Identification, '123343434'
995  File Name, 'secret.doc'
996The following application names spaces are recommended:
997  SMIME
998  SSL
999  IPSEC
1000  HTTPS
1001  PGP
1002  Volume Identification
1003  File Name
1004Other values may be used according to server policy. No extension mechanism is defined or needed, as
1005any text string is allowable.

Object Encoding Required


Application Specific Structure Yes
Identification Information
Application Names Text String Yes
Space
Application Text String Yes
IdentifierData

1006 Table 89: Application Specific Identification Information Attribute


1007

139kmip-1.0-spec-ed-0.98 3 September 2009


140Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 47 of 135
ShallSHALL always have a No
value
Initially set by Client or Server (only if the
Application Data is omitted,
in the client request)
Modifiable by server Yes (only if the Application
Data is omitted in the client
request)No
Modifiable by client Yes
Deletable by client Yes
Multiple instances permitted Yes
When implicitly set Re-key, Re-certify
Applies to Object Types All Objects

1008 Table 90: Application Specific Identification Information Attribute Rules

2.29
1009Contact Information
1010The Contact Information attribute is optional, and its content is used for contact purposes only. It is not
1011used for policy enforcement. The attribute is set by the client or the server.

Object Encoding Required


Contact Information Text String Yes

1012 Table 91: Contact Information Attribute

ShallSHALL always have a No


value
Initially set by Client or Server
Modifiable by server Yes
Modifiable by client Yes
Deletable by client Yes
Multiple instances permitted No
When implicitly set Create, Create Key Pair,
Register, Derive Key, Certify,
Re-certify, Re-key
Applies to Object Types All Objects

1013 Table 92: Contact Information Attribute Rules

2.30
1014Last Changed Date
1015This is a meta attribute that contains the date and time of the last change to the contents or attributes of
1016the specified object.

Object Encoding Required


Last Changed Date Date-Time Yes

1017 Table 93: Last Changed Date Attribute

142kmip-1.0-spec-ed-0.98 3 September 2009


143Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 48 of 135
ShallSHALL always have a Yes
value
Initially set by Server
Modifiable by server Yes
Modifiable by client No
Deletable by client No
Multiple instances permitted No
When implicitly set Create, Create Key Pair,
Register, Derive Key,
Activate, Revoke, Destroy,
Archive, Recover, Certify,
Re-certify, Re-key, Add
Attribute, Modify Attribute,
Delete Attribute, Get Usage
Allocation
Applies to Object Types All Objects

1018 Table 94: Last Changed Date Attribute Rules

2.31
1019Custom Attribute
1020A Custom Attribute is a client- or server-defined attribute intended for vendor-specific purposes. It is
1021created by the client and not interpreted by the server, or is created by the server and mayMAY be
1022interpreted by the client. All custom attributes created by the client shallSHALL adhere to a naming
1023scheme where the name of the attribute shallSHALL have a prefix of 'x-', meaning extended. All custom
1024attributes created by the key management server shallSHALL adhere to a naming scheme where the
1025name of the attribute shallSHALL have a prefix of 'y-'. The tag type Custom Attribute is not able to identify
1026the particular attribute; hence such an attribute is able toSHALL only appear in an Attribute Structure with
1027its name as defined in Section 1.9.1.

Object Encoding Required


Custom Attribute Any data type or structure Yes. The name of the attribute
shallSHALL start with 'x-' or
'y-'.

1028 Table 95 Custom Attribute

145kmip-1.0-spec-ed-0.98 3 September 2009


146Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 49 of 135
ShallSHALL always have a No
value
Initially set by Client or Server
Modifiable by server Yes, for server-created
attributes
Modifiable by client Yes, for client-created
attributes
Deletable by client Yes, for client-created
attributes
Multiple instances permitted Yes
When implicitly set Create, Create Key Pair,
Register, Derive Key,
Activate, Revoke, Destroy,
Certify, Re-certify, Re-key
Applies to Object Types All Objects

1029 Table 96: Custom Attribute Rules

10303 Client-to-Server Operations


1031The following subsections describe the operations that mayMAY be requested by a key management
1032client. Not all clients have to be capable of issuing all operation requests; however any client that issues a
1033specific request shallSHALL be capable of understanding the response to the request. All Object
1034Management operations are sent in requests from clients to servers, and in responses from servers to
1035clients. These operations mayMAY be combined into a batch, which allows multiple operations to be
1036contained in a single request/response message pair.
1037A number of the operations whose descriptions follow are affected by a mechanism referred to as the ID
1038Placeholder.
1039The key management server shallSHALL implement a temporary variable called the ID Placeholder. This
1040value consists of a single Unique Identifier. It is a variable stored inside the server that is only valid and
1041preserved during the execution of a batch of operations. Once the batch of operations has been
1042completed, the ID Placeholder value is discarded and/or invalidated by the server, so that subsequent
1043requests do not find this previous ID Placeholder available.
1044The ID Placeholder is obtained from the Unique Identifier returned by the Create, Create Pair, Register,
1045Derive Key, Re-Key, Certify, Re-Certify, Locate, and Recover operations. If any of these operations
1046successfully completes and returns a Unique Identifier, then the server shallSHALL copy this Unique
1047Identifier into the ID Placeholder variable, where it is held until the completion of the operations remaining
1048in the batched request. If the Batch Error Continuation Option is set to Stop and the Batch Order Option is
1049set to true, then subsequent operations in the batched request mayMAY make use of the ID Placeholder
1050by omitting the Unique Identifier field from the request payloads for these operations.
1051Requests mayMAY contain attribute values to be assigned to the object. This information is specified with
1052a Template-Attribute (see Section 1.9.8) that contains zero or more template names and zero or more
1053individual attributes. If more than one template name is specified, and there is a conflict between the
1054single-instance attributes in the templates, then the value in the subsequent template takes precedence. If
1055there is a conflict between the single-instance attributes in the request and the single-instance attributes
1056in a specified template, then the attribute values in the request take precedence. For multi-value
1057attributes, the union of attribute values is used when the attributes are specified more than once.
1058Responses mayMAY optionally contain attribute values that were not specified in the request, but have
1059been implicitly set by the server. This information is specified with a Template-Attribute that contains one
1060or more individual attributes.
148kmip-1.0-spec-ed-0.98 3 September 2009
149Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 50 of 135
1061For any operations that operate on Managed Objects already stored on the server, any archived object
1062shallSHALL first be moved back on-line through a Recover operation (see Section 3.22) before they
1063mayMAY be specified (i.e., as on-line objects).

3.1
1064Create
1065This operation requests the server to generate a new symmetric key as a Managed Cryptographic Object.
1066This operation is not used to create a Template object (see Register operation, Section 3.3).
1067The request contains information about the type of object being created, and some of the attributes to be
1068assigned to the object (e.g., Cryptographic Algorithm, Cryptographic Length, etc). This information
1069mayMAY be specified by the names of Template objects that already exist.
1070The response contains the Unique Identifier of the created object. The server shallSHALL copy the
1071Unique Identifier returned by this operation into the ID Placeholder variable.

Request Payload
Object Required Description
Object Type Yes Determines the type of object to be
created.
Template-Attribute Yes Specifies desired object attributes
using templates and/or as individual
attributes.

1072 Table 97: Create Request Payload

Response Payload
Object Required Description
Object Type Yes Type of object created.
Unique Identifier Yes The Unique Identifier of the newly
created object.
Template-Attribute No An optional list of object attributes with
values that were not specified in the
request, but have been implicitly set by
the key management server.

1073 Table 98: Create Response Payload


1074The following attributes shallSHALL be included in the Create request, either explicitly, or via specification
1075of a template that contains the attribute.

Attribute Required
Cryptographic Algorithm Yes
Cryptographic Usage Yes
Mask

1076 Table 99: Create Attribute Requirements

3.21077Create Key Pair


1078This operation requests the server to generate a new public/private key pair and register the two
1079corresponding new Managed Cryptographic Objects.
1080The request contains attributes to be assigned to the objects (e.g., Cryptographic Algorithm,
1081Cryptographic Length, etc). Attributes and Template Names mayMAY be specified for both keys at the
151kmip-1.0-spec-ed-0.98 3 September 2009
152Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 51 of 135
1082same time by specifying a Common Template-Attribute object in the request. Attributes not common to
1083both keys (e.g., Name, Cryptographic Usage Mask) mayMAY be specified using the Private Key
1084Template-Attribute and Public Key Template-Attribute objects in the request, which take precedence over
1085the Common Template-Attribute object.
1086A Link Attribute is automatically created by the server for each object, pointing to the corresponding
1087object. The response contains the Unique Identifiers of both created objects. The ID Placeholder value
1088shallSHALL be set to the Unique Identifier of the Private Key.

Request Payload
Object Required Description
Common Template-Attribute No Specifies desired attributes in
templates and/or as individual
attributes that apply to both the Private
and Public Key Objects.
Private Key Template-Attribute No Specifies templates and/or attributes
that apply to the Private Key Object.
Order of precedence applies.
Public Key Template-Attribute No Specifies templates and/or attributes
that apply to the Public Key Object.
Order of precedence applies.

1089 Table 100: Create Key Pair Request Payload


1090For multi-instance attributes, the union of the values found in the templates and attributes of the Common,
1091Private, and Public Key Template-Attribute is used. For single-instance attributes, the order of
1092precedence is as follows:
1093 1. attributes specified explicitly in the Private and Public Key Template-Attribute, then
1094 2. attributes specified via templates in the Private and Public Key Template-Attribute, then
1095 3. attributes specified explicitly in the Common Template-Attribute, then
1096 4. attributes specified via templates in the Common Template-Attribute
1097If there are multiple templates in the Common, Private, or Public Key Template-Attribute, then the
1098subsequent value of the single-instance attribute takes precedence.

Response Payload
Object Required Description
Private Key Unique Identifier Yes The Unique Identifier of the newly
created Private Key object.
Public Key Unique Identifier Yes The Unique Identifier of the newly
created Public Key object.
Private Key Template-Attribute No An optional list of attributes, for the
Private Key Object, with values that
were not specified in the request, but
have been implicitly set by the key
management server.
Public Key Template-Attribute No An optional list of attributes, for the
Public Key Object, with values that
were not specified in the request, but
have been implicitly set by the key
management server.

154kmip-1.0-spec-ed-0.98 3 September 2009


155Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 52 of 135
1099 Table 101: Create Key Pair Response Payload
1100The following attributes shallSHALL be included and/or shallSHALL have the same value in the Create
1101Key Pair operation, either explicitly, or via specification of a template that contains the attribute.

Attribute Required ShallSHALL contain the


same value for both Private
and Public Key
Cryptographic Algorithm Yes Yes
Cryptographic Length Yes Yes
Cryptographic Usage Yes No
Mask
Cryptographic No Yes
Parameters

1102 Table 102: Create Key Pair Attribute Requirements

3.3
1103Register
1104This operation requests the server to register a Managed Object that was created by the client or
1105obtained by the client through some other means, allowing the server to manage the object. The
1106arguments in the request are similar to those in the Create operation, but also mayMAY contain the object
1107itself, for storage by the server. Optionally, objects that are not to be stored by the key management
1108system mayMAY be omitted from the request (e.g., private keys).
1109The request contains information about the type of object being registered and some of the attributes to
1110be assigned to the object (e.g., Cryptographic Algorithm, Cryptographic Length, etc). This information
1111mayMAY be specified by the use of a Template-Attribute object.
1112The response contains the Unique Identifier assigned by the server to the registered object. The server
1113shallSHALL copy the Unique Identifier returned by this operations into the ID Placeholder variable. The
1114Initial Date attribute of the object shallSHALL be set to the current time.

Request Payload
Object Required Description
Object Type Yes Determines the type of object being
registered.
Template-Attribute Yes Specifies desired object attributes
using templates and/or as individual
attributes.
Certificate, Symmetric Key, Private No The object being registered. The object
Key, Public Key, Split Key, Secret Data and attributes mayMAY be wrapped.
or Opaque Object Some objects (e.g., Private Keys),
mayMAY be omitted from the request.

1115 Table 103: Register Request Payload

157kmip-1.0-spec-ed-0.98 3 September 2009


158Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 53 of 135
Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the newly
registered object.
Template-Attribute No An optional list of object attributes with
values that were not specified in the
request, but have been implicitly set by
the key management server.

1116 Table 104: Register Response Payload


1117If a Managed Cryptographic Object is registered, then the following attributes shallSHALL be included in
1118the Register request, either explicitly, or via specification of a template that contains the attribute.

Attribute Required
Cryptographic Algorithm Yes, mayMAY be omitted
only if this information is
encapsulated in the Key
Block. Does not apply to
Secret Data. If present,
then Cryptographic
Length below shallSHALL
also be present.
Cryptographic Length Yes, mayMAY be omitted
only if this information is
encapsulated in the Key
Block. Does not apply to
Secret Data. If present,
then Cryptographic
Algorithm above
shallSHALL also be
present.
Cryptographic Usage Yes.
Mask

1119 Table 105: Register Attribute Requirements

3.4
1120Re-key
1121This request is used to generate a replacement key for an existing symmetric key. It is analogous to the
1122Create operation, except that many of the attributes of the new key are unchanged from the original key.
1123As the replacement key takes over the name attribute of the existing key, Re-key shouldSHOULD only be
1124performed once on a given key.
1125The server shallSHALL copy the Unique Identifier of the replacement key returned by this operation into
1126the ID Placeholder variable.
1127As a result of Re-key, attributes of the existing key are changed similar to performing a Revoke on that
1128key with a Revocation Reason of Superseded, and the Link attribute is set to point to the replacement
1129key.
1130If Offset is set and if such times exist, then the times of the new key shallSHALL be set based on the
1131times of the existing key as follows:

Attribute in Existing Key Attribute in New Key

160kmip-1.0-spec-ed-0.98 3 September 2009


161Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 54 of 135
Initial Date (IT1) Initial Date (IT2) > IT1
Activation Date (AT1) Activation Date (AT2) = IT2+ Offset
Process Start Date (CT1) Process Start Date = CT1+(AT2- AT1)
Protect Stop Date (TT1) Protect Stop Date = TT1+(AT2- AT1)
Deactivation Date (DT1) Deactivation Date = DT1+(AT2- AT1)

1132 Table 106: Computing New Dates from Offset during Re-key
1133Attributes that are not copied from the existing key and are handled in a specific way are:

Attribute Action
Initial Date Set to current time
Destroy Date Not set
Compromise Occurrence Not set
Date
Compromise Date Not set
Revocation Reason Not set
Unique Identifier New value generated
Usage Limits The Total Bytes/Total
Objects value is copied
from the existing key,
while the Byte
Count/Object Count
values are set to the Total
Bytes/Total Objects.
Name Set to the name(s) of the
existing key; all name
attributes of the existing
key are removed.
State Set based on attributes
Digest Recomputed from the
new key value
Link Set to point to the existing
key as the replaced key
Last Change Date Set to current time

1134 Table 107: Re-key Attribute Requirements

163kmip-1.0-spec-ed-0.98 3 September 2009


164Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 55 of 135
Request Payload
Object Required Description
Unique Identifier No Determines the Symmetric Key being
re-keyed. If omitted, then the ID
Placeholder is substituted by the
server.
Offset No An Interval object indicating the
difference between the Initialization
Time of the new key and the Activation
Date of the new key.
Template-Attribute No Specifies desired object attributes
using templates and/or as individual
attributes.

1135 Table 108: Re-key Request Payload

Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the new
Symmetric Key.
Template-Attribute No An optional list of object attributes with
values that were not specified in the
request, but have been implicitly set by
the key management server.

1136 Table 109: Re-key Response Payload

3.5
1137Derive Key
1138This request is used to derive a symmetric key using a key or secret data that is already known to the key
1139management system. It shallSHALL only apply to Managed Cryptographic Objects that have the Derive
1140Key bit set in the Cryptographic Usage Mask attribute of the specified Managed Object (i.e., are able to
1141be used for key derivation). If the operation is issued for an object that does not have this bit set, then the
1142server shallSHALL return a response with a Result Reason of Operation Not Supported. For all derivation
1143methods, the client shallSHALL specify the desired length of the derived key or secret using the
1144Cryptographic Length attribute. If a key is created, then the client shallSHALL specify both its
1145Cryptographic Length and Cryptographic Algorithm. If the specified length exceeds the output of the
1146derivation method, then the server shallSHALL return an error. Clients have the option to derive multiple
1147keys and IVs by creating a Secret Data object and specifying a Cryptographic Length that is the total
1148length of the derived object. The length shall notSHALL NOT exceed the length of the output that is able
1149to be returned by the chosen derivation method.
1150The fields in the request specify the Unique Identifiers of the keys or secrets to be used for derivation
1151(e.g., some derivation methods mayMAY require multiple keys or secrets to derive the result), the method
1152to be used to perform the derivation, and any parameters needed by the specified method. The method is
1153specified as an enumerated value. Currently defined derivation methods include:
1154  PBKDF2 – This method is used to derive a symmetric key from a password or pass phrase. The
1155 PBKDF2 method is published in RSA Laboratories' Public-Key Cryptography Standards (PKCS)
1156 series, specifically PKCS #5 v2.0, and also published as Internet Engineering Task Force's RFC
1157 2898.
1158  HASH – This method derives a key by computing a hash over the derivation key or the derivation
1159 data.

166kmip-1.0-spec-ed-0.98 3 September 2009


167Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 56 of 135
1160  HMAC – This method derives a key by computing an HMAC over the derivation data.
1161  ENCRYPT – This method derives a key by encrypting the derivation data.
1162  NIST800-108-C – This method derives a key by computing the KDF in Counter Mode as specified
1163 in NIST SP 800-108.
1164  NIST800-108-F – This method derives a key by computing the KDF in Feedback Mode as
1165 specified in NIST SP 800-108.
1166  NIST800-108-DPI – This method derives a key by computing the KDF in Double-Pipeline Iteration
1167 Mode as specified in NIST SP 800-108.
1168  Extensions
1169The server shallSHALL perform the derivation function, and then register the derived object as a new
1170Managed Object, returning the new Unique Identifier for the new object in the response. The server
1171shallSHALL copy the Unique Identifier returned by this operation into the ID Placeholder variable.
1172As a result of Derive Key, the Link attributes (i.e., Derived Key Link in the objects from which the key is derived,
1173and the Derivation Base Object Link in the derived key) of all objects involved shallSHALL be set to point to the
1174corresponding objects.

Request Payload
Object Required Description
Object Type Yes Determines the type of object to be
created.
Unique Identifier Yes. Determines the object or objects to
MayMAY be used to derive a new key. At
be most, two mayMAY be specified:
repeated one for the derivation key and
another for the secret data. Note
that the ID Placeholder is not able to
be used here.
Derivation Method Yes An Enumeration object specifying
the method to be used to derive the
new key.
Derivation Parameters Yes A Structure object containing the
parameters needed by the specified
derivation method.
Template-Attribute Yes Specifies desired object attributes
using templates and/or as individual
attributes; length shallSHALL
always be specified and algorithm is
required for the creation of
symmetric keys.

1175 Table 110: Derive Key Request Payload

169kmip-1.0-spec-ed-0.98 3 September 2009


170Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 57 of 135
Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the newly
derived key.
Template-Attribute No An optional list of object attributes
with values that were not specified
in the request, but have been
implicitly set by the key
management server.

1176 Table 111: Derive Key Response Payload


1177The Derivation Parameters for all derivation methods consist of the following parameters, except
1178PBKDF2, which requires two additional parameters.

Object Encoding Required


Derivation Parameters Structure Yes
Cryptographic Structure Yes, except for HMAC
Parameters derivation keys.
Initialization Vector Octet String No, depends on PRF and
mode of operation: empty IV
is assumed if not provided.
Derivation Data Octet String Yes, unless the Unique
Identifier of a Secret Data
object is provided.

1179 Table 112: Derivation Parameters Structure (Except PBKDF2)


1180Cryptographic Parameters identify the Pseudorandom Function (PRF) or the mode of operation of the
1181PRF (e.g., if a key is to be derived using the HASH derivation method, then clients are required to indicate
1182the hash algorithm inside Cryptographic Parameters; similarly, if a key is to be derived using AES in CBC
1183mode, then clients are required to indicate the Block Cipher Mode). The server shallSHALL verify that the
1184specified mode matches one of the instances of Cryptographic Parameters set for the corresponding key.
1185If Cryptographic Parameters are omitted, then the server shallSHALL select the Cryptographic
1186Parameters with the lowest Attribute Index for the specified key. If the corresponding key does not have
1187any Cryptographic Parameters attribute, or if no match is found, then an error is returned.
1188If a key is derived using HMAC, then the attributes of the derivation key provide enough information about
1189the PRF and Cryptographic Parameters are ignored.
1190Derivation Data may is either be the data to be encrypted, hashed, or HMACed. For NIST SP 800-108
1191methods, Derivation Data is Label||{0x00}||Context, where the all-zero octet is optional.
1192Most derivation methods (e.g., ENCRYPT) require a derivation key and the derivation data to be
1193encrypted. The HASH derivation method requires either a derivation key or derivation data. Derivation
1194data mayMAY either be explicitly provided by the client with the Derivation Data field or implicitly provided
1195by providing the Unique Identifier of a Secret Data object. If both are provided, then an error shallSHALL
1196be returned.
1197The PBKDF2 derivation method requires two additional parameters:

Object Encoding Required


Derivation Parameters Structure Yes
Cryptographic Structure No, depends on the PRF.
Parameters
172kmip-1.0-spec-ed-0.98 3 September 2009
173Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 58 of 135
Initialization Vector Octet String No, depends on PRF and
mode of operation: empty IV
is assumed if not provided.
Derivation Data Octet String Yes, unless the Unique
Identifier of a Secret Data
object is provided.
Salt Octet String Yes
Iteration Count Integer Yes

1198 Table 113: PBKDF2 Derivation Parameters Structure

3.6
1199Certify
1200This request is used to obtain a new certificate for a public key. Only a single certificate maySHALL be
1201requested at a time. Server support for this operation is optional, as it requires that the key management
1202system have access to a certification authority.
1203Requests are passed as Octet Strings, which allow multiple certificate request types for X.509 certificates
1204(e.g., PKCS#10, PEM, etc) or PGP certificates to be submitted to the server.
1205The new Certificate object whose Unique Identifier is returned mayMAY be obtained by the client via a
1206Get operation in the same batch, using the ID Placeholder mechanism.
1207As a result of Certify, the Link attribute of the Public Key and of the new Certificate shallSHALL be set to
1208point at each other.
1209The server shallSHALL copy the Unique Identifier of the new certificate returned by this operation into the
1210ID Placeholder variable.
1211If the information in the Certificate Request conflicts with the attributes specified in the Template-Attribute,
1212then the information in the Certificate Request takes precedence.

Request Payload
Object Required Description
Unique Identifier No The Unique Identifier of the Public Key
being certified. If omitted, then the ID
Placeholder is substituted by the
server.
Certificate Request Type Yes An Enumeration object specifying the
type of certificate request.
Certificate Request Yes An Octet String object with the
certificate request.
Template-Attribute No Specifies desired object attributes
using templates and/or as individual
attributes.

1213 Table 114: Certify Request Payload

175kmip-1.0-spec-ed-0.98 3 September 2009


176Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 59 of 135
Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the new
certificate.
Template-Attribute No An optional list of object attributes with
values that were not specified in the
request, but have been implicitly set by
the key management server.

1214 Table 115: Certify Response Payload

3.7
1215Re-certify
1216This request is used to renew an existing certificate with the same key pair. Only a single certificate may
1217SHALL be renewed at a time. Server support for this operation is optional, as it requires that the key
1218management system have access to a certification authority.
1219Requests are passed as Octet Strings, which allow multiple certificate request types for X.509 certificates
1220(e.g., PKCS#10, PEM, etc) or PGP certificates to be submitted to the server.
1221The server shallSHALL copy the Unique Identifier of the certificate returned by this operation into the ID
1222Placeholder variable.
1223If the information in the Certificate Request conflicts with the attributes specified in the Template-Attribute,
1224then the information in the Certificate Request takes precedence.
1225Since the new certificate assumes the name attribute of the existing certificate, Re-certify shouldSHOULD
1226only be performed once on a given certificate.
1227As a result of Re-certify, attributes of the existing certificate are changed similar to the result of performing
1228a Revoke on that certificate with a Revocation Reason of Superseded.
1229In addition, the Link attribute of the existing certificate and of the new certificate are set to point at each
1230other. In addition, the Link attribute of the Public Key is changed to point to the new certificate. If Offset is
1231set, then the times of the new certificate shallSHALL be set based on the times of the existing certificate
1232(if such times exist) as follows:

Attribute in Existing Certificate Attribute in New Certificate


Initial Date (IT1) Initial Date (IT2) > IT1
Activation Date (AT1) Activation Date (AT2) = IT2+ Offset
Deactivation Date (DT1) Deactivation Date = DT1+(AT2- AT1)

1233 Table 116: Computing New Dates from Offset during Re-certify
1234Attributes that are not copied from the existing certificate and that are handled in a specific way are:

178kmip-1.0-spec-ed-0.98 3 September 2009


179Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 60 of 135
Attribute Action
Initial Date Set to current time
Destroy Date Not set
Revocation Reason Not set
Unique Identifier New value generated
Name Set to the name(s) of the
existing certificate; all
name attributes of the
existing certificate are
removed.
State Set based on attributes
Digest Recomputed from the
new certificate value.
Link Set to point to the existing
certificate as the replaced
certificate.
Last Change Date Set to current time

1235 Table 117: Re-certify Attribute Requirements

Request Payload
Object Required Description
Unique Identifier No The Unique Identifier of the Certificate
being renewed. If omitted, then the ID
Placeholder is substituted by the
server.
Certificate Request Type Yes An Enumeration object specifying the
type of certificate request.
Certificate Request Yes An Octet String object with the
certificate request.
Offset No An Interval object indicating the
difference between the Initialization
Time of the new certificate and the
Activation Date of the new certificate.
Template-Attribute No Specifies desired object attributes
using templates and/or as individual
attributes.

1236 Table 118: Re-certify Request Payload

181kmip-1.0-spec-ed-0.98 3 September 2009


182Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 61 of 135
Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the new
certificate.
Template-Attribute No An optional list of object attributes with
values that were not specified in the
request, but have been implicitly set by
the key management server.

1237 Table 119: Re-certify Response Payload

3.8
1238Locate
1239This operation requests that the server searches for one or more Managed Objects, specified by one or
1240more attributes. All attributes are allowed to be used. However, no attributes specified in the request
1241shouldSHOULD contain Attribute Index values. Attribute Index values shallSHALL be ignored by the
1242Locate operation. The request mayMAY also contain a Maximum Items field, which specifies the
1243maximum number of objects to be returned. If the Maximum Items field is omitted, then the server
1244mayMAY return all objects matched, or mayMAY impose an internal maximum limit due to resource
1245limitations.
1246If more than one object satisfies the identification criteria specified in the request, then the response
1247mayMAY contain Unique Identifiers for multiple Managed Objects. Returned objects shallSHALL match
1248all of the attributes in the request. If no objects match, then an empty response payload is returned.
1249The server returns a list of Unique Identifiers of the found objects, which then mayMAY be retrieved using
1250the Get operation. If the objects are archived, then the Recover and Get operations are required to be
1251used. If a single Unique Identifier is returned to the client, then the server shallSHALL copy the Unique
1252Identifier returned by this operation into the ID Placeholder variable. If the Locate operation matches
1253more than one object, and the Maximum Items value is omitted in the request, or is set to a value larger
1254than one, then the server shall notSHALL NOT set the ID Placeholder value, causing any subsequent
1255operations that are batched with the Locate, and which do not specify a Unique Identifier explicitly, to fail.
1256This ensures that these batched operations may SHALL proceed only if a single object is returned by
1257Locate.
1258When using the Name or Object Group attributes for identification, wild-cards or regular expressions
1259mayMAY be supported by specific key management system implementations.
1260The Date attributes (e.g., Initial Date, Activation Date, etc) aremay be used to specify a time or a time
1261range. If a single instance of a given Date attribute is used (e.g., the Activation Date), then objects with
1262the same Date attribute are matching candidate objects. If two instances of the same Date attribute are
1263used (i.e., with two different values specifying a range), then objects for which the Date attribute is inside
1264or at a limit of the range are matching candidate objects. If a Date attribute is set to its largest possible
1265value, then it is equivalent to an undefined attribute.
1266When the Cryptographic Usage Mask attribute is specified in the request, candidate objects are
1267compared against this field via an operation that consists of a logical AND of the requested mask with the
1268mask in the candidate object, and then a comparison of the resulting value with the requested mask. For
1269example, if the request contains a mask value of 10001100010000, and a candidate object mask contains
127010000100010000, then the logical AND of the two masks is 10000100010000, which is compared against
127110001100010000 and fails the match. This means that a matching candidate object at least has all of the
1272bits set in its mask that are set in the requested mask, but mayMAY have additional bits set.
1273When the Usage Allocation attribute is specified in the request, matching candidate objects shallSHALL
1274have an Object or Byte Count and Total Objects or Bytes equal to or larger than the values specified in
1275the request.
1276When an attribute defined as a structure is specified, all of the structure fields are not required to be
184kmip-1.0-spec-ed-0.98 3 September 2009
185Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 62 of 135
1277specified. For instance, for the Link attribute, if the Linked Object Identifier value is specified without the
1278Link Type value, then matching candidate objects have the Linked Object Identifier as specified,
1279irrespective of their Link Type.
1280The Storage Status Mask field (see Section 8.1.3.3.2) is used to indicate whether only on-line objects,
1281only archived objects, or both on-line and archived objects are to be searched. Note that the server
1282mayMAY store attributes of archived objects in order to expedite Locate operations that search through
1283archived objects.

Request Payload
Object Required Description
Maximum Items No An Integer object that indicates the
maximum number of object identifiers
the server shallSHALL return.
Storage Status Mask No An Integer object (used as a bit mask)
that indicates whether only on-line
objects, only archived objects, or both
on-line and archived objects are to be
searched. If omitted, then on-line only
is assumed.
Attribute Yes, Specifies an attribute and its value that
mayMAY are required to match the desired
be object.
repeated

1284 Table 120: Locate Request Payload

Response Payload
Object Required Description
Unique Identifier No, May be The Unique Identifier of the located
repeated objects.

1285 Table 121: Locate Response Payload

3.9
1286Check
1287This operation requests that the server checks for the use of a Managed Object according to values
1288specified in the request. This operation shouldSHOULD only be used when placed in a batched set of
1289operations, usually following a Locate, Create, Create Pair, Derive Key, Certify, Re-Certify or Re-Key
1290operation, and followed by a Get operation. The Unique Identifier field in the request mayMAY be omitted
1291if the operation is in a batched set of operations and follows an operation that sets the ID Placeholder
1292variable.
1293If the server determines that the client is allowed to use the object according to the specified attributes,
1294then the server returns the Unique Identifier of the object. If the server determines that the client is not
1295allowed to use the object according to the specified attributes, then the server invalidates the ID
1296Placeholder value and does not return the Unique Identifier, and the operation returns the set of attributes
1297specified in the request that caused the server policy denial. The only attributes returned are those
1298according to which the server determined that the client is not allowed to use the object, allowing the
1299client to determine how to proceed. The operation also returns a failure, and the server shallSHALL
1300ignore any subsequent operations in the batch.
1301The additional objects that mayMAY be specified in the request are limited to:
1302  Usage Limits Byte Count or Usage Limits Object Count (see Section 2.14)– The request
1303 mayMAY contain the usage amount that the client deems necessary to complete its needed
187kmip-1.0-spec-ed-0.98 3 September 2009
188Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 63 of 135
1304 function. This does not require that any subsequent Get Usage Allocation operations request this
1305 amount. It only means that the client is ensuring that the amount specified is available.
1306  Cryptographic Usage Mask – This is used to specify the cryptographic operations for which the
1307 client intends to use the object (see Section 2.12). This allows the server to determine if the policy
1308 allows this client to perform these operations with the object. Note that this mayMAY be a
1309 different value from the one specified in a Locate operation that precedes this operation. Locate,
1310 for example, mayMAY specify a Cryptographic Usage Mask requesting a key that is able toMAY
1311 be used for both Encryption and Decryption, but the value in the Check operation mayMAY
1312 specify that the client is only using the key for Encryption at this time.
1313  Lease Time – This specifies a desired lease time (see Section 2.13). The client mayMAY use this
1314 to determine if the server allows the client to use the object with the specified lease or longer.
1315 Including this attribute in the Check operation does not actually cause the server to grant a lease,
1316 but only indicates that the requested lease time value is able toMAY be granted if requested by a
1317 subsequent, batched, Obtain Lease operation.
1318Note that these objects are not encoded in an Attribute structure as shown in Section 1.9.1

Request Payload
Object Required Description
Unique Identifier No Determines the object being checked.
If omitted, then the ID Placeholder is
substituted by the server.
Usage Limits Byte Count No Specifies the number of bytes to be
protected to be checked against server
policy. ShallSHALL only be present if
Usage Limits Object Count is not
present.
Usage Limits Object Count No Specifies the number of objects to be
protected to be checked against server
policy. ShallSHALL only be present if
Usage Limits Byte Count is not
present.
Cryptographic Usage Mask No Specifies the Cryptographic Usage for
which the client uses the object.
Lease Time No Specifies a Lease Time value that the
Client is asking the server to validate
against server policy.

1319 Table 122: Check Request Payload

Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object.
Usage Limits Byte Count No Returned by the Server if the Usage
Limits value specified in the Request
Payload is larger than the value that
the server policy allows. ShallSHALL
only be present if Usage Limits Object
Count is not present.
Usage Limits Object Count No Returned by the Server if the Usage
Limits value specified in the Request

190kmip-1.0-spec-ed-0.98 3 September 2009


191Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 64 of 135
Payload is larger than the value that
the server policy allows. ShallSHALL
only be present if Usage Limits Byte
Count is not present.
Cryptographic Usage Mask No Returned by the Server if the
Cryptographic Usage Mask specified in
the Request Payload is rejected by the
server for policy violation.
Lease Time No Returned by the Server if the Lease
Time value in the Request Payload is
larger than a valid Lease Time the
server is able toMAY grant.

1320 Table 123: Check Response Payload


1321The encodings of the Usage limits Byte and Object Counts is as shown in Section 2.14.

3.10
1322Get
1323This operation requests that the server returns the Managed Object specified in the request by its Unique
1324Identifier. The Unique Identifier field in the request mayMAY be omitted if the Get operation is in a
1325batched set of operations and follows an operation that sets the ID Placeholder variable.
1326Only a single object is returned. The response contains the Unique Identifier of the object, along with the
1327object itself, which mayMAY be wrapped using a wrapping key specified in the request.

Request Payload
Object Required Description
Unique Identifier No Determines the object being requested.
If omitted, then the ID Placeholder is
substituted by the server.
Key Wrapping Specification No Specifies keys and other information
for wrapping the returned object. This
field shall notSHALL NOT be specified
if the requested object is a Template.

1328 Table 124: Get Request Payload

Response Payload
Object Required Description
Object Type Yes Type of object
Unique Identifier Yes The Unique Identifier of the object
Certificate, Symmetric Key, Private Yes The cryptographic object being
Key, Public Key, Split Key, Template, returned
Secret Data, or Opaque Object

1329 Table 125: Get Response Payload

3.11
1330Get Attributes
1331This operation returns one or more attributes of a Managed Object. The object is specified by its Unique
1332Identifier and the attributes are specified by name in the request. If a specified attribute has multiple
1333instances, then all instances are returned. If a specified attribute does not exist (i.e., has no value), then it

193kmip-1.0-spec-ed-0.98 3 September 2009


194Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 65 of 135
1334shall notSHALL NOT be present in the returned response. If no requested attributes exist, then the
1335response shallSHALL consist only of the Unique Identifier.

Request Payload
Object Required Description
Unique Identifier No Determines the object whose attributes
are being requested. If omitted, then
the ID Placeholder is substituted by the
server.
Attribute Name Yes, May Specifies a desired attribute of the
be object
repeated

1336 Table 126: Get Attributes Request Payload

Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object
Attribute No, May be The requested attribute for the object
repeated

1337 Table 127: Get Attributes Response Payload

3.12
1338Get Attribute List
1339This operation returns a list of the attribute names associated with a Managed Object. The object is
1340specified by its Unique Identifier.

Request Payload
Object Required Description
Unique Identifier No Determines the object whose attribute
names are being requested. If omitted,
then the ID Placeholder is substituted
by the server.

1341 Table 128: Get Attribute List Request Payload

Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object
Attribute Name Yes, May The requested attribute names for the
be object
repeated

1342 Table 129: Get Attribute List Response Payload

3.13
1343Add Attribute
1344This request adds a new attribute instance to a Managed Object and sets its value. The request contains
1345the Unique Identifier of the Managed Object to which the attribute pertains, and the attribute name and
1346value. For non multi-instance attributes, this is how they are created. For multi-instance attributes, this is
1347how the first and subsequent values are created. Existing attribute values are only able to be changed by

196kmip-1.0-spec-ed-0.98 3 September 2009


197Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 66 of 135
1348the Modify Attribute operation. Read-Only attributes are not able to be added using the Add Attribute
1349operation. No Attribute Index is able toSHALL be specified in the request. The response returns a new
1350Attribute Index if the attribute being added is allowed to have multiple instances. Multiple Add Attribute
1351requests mayMAY be included in a single batched request to add multiple attributes.

Request Payload
Object Required Description
Unique Identifier No The Unique Identifier of the object. If
omitted, then the ID Placeholder is
substituted by the server.
Attribute Yes Specifies the attribute of the object to
be added.

1352 Table 130: Add Attribute Request Payload

Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object
Attribute Yes The added attribute

1353 Table 131: Add Attribute Response Payload

3.14
1354Modify Attribute
1355This request modifies the value of an existing attribute instance associated with a Managed Object. The
1356request contains the Unique Identifier of the Managed Object whose attribute is to be modified, and the
1357attribute name, optional Attribute Index, and new value. Only existing attributes mayMAY be changed via
1358this operation. New attributes are only able to be added by the Add Attribute operation. Read-Only
1359attributes are not able to be changed using this operation. If an Attribute Index is specified, then only the
1360specified instance is modified. If the attribute has multiple instances, and no Attribute Index is specified in
1361the request, then the Attribute Index is assumed to be 0. If the attribute does not support multiple
1362instances, then the Attribute Index shall notSHALL NOT be specified. Using a non-existent Attribute Index in
1363a Modify Attribute operation shallSHALL result in an error.

Request Payload
Object Required Description
Unique Identifier No The Unique Identifier of the object. If
omitted, then the ID Placeholder is
substituted by the server.
Attribute Yes Specifies the attribute of the object to
be modified.

1364 Table 132: Modify Attribute Request Payload

Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object
Attribute Yes The modified attribute

1365 Table 133: Modify Attribute Response Payload

199kmip-1.0-spec-ed-0.98 3 September 2009


200Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 67 of 135
1366Delete
3.15 Attribute
1367This request deletes an attribute associated with a Managed Object. The request contains the Unique
1368Identifier of the Managed Object whose attribute is to be deleted, the attribute name, and optionally the
1369Attribute Index of the attribute. Required attributes and Read-Only attributes are not able to be deleted by
1370this operation. If no Attribute Index is specified, and the Attribute whose name is specified has multiple
1371instances, then the operation is rejected. Note that only a single attribute is able toSHALL be deleted at a
1372time. Multiple delete operations (e.g., possibly batched) are necessary to delete several attributes.
1373Attempting to delete a non-existent attribute or using a non-existent Attribute Index in a delete operation
1374shallSHALL result in an error.

Request Payload
Object Required Description
Unique Identifier No Determines the object whose attributes
are being deleted. If omitted, then the
ID Placeholder is substituted by the
server.
Attribute Name Yes Specifies the name of the attribute to
be deleted.
Attribute Index No Specifies the Index of the Attribute.

1375 Table 134: Delete Attribute Request Payload

Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object
Attribute Yes The deleted attribute

1376 Table 135: Delete Attribute Response Payload

3.16
1377Obtain Lease
1378This request is used to obtain a new Lease Time for a specified Managed Object. The Lease Time is an
1379interval value that determines when the client's internal cache of information about the object expires and
1380needs to be renewed. If the returned value of the lease time is zero, then the server is indicating that no
1381lease interval is effective, and the client mayMAY use the object without any lease time limit. If a client's
1382lease expires, then the client shall notSHALL NOT use the associated cryptographic object until a new
1383lease is obtained. If the server determines that a new lease shall notSHALL NOT be issued for the
1384specified cryptographic object, then the server shallSHALL respond to the Obtain Lease request with a
1385failure.
1386The response payload for the operation also contains the current value of the Last Changed Date
1387attribute for the object. This mayMAY be used by the client to determine if any of the attributes cached by
1388the client need to be refreshed, by comparing this time to the time when the attributes were previously
1389obtained.

Request Payload
Object Required Description
Unique Identifier No Determines the object for which the
lease is being obtained. If omitted, then
the ID Placeholder is substituted by the
server.

202kmip-1.0-spec-ed-0.98 3 September 2009


203Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 68 of 135
1390 Table 136: Obtain Lease Request Payload

Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object.
Lease Time Yes An interval (in seconds) that specifies
the amount of time that the object
mayMAY be used until a new lease
needs to be obtained.
Last Changed Date Yes The date and time indicating when the
latest change was made to the
contents or any attribute of the
specified object.

1391 Table 137: Obtain Lease Response Payload

3.17
1392Get Usage Allocation
1393This request is used to obtain an allocation from the current Usage Limits values to allow the client to use
1394the Managed Cryptographic Object for protection purposes. It only applies to Managed Cryptographic
1395Objects that are able to be used for protection purposes (i.e., symmetric keys, private keys and public
1396keys) and is only valid if the Managed Cryptographic Object has a Usage Limits attribute. Usage for
1397process purposes (e.g., decryption, verification, etc.) is not limited and is not able to be allocated. A
1398Managed Cryptographic Object that has a Usage Limits attribute shall notSHALL NOT be used by a client
1399for protection purposes unless an allocation has been obtained using this operation. The operation
1400shallSHALL only be requested during the time that protection is enabled for these objects (i.e., after the
1401Activation Date and before the Protect Stop Date). If the operation is requested for an object that has no
1402Usage Limits attribute, or is not an object that is able toMAY be used for protection purposes, then the
1403server shallSHALL return a response with a Result Reason of Operation Not Supported.
1404The fields in the request specify the number of bytes or number of objects that the client needs to protect.
1405Exactly one of the two count fields shallSHALL be specified in the request. If the requested amount is not
1406available or if the Managed Object is not able to be used for protection purposes at this time, then the
1407server shallSHALL return an error . The server shallSHALL assume that the entire allocated amount has
1408been consumed. Once the entire allocated amount has been consumed, the client shall notSHALL NOT
1409continue to use the Managed Cryptographic Object for protection purposes until a new allocation is
1410obtained.

Request Payload
Object Required Description
Unique Identifier No Determines the object whose usage
allocation is being requested. If
omitted, then the ID Placeholder is
substituted by the server.
Usage Limits Byte Count No The number of bytes to be protected.
ShallSHALL only be present if Usage
Limits Object Count is not present.
Usage Limits Object Count No The number of objects to be protected.
ShallSHALL only be present if Usage
Limits Byte Count is not present.

1411 Table 138: Get Usage Allocation Request Payload

205kmip-1.0-spec-ed-0.98 3 September 2009


206Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 69 of 135
Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object.

1412 Table 139: Get Usage Allocation Response Payload


1413The encodings of the Usage Limits Byte and Object Counts is as shown in Section 2.14.

3.18
1414Activate
1415This request is used to activate a Managed Cryptographic Object. The request shall notSHALL NOT
1416specify a Template object. The request contains the Unique Identifier of the Managed Cryptographic
1417Object . The operation is only able to be performed on an object in the Pre-Active state and has the effect
1418of changing its state to Active, and setting its Activation Date to the current date and time.

Request Payload
Object Required Description
Unique Identifier No Determines the object being activated.
If omitted, then the ID Placeholder is
substituted by the server.

1419 Table 140: Activate Request Payload

Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object

1420 Table 141: Activate Response Payload

3.19
1421Revoke
1422This request is used to revoke a Managed Cryptographic Object or an Opaque Object. The request shall
1423notSHALL NOT specify a Template object. The request contains the unique identifier of the Managed
1424Cryptographic Object and a reason for the revocation (e.g., “compromised”, “no longer used”, etc).
1425Special authentication and authorization shouldSHOULD be enforced to perform this request (see Usage
1426Guide). Only the object creator or an authorized security officer shouldSHOULD be allowed to issue this
1427request. The operation has one of two effects. If the revocation reason is “compromised”, then the object
1428is placed into the “compromised” state, and the Compromise Date attribute is set to the current date and
1429time. Otherwise, the object is placed into the “deactivated” state, and the Deactivation Date attribute is set
1430to the current date and time.

Request Payload
Object Required Description
Unique Identifier No Determines the object being revoked. If
omitted, then the ID Placeholder is
substituted by the server.
Revocation Reason Yes Specifies the reason for revocation.
Compromise Occurrence Date No ShallSHALL be specified if the
Revocation Reason is 'compromised'.

1431 Table 142: Revoke Request Payload

208kmip-1.0-spec-ed-0.98 3 September 2009


209Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 70 of 135
Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object

1432 Table 143: Revoke Response Payload

3.20
1433Destroy
1434This request is used to indicate to the server that the key material for the specified Managed Object
1435shallSHALL be destroyed. The meta-data for the key material mayMAY be retained by the server (e.g.,
1436used to ensure that an expired or revoked private signing key is no longer available). Special
1437authentication and authorization shouldSHOULD be enforced to perform this request (see Usage Guide).
1438Only the object creator or an authorized security officer shouldSHOULD be allowed to issue this request.
1439If the Unique Identifier specifies a Template object, then the object itself, including all meta-data,
1440shallSHALL be destroyed.

Request Payload
Object Required Description
Unique Identifier No Determines the object being destroyed.
If omitted, then the ID Placeholder is
substituted by the server.

1441 Table 144: Destroy Request Payload

Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object

1442 Table 145: Destroy Response Payload

3.21
1443Archive
1444This request is used to specify that a Managed Object mayMAY be archived. The actual time when the
1445object is archived, the location of the archive, or level of archive hierarchy is determined by the policies
1446within the key management system and is not specified by the client. The request contains the unique
1447identifier of the Managed Object. Special authentication and authorization shouldSHOULD be enforced to
1448perform this request (see Usage Guide). Only the object creator or an authorized security officer
1449shouldSHOULD be allowed to issue this request. This request may be consideredis only a “hint” to the
1450key management system, which may or may not choose to possibly act upon this requestarchive the
1451object.

Request Payload
Object Required Description
Unique Identifier No Determines the object being archived.
If omitted, then the ID Placeholder is
substituted by the server.

1452 Table 146: Archive Request Payload

Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object

211kmip-1.0-spec-ed-0.98 3 September 2009


212Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 71 of 135
1453 Table 147: Archive Response Payload

3.22
1454Recover
1455This request is used to obtain access to a Managed Object that has been archived. This request mayMAY
1456require asynchronous polling to obtain the response due to delays caused by retrieving the object from
1457the archive.. Once the response is received, the object is now on-line, and mayMAY be obtained (e.g., via
1458a Get operation). Special authentication and authorization shouldSHOULD be enforced to perform this
1459request (see Usage Guide).

Request Payload
Object Required Description
Unique Identifier No Determines the object being recovered.
If omitted, then the ID Placeholder is
substituted by the server.

1460 Table 148: Recover Request Payload

Response Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object

1461 Table 149: Recover Response Payload

3.23
1462Validate
1463This requests that the server validate a certificate chain and return information on its validity. Only a
1464single certificate chain shallSHALL be included in each request. Support for this operation at the server is
1465optional.
1466The request may contain a list of certificate objects, and/or a list of Unique Identifiers that identify
1467Managed Certificate objects. Together, the two lists compose a certificate chain to be validated. The
1468request mayMAY also contain a date for which the certificate chain is required to be valid.
1469The method or policy by which validation is conducted is a decision of the server and is outside of the
1470scope of this protocol. Likewise, the order in which the supplied certificate chain is validated and the
1471specification of trust anchors used to terminate validation are also controlled by the server.

Request Payload
Object Required Description
Certificate No, May be One or more Certificates.
repeated
Unique Identifier No, May be One or more Unique Identifiers of
repeated Certificate Objects.
Validity Date No A Date-Time object indicating when the
certificate chain is valid.

1472 Table 150: Validate Request Payload

Response Payload
Object Required Description
Validity Indicator Yes An Enumeration object indicating
whether the certificate chain is valid,

214kmip-1.0-spec-ed-0.98 3 September 2009


215Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 72 of 135
invalid, or unknown.

1473 Table 151: Validate Response Payload

3.24
1474Query
1475This request is used by the client to interrogate the server to determine its capabilities and/or protocol
1476mechanisms. The Query operation shouldSHOULD be invocable by unauthenticated clients to interrogate
1477server features and functions. The Query Function field in the request shallSHALL contain one or more of
1478the following items:
1479  Query Operations
1480  Query Objects
1481  Query Server Information
1482  Query Application Namespaces
1483One, two, or all three of the above functions may be specified.
1484The Operation fields in the response contain Operation enumerated values, which shallSHALL list the
1485optional operations that the server supports. If the request contains a Query Operations value in the
1486Query Function field, then these fields shallSHALL be returned in the response. The optional operations
1487are:
1488  Validate
1489  Certify
1490  Re-Certify
1491  Notify
1492  Put
1493The Object Type fields in the response contain Object Type enumerated values, which shallSHALL list
1494the object types that the server supports. If the request contains a Query Objects value in the Query
1495Function field, then these fields shallSHALL be returned in the response. The object types (any of which
1496are optional) are:
1497  Certificate
1498  Symmetric Key
1499  Public Key
1500  Private Key
1501  Split Key
1502  Template
1503  Secret Data
1504  Opaque Object
1505The Server Information field in the response is a structure containing vendor-specific fields and/or
1506substructures. If the request contains a Query Server Information value in the Query Function field, then
1507this field shallSHALL be returned in the response.
1508The Application Namespace fields in the response contain the namespaces that the server SHALL
1509generate values for if requested by the client (see Section 2.28). These fields SHALL only be returned in
1510the response if the request contains a Query Application Namespaces value in the Query Function field.
1511Note that the response payload is empty if there are no values to return.

217kmip-1.0-spec-ed-0.98 3 September 2009


218Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 73 of 135
Request Payload
Object Required Description
Query Function Yes, May Determines the information being
be queried
Repeated

1512 Table 152: Query Request Payload

Response Payload
Object Required Description
Operation No, May be Specifies an Operation that is
repeated supported by the server. Only optional
operations shallSHALL be listed.
Object Type No, May be Specifies a Managed Object Type that
repeated is supported by the server.
Vendor Identification No ShallSHALL be returned if Query
Server Information is requested. The
Vendor Identification shallSHALL be a
text string that uniquely identifies the
vendor.
Server Information No Contains vendor-specific information
that maypossibly be of interest to the
client.
Application Namespace No, May be Specifies an Application Namespace
repeated supported by the server.

1513 Table 153: Query Response Payload

3.25
1514Cancel
1515This request is used to cancel an outstanding asynchronous operation. The correlation value (see Section
15165.8) of the original operation shallSHALL be specified in the request. The server shallSHALL respond with
1517a Cancellation Result that contains one of the following values:
1518  Canceled – The cancel operation succeeded in canceling the pending operation.
1519  Unable To Cancel – The cancel operation is unable to cancel the pending operation.
1520  Completed – The pending operation completed successfully before the cancellation operation
1521 was able to cancel it.
1522  Failed – The pending operation completed with a failure before the cancellation operation was
1523 able to cancel it.
1524  Unavailable – The specified correlation value did not match any recently pending or completed
1525 asynchronous operations.
1526 The response to this operation is not able to be asynchronous.

Request Payload
Object Required Description
Asynchronous Correlation Value Yes Specifies the request being canceled

1527 Table 154: Cancel Request Payload

220kmip-1.0-spec-ed-0.98 3 September 2009


221Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 74 of 135
Response Payload
Object Required Description
Asynchronous Correlation Value Yes Specified in the request
Cancellation Result Yes Enumeration indicating result of
cancellation

1528 Table 155: Cancel Response Payload

3.26
1529Poll
1530This request is used to poll the server in order to obtain the status of an outstanding asynchronous
1531operation. The correlation value (see Section 5.8) of the original operation shallSHALL be specified in the
1532request. The response to this operation is not able to be asynchronous.

Request Payload
Object Required Description
Asynchronous Correlation Value. Yes Specifies the request being polled

1533 Table 156: Poll Request Payload


1534The server shallSHALL reply with one of two responses:
1535If the operation has not completed, the response shallSHALL contain no payload and a Result Status of
1536Pending.
1537If the operation has completed, the response shallSHALL contain the appropriate payload for the
1538operation. This response shallSHALL be identical to the response that would have been sent if the
1539operation had completed synchronously.

15404 Server-to-Client Operations


1541Server-to-client operations are used by servers to send information or Managed Cryptographic Objects to
1542clients via means outside of the normal client-server request-response mechanism. These operations are
1543used to send Managed Cryptographic Objects directly to clients without a specific request from the client.

4.1
1544Notify
1545This operation is used to notify a client of events that resulted in changes to attributes of an object. This
1546operation is only ever sent by a server to a client via means outside of the normal client request/response
1547protocol, using information known to the server via unspecified configuration or administrative
1548mechanisms. It contains the Unique Identifier of the object to which the notification applies, and a list of
1549the attributes whose changed values have triggered the notification. The message is sent as a normal
1550Request message, except that the Maximum Response Size, Asynchronous Indicator, Batch Error
1551Continuation Option, and Batch Order Option fields are not allowed. The client shallSHALL send a
1552response in the form of a Response Message containing no payload, unless both the client and server
1553have prior knowledge (obtained via out-of-band mechanisms) that the client is not able to respond. Server
1554and Client support for this message is optional.

Message Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object.
Attribute Yes, May The attributes that have changed. This
be includes at least the Last Changed
repeated Date attribute.
223kmip-1.0-spec-ed-0.98 3 September 2009
224Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 75 of 135
1555 Table 157: Notify Message Payload

4.2
1556Put
1557This operation is used to “push” Managed Cryptographic Objects to clients. This operation is only ever
1558sent by a server to a client via means outside of the normal client request/response protocol, using
1559information known to the server via unspecified configuration or administrative mechanisms. It contains
1560the Unique Identifier of the object that is being sent, and the object itself. The message is sent as a
1561normal Request message, except that the Maximum Response Size, Asynchronous Indicator, Batch Error
1562Continuation Option, and Batch Order Option fields are not allowed. The client shallSHALL send a
1563response in the form of a Response Message containing no payload, unless both the client and server
1564have prior knowledge (obtained via out-of-band mechanisms) that the client is not able to respond. Server
1565and client support for this message is optional.
1566The Put Function field indicates whether the object being “pushed” is a new object, or is a replacement for
1567an object already known to the client (e.g., when pushing a certificate to replace one that is about to
1568expire, the Put Function field would be set to indicate replacement, and the Unique Identifier of the
1569expiring certificate would be placed in the Replaced Unique Identifier field). The Put Function shallSHALL
1570contain one of the following values:
1571  New – which indicates that the object is not a replacement for another object.
1572  Replace – which indicates that the object is a replacement for another object, and that the
1573 Replaced Unique Identifier field is present and contains the identification of the replaced object.
1574The Attribute field contains one or more attributes that the server is sending along with the object. The
1575server mayMAY include attributes with the object to specify how the object is to be used by the client. The
1576server mayMAY include a Lease Time attribute that grants a lease to the client.
1577If the Managed Object is a wrapped key, then the key wrapping specification shallSHALL be exchanged
1578prior to the transfer via out-of-band mechanisms.

Message Payload
Object Required Description
Unique Identifier Yes The Unique Identifier of the object.
Put Function Yes Indicates function for Put message.
Replaced Unique Identifier No Unique Identifier of the replaced
object. ShallSHALL be present if the
Put Function is Replace.
Certificate, Symmetric Key, Private Yes The object being sent to the client.
Key, Public Key, Split Key,
Template, Secret Data, or Opaque
Object
Attribute No, May The additional attributes that the
be server wishes to send with the
repeated object.

1579 Table 158: Put Message Payload

15805 Message Contents


1581The messages in the protocol consist of a message header, one or more batch items (which contain
1582optional message payloads), and optional message extensions. The message headers contain fields
1583whose presence is determined by the protocol features used (e.g., asynchronous responses). The field
1584contents are also determined by whether the message is a request or a response. The message payload
1585is determined by the specific operation being requested or to which is being replied.
226kmip-1.0-spec-ed-0.98 3 September 2009
227Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 76 of 135
1586The message headers are structures that contain some of the following objects.

5.1
1587Protocol Version
1588This field contains the version number of the protocol, ensuring that the protocol is fully understood by
1589both communicating parties. The version number is specified in two parts, major and minor. Servers and
1590clients shallSHALL support backward compatibility with versions of the protocol with the same major
1591version. Support for backward compatibility with different major versions is optional.

Object Encoding Required


Protocol Version Structure Yes
Protocol Version Major Integer Yes
Protocol Version Minor Integer Yes

1592 Table 159: Protocol Version Structure in Message Header

5.2
1593Operation
1594This field indicates the operation being requested or the operation for which the response is being
1595returned. The operations are defined in Sections 3and 4.

Object Encoding Required


Operation Enumeration Yes

1596 Table 160: Operation in Batch Item

5.3
1597Maximum Response Size
1598This field is optionally contained in a request message, and is used to indicate the maximum size of a
1599response that the requester is able toSHALL handle. It SHOULD onlyneed only be sent in requests that
1600maypossibly return large replies.

Object Encoding Required


Maximum Response Size Integer No

1601 Table 161: Maximum Response Size in Message Request Header

5.4
1602Unique Batch Item ID
1603This field is optionally contained in a request, and is used for correlation between requests and
1604responses. If a request has a Unique Batch Item ID, then responses to that request shallSHALL have the
1605same Unique Batch Item ID.

Object Encoding Required


Unique Batch Item ID Octet String No

1606 Table 162: Unique Batch Item ID in Batch Item

5.5
1607Time Stamp
1608This field is optionally contained in a request, is required in a response, is used for time stamping, and
1609mayMAY be used to enforce reasonable time usage at a client (e.g., a server mayMAY choose to reject a
1610request if a client's time stamp contains a value that is too far off the known correct time). Note: the time
1611stamp mayMAY be used by a client that has no real-time clock but has a countdown timer, to obtain
1612useful “seconds from now” values from all of the Date attributes by performing a subtraction.
229kmip-1.0-spec-ed-0.98 3 September 2009
230Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 77 of 135
Object Encoding Required
Time Stamp Date-Time No

1613 Table 163: Time Stamp in Message Header

5.6
1614Authentication
1615This is used to authenticate the requester. It is an optional information item, depending on the type of
1616request being issued and on server policies. Servers mayMAY require authentication on no requests, a
1617subset of the requests, or all requests, depending on policy. Query operations used to interrogate server
1618features and functions should notSHOULD NOT require authentication.
1619The authentication mechanisms are described and discussed in Section 7.

Object Encoding Required


Authentication Structure No
Credential Structure Yes

1620 Table 164: Authentication Structure in Message Header


1621The Credential structure is defined in Section 1.9.2.

5.7
1622Asynchronous Indicator
1623This booleanBoolean flag indicates whether the client is able to accept an asynchronous response. It
1624shallSHALL have the booleanBoolean value True if the client is able to handle asynchronous responses,
1625and the value False otherwise. If not present in a request, then False is assumed. If a client indicates that
1626it is not able to handle asynchronous responses (i.e., flag is set to False), and the server is not able to
1627process the request synchronously, then the server shallSHALL respond to the request with a failure.

Object Encoding Required


Asynchronous Indicator Boolean No

1628 Table 165: Asynchronous Indicator in Message Request Header

5.8
1629Asynchronous Correlation Value
1630This is returned in the immediate response to an operation that requires asynchronous polling. Note: the
1631server decides which operations are performed synchronously or asynchronously. A server-generated
1632correlation value shallSHALL be specified in any subsequent Poll or Cancel operations that pertain to the
1633original operation.

Object Encoding Required


Asynchronous Correlation Octet String No
Value

1634 Table 166: Asynchronous Correlation Value in Response Batch Item

5.9
1635Result Status
1636This is sent in a response message and indicates the success or failure of a request. The following values
1637mayMAY be set in this field:
1638  Success – The requested operation completed successfully.

232kmip-1.0-spec-ed-0.98 3 September 2009


233Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 78 of 135
1639  Pending – The requested operation is in progress, and it is necessary to obtain the actual result
1640 via asynchronous polling. The asynchronous correlation value shallSHALL be used for the
1641 subsequent polling of the result status.
1642  Undone – The requested operation was performed, but had to be undone (i.e., due to a failure in
1643 a batch for which the Error Continuation Option was set to Undo).
1644  Failure – The requested operation failed.

Object Encoding Required


Result Status Enumeration Yes

1645 Table 167: Result Status in Response Batch Item

5.10
1646Result Reason
1647This field indicates a reason for failure or a modifier for a partially successful operation and shallSHALL
1648be present in responses that return a Result Status of Failure. It is optional in any response that returns a
1649Result Status of Success. The following defined values mayMAY be set in this field:
1650  Item not found – A requested object was not found or did not exist.
1651  Response too large – The response to a request would exceed the Maximum Response Size in
1652 the request.
1653  Authentication not successful – The authentication information in the request was not able to be
1654 validated, or there was no authentication information in the request when there shouldSHOULD
1655 have been.
1656  Invalid message – The request message was not understood by the server.
1657  Operation not supported – The operation requested by the request message is not supported by
1658 the server.
1659  Missing data – The operation requires additional optional information in the request, which was
1660 not present.
1661  Invalid field – Some data item in the request has an invalid value.
1662  Feature not supported – An optional feature specified in the request is not supported.
1663  Operation canceled by requester – The operation was asynchronous, and the operation was
1664 canceled by the Cancel operation before it completed successfully.
1665  Cryptographic failure – The operation failed due to a cryptographic error.
1666  Illegal operation – The client requested an operation that was not able to be performed with the
1667 specified parameters.
1668  Permission denied – The client does not have permission to perform the requested operation.
1669  Object archived – The object needs toSHALL be recovered from the archive before the
1670 performing the operation is able to be performed.
1671  General failure – The request failed for a reason other than the defined reasons above.

Object Encoding Required


Result Reason Enumeration Yes

1672 Table 168: Result Reason in Response Batch Item

235kmip-1.0-spec-ed-0.98 3 September 2009


236Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 79 of 135
5.11
1673Result Message
1674This field mayMAY optionally be returned in a response. It contains a more descriptive error message,
1675which mayMAY be used by the client to display to an end user or for logging/auditing purposes.

Object Encoding Required


Result Message Text String No

1676 Table 169: Result Message in Response Batch Item

5.12
1677Batch Order Option
1678A Boolean value used in requests where the Batch Count is greater than 1. If True, then batched
1679operations shallSHALL be executed in the order in which they appear within the request. If False, then the
1680server mayMAY choose to execute the batched operations in any order. If not specified, then False is
1681assumed (i.e., no implied ordering). Server support for this feature is optional, but if the server does not
1682support the feature, and a request is received with the batch order option set to True, then the entire
1683request shallSHALL be rejected.

Object Encoding Required


Batch Order Option Boolean No

1684 Table 170: Batch Order Option in Message Request Header

5.13
1685Batch Error Continuation Option
1686This option shallSHALL only be present if the Batch Count is greater than 1. This option shallSHALL have
1687one of three values:
1688  Undo – If any operation in the request fails, then the server shallSHALL undo all the previous
1689 operations.
1690  Stop – If an operation fails, then the server shall notSHALL NOT continue processing subsequent
1691 operations in the request. Completed operations shall notSHALL NOT be undone.
1692  Continue – Return an error for the failed operation, and continue processing subsequent
1693 operations in the request.
1694If not specified, then Stop is assumed.
1695Server support for this feature is optional, but if the server does not support the feature, and a request is
1696received containing the Batch Error Continuation option with a value other than the default Stop, then the
1697entire request shallSHALL be rejected.

Object Encoding Required


Batch Error Continuation Enumeration No
Option

1698 Table 171: Batch Error Continuation Option in Message Request Header

5.14
1699Batch Count
1700This field contains the number of Batch Items in a message and is required. If only a single operation is
1701being requested, then the batch count shallSHALL be set to 1. The Message Payload, which follows the
1702Message Header, contains one or more batch items.

Object Encoding Required


Batch Count Integer Yes
238kmip-1.0-spec-ed-0.98 3 September 2009
239Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 80 of 135
1703 Table 172: Batch Count in Message Header

5.15
1704Batch Item
1705This field consists of a structure that holds the individual requests or responses in a batch, and is
1706required. The contents of the batch items areis described in Sections 6.2and 6.3.

Object Encoding Required


Batch Item Structure No

1707 Table 173: Batch Item in Message

5.16
1708Message Extension
1709The Message Extension is an optional structure that mayMAY be appended to any Batch Item. It is used
1710to extend protocol messages for the purpose of adding vendor specified extensions. The Message
1711Extension is a structure containing a Vendor Identification, a Criticality Indicator, and vendor-specific
1712extensions. The Vendor Identification shallSHALL be a text string that uniquely identifies the vendor,
1713allowing a client to determine if it is able to parse and understand the extension is able to be parsed and
1714understood. If a client or server receives a protocol message containing a message extension that it does
1715not understand, then its actions depend on the Criticality Indicator. If the indicator is True (i.e., Critical),
1716and the receiver does not understand the extension, then the receiver shallSHALL reject the entire
1717message. If the indicator is False (i.e., Non-Critical), and the receiver does not understand the extension,
1718then the receiver mayMAY process the rest of the message as if the extension were not present.

Object Encoding Required


Message Extension Structure No
Vendor Identification Text String Yes
Criticality Indicator Boolean Yes
Vendor Extension Structure Yes

1719 Table 174: Message Extension Structure in Batch Item

17206 Message Format


1721Messages contain the following objects and fields. All fields shallSHALL appear in the order specified.

6.11722Message Structure
Object Encoding Required
Request Message Structure Yes
Request Header Structure Yes
Batch Item Structure Yes, May be repeated

1723 Table 175: Request Message Structure

Object Encoding Required


Response Message Structure Yes
Response Header Structure Yes
Batch Item Structure Yes, May be repeated

1724 Table 176: Response Message Structure


241kmip-1.0-spec-ed-0.98 3 September 2009
242Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 81 of 135
6.21725Synchronous Operations
Synchronous Request Header
Object Required in Message Comment
Request Header Yes Structure
Protocol Version Yes
Maximum No
Response Size
Authentication No
Batch Error No If omitted, then Stop is
Continuation Option assumed
Batch Order Option No If omitted, then False is
assumed
Time Stamp No
Batch Count Yes

1726 Table 177: Synchronous Request Header Structure

Synchronous Request Batch Item


Object Required in Message Comment
Batch Item Yes Structure
Operation Yes
Unique Batch Item No Required if Batch Count > 1
ID
Request Payload Yes Structure, contents depend
on the Operation
Message Extension No

1727 Table 178: Synchronous Request Batch Item Structure

Synchronous Response Header


Object Required in Message Comment
Response Header Yes Structure
Protocol Version Yes
Time Stamp Yes
Batch Count Yes

1728 Table 179: Synchronous Response Header Structure

244kmip-1.0-spec-ed-0.98 3 September 2009


245Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 82 of 135
Synchronous Response Batch Item
Object Required in Message Comment
Batch Item Yes Structure
Operation Yes, if not a failure
Unique Batch Item No Required if Batch Count > 1
ID
Result Status Yes
Result Reason No Only present if Result
Status is not Success
Result Message No Only present if Result
Status is not Success
Response Payload Yes, if not a failure Structure, contents depend
on the Operation
Message Extension No

1729 Table 180: Synchronous Response Batch Item Structure

6.3
1730Asynchronous Operations
1731If the client is capable of accepting asynchronous responses, then it mayMAY set the Asynchronous
1732Indicator in the header of a batched request. The batched responses mayMAY contain a mixture of
1733synchronous and asynchronous responses.

Asynchronous Request Header


Object Required in Message Comment
Request Header Yes Structure
Protocol Version Yes
Maximum No
Response Size
Asynchronous Yes ShallSHALL be set to True
Indicator
Authentication No
Batch Error No If omitted, then Stop is
Continuation Option assumed
Batch Order Option No If omitted, then False is
assumed
Time Stamp No
Batch Count Yes

1734 Table 181: Asynchronous Request Header Structure

247kmip-1.0-spec-ed-0.98 3 September 2009


248Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 83 of 135
Asynchronous Request Batch Item
Object Required in Message Comment
Batch Item Yes Structure
Operation Yes
Unique Batch Item No Required if Batch Count > 1
ID
Request Payload Yes Structure, contents depend
on the Operation
Message Extension No

1735 Table 182: Asynchronous Request Batch Item Structure

Asynchronous Response Header


Object Required in Message Comment
Response Header Yes Structure
Protocol Version Yes
Time Stamp Yes
Batch Count Yes

1736 Table 183: Asynchronous Response Header Structure

Asynchronous Response Batch Item


Object Required in Message Comment
Batch Item Yes Structure
Operation Yes, if not a failure
Unique Batch Item No Required if Batch Count > 1
ID
Result Status Yes
Result Reason No Only present if Result
Status is not Pending or
Success
Result Message No Only present if Result
Status is not Pending or
Success
Asynchronous Yes Only present if Result
Correlation Value Status is Pending
Response Payload Yes, if not a failure Structure, contents depend
on the Operation
Message Extension No

1737 Table 184: Asynchronous Response Batch Item Structure

17387 Authentication
1739The mechanisms used to authenticate the client to the server and the server to the client are not part of
1740the message definitions, and are external to the protocol. The Authentication field contained in Request
250kmip-1.0-spec-ed-0.98 3 September 2009
251Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 84 of 135
1741Headers is used to identify the client and to provide linkage between this identification and the external
1742authentication mechanism.
1743The Usage Guide describes authentication profiles appropriate to this protocol, as well as the relationship
1744of those mechanisms to the credentials that are optionally included in the Authentication field. The
1745authentication profiles described are:
1746  SSL/TLS authentication. If the transport protocol uses a normal TCP stream, then that stream
1747 shouldSHOULD use an SSL/TLS encryption layer, and the client and server authentication
1748 features shallSHALL be enabled unless otherwise specified in the operation. The Credential
1749 object contained in the Authentication field in all request messages shallSHALL contain the
1750 client's certificate. The server shouldSHOULD use this certificate to identify the client for policy
1751 enforcement purposes, and shouldSHOULD verify that this certificate matches the one used for
1752 SSL/TLS authentication.
1753  HTTPS authentication. If the transport protocol is HTTP over TCP, then the HTTPS protocol
1754 shouldSHOULD be used, and the client and server authentication features enabled unless
1755 otherwise specified in the operation. The contents and use of the Credential object are the same
1756 as in the case of SSL/TLS above.
1757All server implementations shouldSHOULD, at a minimum, support the SSL/TLS and HTTPS profiles
1758described in the Usage Guide.
1759Other mechanisms (e.g., Kerberos) are potentially usable, with the identity established in the mechanism
1760(e.g., the Kerberos token), expressed as the Credential object. Profiles for these mechanisms are not
1761currently described in the Usage Guide.

17628 Message Encoding


1763To support different transport protocols and different client capabilities, a number of message-encoding
1764mechanisms are supported.

8.1
1765TTLV Encoding
1766In order to minimize the resource impact on potentially low-function clients, one encoding mechanism to
1767be used for protocol messages is a simplified TTLV (Tag, Type, Length, Value) scheme.
1768The scheme is designed to minimize the CPU cycle and memory requirements of clients that need to
1769encode or decode protocol messages, and to provide optimal alignment for both 32-bit and 64-bit
1770processors. Minimizing bandwidth over the transport mechanism is considered to be of lesser importance.

17718.1.1 TTLV Encoding Fields


1772Every Data object encoded by the TTLV scheme consists of 4 items, in order:

17738.1.1.1 Item Tag


1774An Item Tag is a 3-byte binary unsigned integer, transmitted big endian, which contains a number that
1775designates the specific Protocol Field or Object that the TTLV object represents. To ease debugging, and
1776to ensure that malformed messages are detected more easily, all tags shallSHALL contain either the
1777value 42 in hex or the value 54 in hex as the high order (first) byte. Tags defined by this specification
1778contain hex 42 in the first byte. Extensions, which are permitted, but are not defined in this specification,
1779contain the value 54 hex in the first byte. A list of defined Item Tags is in Section 8.1.3.1.

17808.1.1.2 Item Type


1781An Item Type is a byte containing a coded value that indicates the data type of the data object. The
1782allowed values are:

253kmip-1.0-spec-ed-0.98 3 September 2009


254Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 85 of 135
Data Type Coded Value in Hex

Structure 01

Integer 02

Long Integer 03

Big Integer 04

Enumeration 05

Boolean 06

Text String 07

Octet String 08

Date-Time 09

Interval 0A

1783 Table 185: Allowed Item Type Values

17848.1.1.3 Item Length


1785An Item Length is a 32-bit binary integer, transmitted big-endian, containing the number of bytes in the
1786Item Value. The allowed values are:
1787
Data Type Length

Structure Varies, multiple of 8

Integer 4

Long Integer 8

Big Integer Varies, multiple of 8

Enumeration 4

Boolean 8

Text String Varies

Octet String Varies

Date-Time 8

Interval 4

1788 Table 186: Allowed Item Length Values

256kmip-1.0-spec-ed-0.98 3 September 2009


257Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 86 of 135
1789If the Item Type is Structure, then the Item Length is the total length of all of the sub-items contained in
1790the structure, including any padding. If the Item Type is Integer, Enumeration, Text String, Octet String, or
1791Interval, then the Item Length is the number of bytes excluding the padding bytes. Text Strings and Octet
1792Strings shallSHALL be padded with the minimal number of bytes following the Item Value to obtain a
1793multiple of 8 bytes. Integers, Enumerations, and Intervals shallSHALL be padded with 4 bytes following
1794the Item Value.

17958.1.1.4 Item Value


1796The item value is a sequence of bytes containing the value of the data item, depending on the type:
1797  Integers are encoded as 4-byte long (32 bit) binary signed numbers in 2's complement notation,
1798 transmitted big-endian.
1799  Long Integers are encoded as 8-byte long (64 bit) binary signed numbers in 2's complement
1800 notation, transmitted big-endian.
1801  Big Integers are encoded as a sequence of 8-bit bytes, in 2's complement notation, transmitted
1802 big-endian. If the length of the sequence is not a multiple of 8 bytes, then Big Integers
1803 shallSHALL be padded with the minimal number of leading sign-extended bytes to make the
1804 length a multiple of 8 bytes. These padding bytes are part of the Item Value and shallSHALL be
1805 counted in the Item Length.
1806  Enumerations are encoded as 4-byte long (32 bit) binary unsigned numbers transmitted big-
1807 endian. Extensions, which are permitted, but are not defined in this specification, contain the value 8 hex
1808 in the first nibble of the first byte.
1809  Booleans are encoded as an 8-byte value that shallSHALL either contain the hex value
1810 0000000000000000, indicating the booleanBoolean value False, or the hex value
1811 0000000000000001, transmitted big-endian, indicating the booleanBoolean value True.
1812  Text Strings are sequences of bytes encoding character values according to the UTF-8 encoding
1813 standard. There shallSHALL be no null-termination at the end of such strings.
1814  Octet Strings are sequences of bytes containing individual unspecified 8 bit binary values.
1815  Date-Time values are encoded as 8-byte long (64 bit) binary signed numbers, transmitted big-
1816 endian. They are POSIX Time values (described in IEEE Standard 1003.1) extended to a 64 bit
1817 value to eliminate the “Year 2038 problem” (i.e., problem that affects Unix systems that store time
1818 as a signed 32-bit integer). The value is expressed as the number of seconds from a time epoch,
1819 which is 00:00:00 GMT January 1st, 1970. This value has a resolution of 1 second. All Date-Time
1820 values are expressed as UTC values.
1821  Intervals are encoded as 4-byte long (32 bit) binary unsigned numbers, transmitted big-endian.
1822 They have a resolution of 1 second.
1823  Structure Values are encoded as the concatenated encodings of the elements of the structure. All
1824 structures defined in this specification shallSHALL have all of their fields encoded in the order in
1825 which they appear in their respective structure descriptions.

18268.1.2 Examples
1827These examples are assumed to be encoding a Protocol Object whose tag is 420020. The examples are
1828shown as a sequence of bytes in hexadecimal notation:
1829  An Integer containing the decimal value 8:
1830 42 00 20 | 02 | 00 00 00 04 | 00 00 00 08 00 00 00 00
1831  A Long Integer containing the decimal value 123456789000000000:
1832 42 00 20 | 03 | 00 00 00 08 | 01 B6 9B 4B A5 74 92 00
1833  A Big Integer containing the decimal value 1234567890000000000000000000:
259kmip-1.0-spec-ed-0.98 3 September 2009
260Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 87 of 135
1834 42 00 20 | 04 | 00 00 00 10 | 00 00 00 00 03 FD 35 EB 6B C2 DF 46 18 08 00 00
1835  An Enumeration with value 255:
1836 42 00 20 | 05 | 00 00 00 04 | 00 00 00 FF 00 00 00 00
1837  A Boolean with the value True:
1838 42 00 20 | 06 | 00 00 00 08 | 00 00 00 00 00 00 00 01
1839  A Text String:
1840 42 00 20 | 07 | 00 00 00 0B | 48 65 6C 6C 6F 20 57 6F 72 6C 64 00 00 00 00 00
1841  An Octet String:
1842 42 00 20 | 08 | 00 00 00 03 | 01 02 03 00 00 00 00 00
1843  A Date-Time, containing the value for Friday, March 14, 2008, 11:56:40 GMT:
1844 42 00 20 | 09 | 00 00 00 08 | 00 00 00 00 47 DA 67 F8
1845  An Interval, containing the value for 10 days:
1846 42 00 20 | 0A | 00 00 00 04 | 00 0D 2F 00 00 00 00 00
1847  A Structure containing an Enumeration, value 254, followed by an Integer, value 255, having tags
1848 420004 and 420005 respectively:
1849 42 00 20 | 01 | 00 00 00 20 | 42 00 04 | 05 | 00 00 00 04 | 00 00 00 FE 00 00 00 00| 42 00 05 | 02 | 00 00 00
1850 04 | 00 00 00 FF 00 00 00 00

18518.1.3 Defined Values


1852This section specifies the values that are defined by this specification. In all cases where an extension
1853mechanism is allowed, this extension mechanism is only able to be used for communication between
1854parties that have pre-agreed understanding of the specific extensions.

18558.1.3.1 Tags
1856The following table defines the tag values for the objects and primitive data values for the protocol
1857messages.

Tag
Object Tag Value
(Unused) 000000 - 420000
Activation Date 420001
Application IdentifierData 420002
Application Names Space 420003
Application Specific 420004
IdentificationInformation
Archive Date 420005
Asynchronous Correlation 420006
Value
Asynchronous Indicator 420007
Attribute 420008
Attribute Index 420009

262kmip-1.0-spec-ed-0.98 3 September 2009


263Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 88 of 135
Tag
Object Tag Value
Attribute Name 42000A
Attribute Value 42000B
Authentication 42000C
Batch Count 42000D
Batch Error Continuation 42000E
Option
Batch Item 42000F
Batch Order Option 420010
Block Cipher Mode 420011
Cancellation Result 420012
Certificate 420013
Certificate Issuer 420014
Certificate Request 420015
Certificate Request Type 420016
Certificate Subject 420017
Certificate Subject Alternative 420018
Name
Certificate Subject 420019
Distinguished Name
Certificate Type 42001A
Certificate Value 42001B
Common Template-Attribute 42001C
Compromise Date 42001D
Compromise Occurrence Date 42001E
Contact Information 42001F
Credential 420020
Credential Type 420021
Credential Value 420022
Criticality Indicator 420023
CRT Coefficient 420024
Cryptographic Algorithm 420025
Cryptographic Length 420026
Cryptographic Parameters 420027
Cryptographic Usage Mask 420028
Custom Attribute 420029
D 42002A

265kmip-1.0-spec-ed-0.98 3 September 2009


266Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 89 of 135
Tag
Object Tag Value
Deactivation Date 42002B
Derivation Data 42002C
Derivation Method 42002D
Derivation Parameters 42002E
Destroy Date 42002F
Digest 420030
Digest Value 420031
Encryption Key Information 420032
G 420033
Hashing Algorithm 420034
Initial Date 420035
Initialization Vector 420036
Issuer 420037
Iteration Count 420038
IV/Counter/Nonce 420039
J 42003A
Key 42003B
Key Block 42003C
Key Material 42003D
Key Part Identifier 42003E
Key Value 42003F
Key Value Type 420040
Key Wrapping Data 420041
Key Wrapping Specification 420042
Last Changed Date 420043
Lease Time 420044
Link 420045
Link Type 420046
Linked Object Identifier 420047
MAC/Signature 420048
MAC/Signature Key 420049
Information
Maximum Items 42004A
Maximum Response Size 42004B
Message Extension 42004C

268kmip-1.0-spec-ed-0.98 3 September 2009


269Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 90 of 135
Tag
Object Tag Value
Modulus 42004D
Name 42004E
Name Type 42004F
Name Value 420050
Object Group 420051
Object Type 420052
Offset 420053
Opaque Data Type 420054
Opaque Data Value 420055
Opaque Object 420056
Operation 420057
Operation Policy Name 420058
P 420059
Padding Method 42005A
Prime Exponent P 42005B
Prime Exponent Q 42005C
Prime Field Size 42005D
Private Exponent 42005E
Private Key 42005F
Private Key Template-Attribute 420060
Private Key Unique Identifier 420061
Process Start Date 420062
Protect Stop Date 420063
Protocol Version 420064
Protocol Version Major 420065
Protocol Version Minor 420066
Public Exponent 420067
Public Key 420068
Public Key Template-Attribute 420069
Public Key Unique Identifier 42006A
Put Function 42006B
Q 42006C
Q String 42006D
Query Function 42006E
Recommended Curve 42006F

271kmip-1.0-spec-ed-0.98 3 September 2009


272Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 91 of 135
Tag
Object Tag Value
Replaced Unique Identifier 420070
Request Header 420071
Request Message 420072
Request Payload 420073
Response Header 420074
Response Message 420075
Response Payload 420076
Result Message 420077
Result Reason 420078
Result Status 420079
Revocation Message 42007A
Revocation Reason 42007B
Revocation Reason Code 42007C
Role Type 42007D
Salt 42007E
Secret Data 42007F
Secret Data Type 420080
Serial Number 420081
Server Information 420082
Split Key 420083
Split Key Method 420084
Split Key Parts 420085
Split Key Threshold 420086
State 420087
Storage Status Mask 420088
Symmetric Key 420089
Template 42008A
Template-Attribute 42008B
Time Stamp 42008C
Unique Identifier 42008D
Unique Batch Item ID 42008E
Usage Limits 42008F
Usage Limits Byte Count 420090
Usage Limits Object Count 420091
Usage Limits Total Bytes 420092

274kmip-1.0-spec-ed-0.98 3 September 2009


275Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 92 of 135
Tag
Object Tag Value
Usage Limits Total Objects 420093
Validity Date 420094
Validity Indicator 420095
Vendor Extension 420096
Vendor Identification 420097
Wrapping Method 420098
X 420099
Y 42009A
(Reserved) 42009B – 42FFFF
(Unused) 430000 – 53FFFF
Extensions 540000 – 54FFFF
(Unused) 550000 - FFFFFF

1858 Table 187: Tag Values

277kmip-1.0-spec-ed-0.98 3 September 2009


278Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 93 of 135
18598.1.3.2 Enumerations
1860The following tables define the values for enumerated lists.

18618.1.3.2.1 Credential Type Enumeration

Credential Type
Name Value
Username & Password 00000001
Token 00000002
Biometric Measurement 00000003
Certificate 00000004
Extensions 8XXXXXXX

1862 Table 188: Credential Type Enumeration

18638.1.3.2.2 Key Value Type Enumeration

Key Value Type


Name Value
Raw 00000001
Opaque 00000002
PKCS#1 00000003
PKCS#8 00000004
X.509 00000005
Transparent Symmetric Key 00000006
Transparent DSA Private Key 00000007
Transparent DSA Public Key 00000008
Transparent RSA Private Key 00000009
Transparent RSA Public Key 0000000A
Transparent DH Private Key 0000000B
Transparent DH Public Key 0000000C
Transparent ECDSA Private 0000000D
Key
Transparent ECDSA Public Key 0000000E
Transparent ECDH Private Key 0000000F
Transparent ECDH Public Key 00000010
Extensions 8XXXXXXX

1864 Table 189: Key Value Type Enumeration

280kmip-1.0-spec-ed-0.98 3 September 2009


281Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 94 of 135
18658.1.3.2.3 Wrapping Method Enumeration

Wrapping Method
Name Value
Encrypt 00000001
MAC/sign 00000002
Encrypt then MAC/sign 00000003
MAC/sign then encrypt 00000004
TR-31 00000005
Extensions 8XXXXXXX

1866 Table 190: Wrapping Method Enumeration

18678.1.3.2.4 Recommended Curve Enumeration for ECDSA and ECDH


1868Recommended curves are defined in NIST FIPS PUB 186-3.
Recommended Curve Enumeration
Name Value
P-192 00000001
K-163 00000002
B-163 00000003
P-224 00000004
K-233 00000005
B-233 00000006
P-256 00000007
K-283 00000008
B-283 00000009
P-384 0000000A
K-409 0000000B
B-409 0000000C
P-521 0000000D
K-571 0000000E
B-571 0000000F
Extensions 8XXXXXXX

1869 Table 191: Recommended Curve Enumeration for ECDSA and ECDH

283kmip-1.0-spec-ed-0.98 3 September 2009


284Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 95 of 135
18708.1.3.2.5 Certificate Type Enumeration

Certificate Type
Name Value
X.509 00000001
PGP 00000002
Extensions 8XXXXXXX

1871 Table 192: Certificate Type Enumeration

18728.1.3.2.6 Split Key Method Enumeration

Split Key Method


Name Value
XOR 00000001
16
Polynomial Sharing GF(2 ) 00000002
Polynomial Sharing Prime Field 00000003
Extensions 8XXXXXXX

1873 Table 193: Split Key Method Enumeration

18748.1.3.2.7 Secret Data Type Enumeration

Secret Data Type


Name Value
Password 00000001
Seed 00000002
Extensions 8XXXXXXX

1875 Table 194: Secret Data Type Enumeration

18768.1.3.2.8 Opaque Data Type Enumeration

Opaque Data Type


Name Value
Extensions 8XXXXXXX

1877 Table 195: Opaque Data Type Enumeration

18788.1.3.2.9 Name Type Enumeration

Name Type
Name Value
Uninterpreted Text String 00000001
URI 00000002
Extensions 8XXXXXXX

1879 Table 196: Name Type Enumeration

286kmip-1.0-spec-ed-0.98 3 September 2009


287Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 96 of 135
18808.1.3.2.10 Object Type Enumeration

Object Type
Name Value
Certificate 00000001
Symmetric Key 00000002
Public Key 00000003
Private Key 00000004
Split Key 00000005
Template 00000006
Secret Data 00000007
Opaque Object 00000008
Extensions 8XXXXXXX

1881 Table 197: Object Type Enumeration

18828.1.3.2.11 Cryptographic Algorithm Enumeration

Cryptographic Algorithm
Name Value
DES 00000001
3DES 00000002
AES 00000003
RSA 00000004
DSA 00000005
ECDSA 00000006
HMAC-SHA1 00000007
HMAC-SHA256 00000008
HMAC-SHA512 00000009
HMAC-MD5 0000000A
DH 0000000B
ECDH 0000000C
Extensions 8XXXXXXX

1883 Table 198: Cryptographic Algorithm Enumeration

289kmip-1.0-spec-ed-0.98 3 September 2009


290Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 97 of 135
18848.1.3.2.12 Block Cipher Mode Enumeration

Block Cipher Mode


Name Value
CBC 00000001
ECB 00000002
PCBC 00000003
CFB 00000004
OFB 00000005
CTR 00000006
CMAC 00000007
CCM 00000008
GCM 00000009
CBC-MAC 0000000A
NISTKeyWrap 0000000B
X9.102 AESKW 0000000C
X9.102 TDKW 0000000D
X9.102 AKW1 0000000E
X9.102 AKW2 0000000F
Extensions 8XXXXXXX

1885 Table 199: Block Cipher Mode Enumeration

18868.1.3.2.13 Padding Method Enumeration

Padding Method
Name Value
None 00000001
OAEP 00000002
PKCS5 00000003
SSL3 00000004
Zeros 00000005
ANSI X9.23 00000006
ISO 10126 00000007
PKCS1 v1.5 00000008
X9.31 00000009
PSS 0000000A
Extensions 8XXXXXXX

1887 Table 200: Padding Method Enumeration

292kmip-1.0-spec-ed-0.98 3 September 2009


293Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 98 of 135
18888.1.3.2.14 Hashing Algorithm Enumeration

Hashing Algorithm
Name Value
MD2 00000001
MD4 00000002
MD5 00000003
SHA-1 00000004
SHA-256 00000005
SHA-384 00000006
SHA-512 00000007
SHA-224 00000008
Extensions 8XXXXXXX

1889 Table 201: Hashing Algorithm Enumeration

295kmip-1.0-spec-ed-0.98 3 September 2009


296Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 99 of 135
18908.1.3.2.15 Role Type Enumeration
Role Type
Name Value
BDKZMK 00000001
CVKZPK 00000002
DEKMAC 00000003
MKACCVK 00000004
MKSMCCSC 00000005
MKSMIPVKIBM 00000006
MKDACPVKPVV 00000007
MKDNMKCVC 00000008
MKCPMKSMI 00000009
KMOTHMKSMC 0000000A
KEKMKIDN 0000000B
MAC16609MKAC 0000000C
MAC97971MKCAP 0000000D
MAC97972BDK 0000000E
MAC97973 0000000F
MAC97974 00000010
MAC97975 00000011
ZPK 00000012
PVKIBM 00000013
PVKPVV 00000014
PVKOTH 00000015
Extensions 8XXXXXXX

1891 Table 202: Role Type Enumeration


1892Note that while the set and definitions of role types are chosen to match TR-31 there is no necessity to
1893match binary representations.

18948.1.3.2.16 State Enumeration

State
Name Value
Pre-Active 00000001
Active 00000002
Deactivated 00000003
Compromised 00000004
Destroyed 00000005
Destroyed Compromised 00000006
298kmip-1.0-spec-ed-0.98 3 September 2009
299Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 100 of 135
Extensions 8XXXXXXX

1895 Table 203: State Enumeration

18968.1.3.2.17 Revocation Reason Code Enumeration

Revocation Reason Code


Name Value
Key Compromise 00000001
CA Compromise 00000002

Affiliation Changed 00000003

Superseded 00000004

Cessation of Operation 00000005

Certificate Hold 00000006

Privilege Withdrawn 00000007

Revoked By creator 00000008


Revoked By Administrator 00000009
Extensions 8XXXXXXX

1897 Table 204: Revocation Reason Code Enumeration

18988.1.3.2.18 Link Type Enumeration

Link Type
Name Value
Certificate Link 00000101
Public Key Link 00000102
Private Key Link 00000103
Derivation Base Object Link 00000104
Derived Key Link 00000105
Replacement Object Link 00000106
Replaced Object Link 00000107
Extensions 8XXXXXXX

1899 Table 205: Link Type Enumeration


1900 Note: Link Types start at 101 to avoid any confusion with Object Types.

301kmip-1.0-spec-ed-0.98 3 September 2009


302Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 101 of 135
19018.1.3.2.19 Derivation Method Enumeration

Derivation Method
Name Value
PBKDF2 00000001
HASH 00000002
HMAC 00000003
ENCRYPT 00000004
NIST800-108-C 00000005
NIST800-108-F 00000006
NIST800-108-DPI 00000007
Extensions 8XXXXXXX

1902 Table 206: Derivation Method Enumeration

19038.1.3.2.20 Certificate Request Type Enumeration

Certificate Request Type


Name Value
PCKS#10 00000001
PEM 00000002
PGP 00000003
Extensions 8XXXXXXX

1904 Table 207: Certificate Request Type Enumeration

19058.1.3.2.21 Validity Indicator Enumeration

Validity Indicator
Name Value
Valid 00000001
Invalid 00000002
Unknown 00000003
Extensions 8XXXXXXX

1906 Table 208: Validity Indicator Enumeration

19078.1.3.2.22 Query Function Enumeration

Query Function
Name Value
Query Operations 00000001
Query Objects 00000002
Query Server Information 00000003
Query Application Namespaces 00000004

304kmip-1.0-spec-ed-0.98 3 September 2009


305Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 102 of 135
Extensions 8XXXXXXX

1908 Table 209: Query Function Enumeration

19098.1.3.2.23 Cancellation Result Enumeration

Cancellation Result
Name Value
Canceled 00000001
Unable to Cancel 00000002
Completed 00000003
Failed 00000004
Unavailable 00000005
Extensions 8XXXXXXX

1910 Table 210: Cancellation Result Enumeration

19118.1.3.2.24 Put Function Enumeration

Put Function
Name Value
New 00000001
Replace 00000002
Extensions 8XXXXXXX

1912 Table 211: Put Function Enumeration

307kmip-1.0-spec-ed-0.98 3 September 2009


308Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 103 of 135
19138.1.3.2.25 Operation Enumeration

Operation
Name Value
Create 00000001
Create Key Pair 00000002
Register 00000003
Re-key 00000004
Derive Key 00000005
Certify 00000006
Re-certify 00000007
Locate 00000008
Check 00000009
Get 0000000A
Get Attributes 0000000B
Get Attribute List 0000000C
Add Attribute 0000000D
Modify Attribute 0000000E
Delete Attribute 0000000F
Obtain Lease 00000010
Get Usage Allocation 00000011
Activate 00000012
Revoke 00000013
Destroy 00000014
Archive 00000015
Recover 00000016
Validate 00000017
Query 00000018
Cancel 00000019
Poll 0000001A
Notify 0000001B
Put 0000001C
Extensions 8XXXXXXX

1914 Table 212: Operation Enumeration

310kmip-1.0-spec-ed-0.98 3 September 2009


311Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 104 of 135
19158.1.3.2.26 Result Status Enumeration

Result Status
Name Value
Success 00000000
Operation Failed 00000001
Operation Pending 00000002
Operation Undone 00000003
Extensions 8XXXXXXX

1916 Table 213: Result Status Enumeration

19178.1.3.2.27 Result Reason Enumeration

Result Reason
Name Value
Item Not Found 00000001
Response Too Large 00000002
Authentication Not Successful 00000003
Invalid Message 00000004
Operation Not Supported 00000005
Missing Data 00000006
Invalid Field 00000007
Feature Not Supported 00000008
Operation Canceled By 00000009
Requester
Cryptographic Failure 0000000A
Illegal Operation 0000000B
Permission Denied 0000000C
Object archived 0000000D
Index Out of Bounds 0000000E
General Failure 00000100
Extensions 8XXXXXXX

1918 Table 214: Result Reason Enumeration

19198.1.3.2.28 Batch Error Continuation Enumeration

Batch Error Continuation


Name Value
Continue 00000001
Stop 00000002
Undo 00000003

313kmip-1.0-spec-ed-0.98 3 September 2009


314Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 105 of 135
Extensions 8XXXXXXX

1920 Table 215: Batch Error Continuation Enumeration

19218.1.3.3 Bit Masks

19228.1.3.3.1 Cryptographic Usage Mask

Cryptographic Usage Mask


Name Value
Sign 00000001
Verify 00000002
Encrypt 00000004
Decrypt 00000008
Wrap Key 00000010
Unwrap Key 00000020
Export 00000040
MAC Generate 00000080
MAC Verify 00000100
Derive Key 00000200
Content Commitment 00000400
(Non Repudiation)
Key Agreement 00000800
Certificate Sign 00001000
CRL Sign 00002000
Generate Cryptogram 00004000
Validate Cryptogram 00008000
Translate Encrypt 00010000
Translate Decrypt 00020000
Translate Wrap 00040000
Translate Unwrap 00080000
Extensions XXXX0000

1923 Table 216: Cryptographic Usage Mask


1924This list takes into consideration values which mayMAY appear in the Key Usage extension in an X.509
1925certificate.

316kmip-1.0-spec-ed-0.98 3 September 2009


317Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 106 of 135
19268.1.3.3.2 Storage Status Mask

Storage Status Mask


Name Value
On-line storage 00000001
Archival storage 00000002
Extensions XXXXXXX0

1927 Table 217: Storage Status Mask

8.2
1928XML Encoding
1929An XML Encoding has not yet been defined.

19309 Transport
1931Transport protocols are not part of the message definitions, and are external to this protocol. The Usage
1932Guide, however, describes two profiles for implementation of this protocol over secure transport protocols,
1933namely:
1934  SSL/TLS over TCP. This profile describes the implementation of this protocol using SSL/TLS
1935 encryption, with client and server authentication features enabled, over a normal TCP stream.
1936  HTTPS over TCP. This profile describes the implementation of this protocol using HTTPS, with
1937 client and server authentication features enabled, over a normal TCP stream.
1938To ensure a base level of interoperability, all server implementations shouldSHOULD, at least, support
1939the SSL/TLS and HTTPS transport protocols as described in the Usage Guide.

194010Error Handling
1941This section details the specific Result Reasons that shouldSHOULD be returned for errors detected.
1942Note that this is not an exhaustive list of possible errors for each operation (allowing other Result
1943Reasons to be returned if an implementation needs to do so).

10.1
1944General
1945These errors mayMAY occur when any protocol message is received by the server.

319kmip-1.0-spec-ed-0.98 3 September 2009


320Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 107 of 135
Error Definition Action Result Reason
Protocol major version Response message containing Invalid Message
mismatch a header and a Batch Item
without Operation, but with the
Result Status field set to
Operation Failed
Error parsing batch item or Batch item fails; Result Status is Invalid Message
payload within batch item Operation Failed
(e.g., required fields missing,
etc.)
The same field is contained in Result Status is Operation Invalid Message
a header/batch item/payload Failed
more than once
Same major version, different Ignore unknown fields, process N/A
minor versions (e.g., client is rest normally
newer); unknown fields/fields
the server does not
understand
Same major & minor version, Result Status is Operation Invalid Field
unknown field Failed
Client is not allowed to Result Status is Operation Permission Denied
perform the specified Failed
operation
Operation is not able to be Result Status is Operation Operation Not Supported
completed synchronously and Failed
client does not support
asynchronous requests
Maximum Response Size has Result Status is Operation Response Too Large
been exceeded Failed

1946 Table 218: General Errors

10.2
1947Create
Error Definition Result Status Result Reason
Object Type is not recognized Operation Failed Invalid Field
Templates that do not exist are given Operation Failed Item Not Found
in request
Incorrect attribute value(s) specified Operation Failed Invalid Field
(e.g., initial date 5 years ago)
Error creating cryptographic object Operation Failed Cryptographic Failure
(e.g., key material generation issue)
Trying to set more instances than the Operation Failed Index Out of Bounds
server supports of an attribute that is
able toMAY have multiple instances

322kmip-1.0-spec-ed-0.98 3 September 2009


323Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 108 of 135
Trying to create a new object with the Operation Failed Invalid Field
same Name attribute value as an
existing object
The particular Application Namespace Operation Failed Application Namespace
is not supported and Application Data Not Supported
cannot be generated if it was omitted
from the client request
Template object is archived Operation Failed Object aArchived

1948 Table 219: Create Errors

10.3
1949Create Key Pair
Error Definition Result Status Result Reason
Templates that do not exist are given Operation Failed Item Not Found
in request
Incorrect attribute value(s) specified Operation Failed Invalid Field
Error creating cryptographic object Operation Failed Cryptographic Failure
(e.g., key material generation issue)
Trying to create a new object with the Operation Failed Invalid Field
same Name attribute value as an
existing object
Trying to set more instances than the Operation Failed Index Out of Bounds
server supports of an attribute that is
able toMAY have multiple instances
Required field(s) missing Operation Failed Invalid Message
The particular Application Namespace Operation Failed Application Namespace
is not supported and Application Data Not Supported
cannot be generated if it was omitted
from the client request
Template object is archived Operation Failed Object Aarchived

1950 Table 220: Create Key Pair Errors

325kmip-1.0-spec-ed-0.98 3 September 2009


326Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 109 of 135
10.4
1951Register
Error Definition Result Status Result Reason
Object Type is not recognized Operation Failed Invalid Field
Object Type does not match type of Operation Failed Invalid Field
cryptographic object provided
Templates that do not exist are given Operation Failed Item Not Found
in request
Incorrect attribute value(s) specified Operation Failed Invalid Field
(e.g., initial date 5 years ago)
Trying to register a new object with the Operation Failed Invalid Field
same Name attribute value as an
existing object
Trying to set more instances than the Operation Failed Index Out of Bounds
server supports of an attribute that is
able toMAY have multiple instances
The particular Application Namespace Operation Failed Application Namespace
is not supported and Application Data Not Supported
cannot be generated if it was omitted
from the client request
Template object is archived Operation Failed Object Aarchived

1952 Table 221: Register Errors

10.5
1953Re-key
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
Object specified is not able to be re- Operation Failed Permission Denied
keyed (e.g., not a symmetric key, or the
permissions do not allow it)
Offset field is not permitted to be Operation Failed Invalid Message
specified at the same time as any of the
Activation Date, Process Start Date,
Protect Stop Date, or Deactivation Date
attributes
Cryptographic error during re-key Operation Failed Cryptographic Failure
The particular Application Namespace Operation Failed Application Namespace Not
is not supported and Application Data Supported
cannot be generated if it was omitted
from the client request
Object is archived Operation Failed Object Aarchived

1954 Table 222: Re-key Errors

328kmip-1.0-spec-ed-0.98 3 September 2009


329Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 110 of 135
10.6
1955Derive Key
Error Definition Result Status Result Reason
One or more of the objects specified Operation Failed Item Not Found
do not exist
One or more of the objects specified Operation Failed Invalid Field
are not of the correct type
Templates that do not exist are given Operation Failed Item Not Found
in request
Invalid Derivation Method Operation Failed Invalid Field
Invalid Derivation Parameters Operation Failed Invalid Field
Ambiguous derivation data provided Operation Failed Invalid Message
both with Derivation Data and Secret
Data object.

Incorrect attribute value(s) specified Operation Failed Invalid Field


(e.g., initial date 5 years ago)
One or more of the specified objects Operation Failed Invalid Field
are not able to be used to derive a new
key
Trying to derive a new key with the Operation Failed Invalid Field
same Name attribute value as an
existing object
The particular Application Namespace Operation Failed Application Namespace
is not supported and Application Data Not Supported
cannot be generated if it was omitted
from the client request
One or more of the objects is archived Operation Failed Object Aarchived

1956 Table 223: Derive Key Errors

10.7
1957Certify
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
Object specified is not able to be Operation Failed Permission Denied
certified (e.g., not a public key or the
permissions do not allow it)
The Certificate Request does not Operation Failed Invalid Field
contain a signed certificate request of
the specified Certificate Request Type
Server does not support operation Operation Failed Operation Not Supported
The particular Application Namespace Operation Failed Application Namespace
is not supported and Application Data Not Supported

331kmip-1.0-spec-ed-0.98 3 September 2009


332Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 111 of 135
cannot be generated if it was omitted
from the client request
Object is archived Operation Failed Object Aarchived

1958 Table 224: Certify Errors

10.8
1959Re-certify
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
Object specified is not able to be Operation Failed Permission Denied
certified (e.g., not a certificate or the
permissions do not allow it)
The Certificate Request does not Operation Failed Invalid Field
contain a signed certificate request of
the specified Certificate Request Type
Server does not support operation Operation Failed Operation Not Supported
Offset field is not permitted to be Operation Failed Invalid Message
specified at the same time as any of
the Activation Date or Deactivation
Date attributes
The particular Application Namespace Operation Failed Application Namespace
is not supported and Application Data Not Supported
cannot be generated if it was omitted
from the client request
Object is archived Operation Failed Object Aarchived

1960 Table 225: Re-certify Errors

10.9
1961Locate
Error Definition Result Status Result Reason
Non-existing attributes, attributes that Operation Failed Invalid Field
the server does not understand or
templates that do not exist are given in
request

1962 Table 226: Locate Errors

10.10Check
1963
Error Definition Result Status Result Reason
Object does not exist Operation Failed Item Not Found
Object is archived Operation Failed Object Aarchived

1964 Table 227: Check Errors

334kmip-1.0-spec-ed-0.98 3 September 2009


335Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 112 of 135
10.11
1965Get
Error Definition Result Status Result Reason
Object does not exist Operation Failed Item Not Found
Wrapping key does not exist Operation Failed Item Not Found
Object with Wrapping Key ID exists, Operation Failed Illegal Operation
but it is not a key
Object with Wrapping Key ID exists, Operation Failed Permission Denied
but it is not able to be used for
wrapping
Object with MAC/Signature Key ID Operation Failed Illegal Operation
exists, but it is not a key
Object with MAC/Signature Key ID Operation Failed Permission Denied
exists, but it is not able to be used for
MACing/signing
Object exists and is not a Template, Operation Failed Illegal Operation
but the server only has attributes for
this object
Cryptographic Parameters associated Operation Failed Item Not Found
with object do not exist or do not
match those provided in the
Encryption Key Information and/or
Signature Key Information
Object is archived Operation Failed Object aArchived

1966 Table 228: Get Errors

10.12Get
1967 Attributes
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
An Attribute Index is specified but no Operation Failed Item Not Found
matching instance exists.
Object is archived Operation Failed Object Aarchived

1968 Table 229: Get Attributes Errors

10.13Get
1969 Attribute List
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
Object is archived Operation Failed Object Aarchived

337kmip-1.0-spec-ed-0.98 3 September 2009


338Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 113 of 135
1970 Table 230: Get Attribute List Errors

10.14Add
1971 Attribute
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
Attempt to add read-only attribute Operation Failed Permission Denied
The specified attribute already exists Operation Failed Illegal Operation
New attribute contains Attribute Index Operation Failed Invalid Field
Trying to add a Name attribute with the Operation Failed Illegal Operation
same value that another object already
has
Trying to add a new instance to an Operation Failed Index Out of Bounds
attribute with multiple instances but the
server limit on instances is reached
The particular Application Namespace Operation Failed Application Namespace Not
is not supported and Application Data Supported
cannot be generated if it was omitted
from the client request
Object is archived Operation Failed Object Aarchived

1972 Table 231: Add Attribute Errors

10.15Modify
1973 Attribute
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
A specified attribute does not exist (i.e., Operation Failed Invalid Field
it needs to first be added)
An Attribute Index is specified, but no Operation Failed Item Not Found
matching instance exists.
The specified attribute is read-only Operation Failed Permission Denied
Trying to set the Name attribute value Operation Failed Illegal Operation
to a value already used by another
object
The particular Application Namespace Operation Failed Application Namespace
is not supported and Application Data Not Supported
cannot be generated if it was omitted
from the client request
Object is archived Operation Failed Object aArchived

1974 Table 232: Modify Attribute Errors

340kmip-1.0-spec-ed-0.98 3 September 2009


341Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 114 of 135
10.16Delete
1975 Attribute
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
Attempt to delete read-only/required Operation Failed Permission Denied
attribute
Attribute Index is specified, but attribute Operation Failed Item Not Found
does not have multiple instances (i.e.,
no Attribute Index is permitted to be
specified)
No attribute with specified name exists Operation Failed Item Not Found
Object is archived Operation Failed Object aArchived

1976 Table 233: Delete Attribute Errors

10.17Obtain
1977 Lease
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
The server determines that a new lease Operation Failed Permission Denied
is not permitted to be issued for the
specified cryptographic object
Object is archived Operation Failed Object aArchived

1978 Table 234: Obtain Lease Errors

10.18Get
1979 Usage Allocation
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
Object has no Usage Limits attribute or Operation Failed Illegal Operation
object is not able to be used for
protection purposes
Both Usage Limits Byte Count and Operation Failed Invalid Message
Usage Limits Object Count fields are
specified
Neither Byte Count or Object Count is Operation Failed Invalid Message
specified
A usage type (Byte Count or Object Operation Failed Operation Not Supported
Count) is specified in the request, but
the usage allocation for the object
mayMAY only be given for the other
type
343kmip-1.0-spec-ed-0.98 3 September 2009
344Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 115 of 135
Object is archived Operation Failed Object aArchived

1980 Table 235: Get Usage Allocation Errors

10.19Activate
1981
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
Unique Identifier specifies template or Operation Failed Illegal Operation
other object that is not able to be
activated
Object is not in Pre-Active state Operation Failed Permission Denied
Object is archived Operation Failed Object aArchived

1982 Table 236: Activate Errors

10.20Revoke
1983
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
Revocation Reason is not recognized Operation Failed Invalid Field
Unique Identifier specifies template or Operation Failed Illegal Operation
other object that is not able to be
revoked
Object is archived Operation Failed Object aArchived

1984 Table 237: Revoke Errors

10.21Destroy
1985
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
Object exists, but has already been Operation Failed Permission Denied
destroyed
Object is not in Deactivated state Operation Failed Permission Denied
Object is archived Operation Failed Object aArchived

1986 Table 238: Destroy Errors

346kmip-1.0-spec-ed-0.98 3 September 2009


347Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 116 of 135
10.22Archive
1987
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists
Object is already archived Operation Failed Object aArchived

1988 Table 239: Archive Errors

10.23Recover
1989
Error Definition Result Status Result Reason
No object with the specified Unique Operation Failed Item Not Found
Identifier exists

1990 Table 240: Recover Errors

10.24Validate
1991
Error Definition Result Status Result Reason

The combination of Certificate Objects Operation Failed Invalid Message


and Unique Identifiers do not specify a
certificate list

One or more of the objects is archived Operation Failed Object aArchived

1992 Table 241: Validate Errors

10.25Query
1993
1994N/A

10.26Cancel
1995
1996N/A

10.27Poll
1997
Error Definition Result Status Result Reason
No outstanding operation with the Operation Failed Item Not Found
specified Asynchronous Correlation
Value exists

1998 Table 242: Poll Errors

10.28Batch
1999 Items
2000These errors mayMAY occur when a protocol message with one or more batch items is processed by the
2001server. If a message with one or more batch items was parsed correctly, then the response message
2002shouldSHOULD include response(s) to the batch item(s) in the request according to the table below.
2003

349kmip-1.0-spec-ed-0.98 3 September 2009


350Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 117 of 135
Error Definition Result Status Result Reason
Processing of batch item fails with Batch item fails. Responses See tables above, referring
Batch Error Continuation Option set to to batch items that have to the operation being
Stop already been processed are performed in the batch item
returned normally. that failed
Responses to batch items
that have not been processed
are not returned.
Processing of batch item fails with Batch item fails. Responses See tables above, referring
Batch Error Continuation Option set to to other batch items are to the operation being
Continue returned normally. performed in the batch item
that failed
Processing of batch item fails with Batch item fails. Batch items See tables above, referring
Batch Error Continuation Option set to that had been processed to the operation being
Undo have been undone and their performed in the batch item
responses are returned with that failed
Undone result status.

2004 Table 243: Batch Items Errors

200511 Security Considerations


2006TBD

200712Attribute Cross-reference
2008The following table of Attribute names indicates the Managed Object(s) for which each attribute applies.
2009This table is not normative.

Attribute Name Managed Object


Symmetric Key

Private Key

Template
Certificate

Public Key

Split Key

Secret Data

Opaque Object
Unique Identifier x x x x x x x x
Name x x x x x x x x
Object Type x x x x x x x x
Cryptographic Algorithm x x x x x x
Cryptographic Length x x x x x x
Cryptographic Parameters x x x x x x
Certificate Type x
Certificate Issuer x
Certificate Subject x
Digest x x x x x x
352kmip-1.0-spec-ed-0.98 3 September 2009
353Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 118 of 135
Attribute Name Managed Object
Operation Policy Name x x x x x x x x
Cryptographic Usage Mask x x x x x x x
Lease Time x x x x x x x
Usage Limits x x x x x
State x x x x x x
Initial Date x x x x x x x x
Activation Date x x x x x x x
Process Start Date x x x
Protect Stop Date x x x
Deactivation Date x x x x x x x x
Destroy Date x x x x x x x
Compromise Occurrence Date x x x x x x x
Compromise Date x x x x x x x
Revocation Reason x x x x x x x
Archive Date x x x x x x x x
Object Group x x x x x x x x
Link x x x x x x
Application Specific IdentificationInformation x x x x x x x x
Contact Information x x x x x x x x
Last Changed Date x x x x x x x x
Custom Attribute x x x x x x x x

2010 Table 244: Attribute Cross-reference

355kmip-1.0-spec-ed-0.98 3 September 2009


356Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 119 of 135
201113Tag Cross-reference
2012This table is not normative.
Object Defined Type Notes
Activation Date 2.17 Date-Time
Application IdentifierData 2.28 Text String
Application Names Space 2.28 Text String
Application Specific
2.28 Structure
IdentificationInformation
Archive Date 2.25 Date-Time
Asynchronous Correlation Value 5.8 Octet String
Asynchronous Indicator 5.7 Boolean
Attribute 1.9.1 Structure
Attribute Index 1.9.1 Integer
Attribute Name 1.9.1 Text String
Attribute Value 1.9.1 * type varies
Authentication 5.6 Structure
Batch Count 5.14 Integer
Batch Error Continuation Option 5.13, 8.1.3.2.28 Enumeration
Batch Item 5.15 Structure
Batch Order Option 5.12 Boolean
Block Cipher Mode 2.6, 8.1.3.2.12 Enumeration
Cancellation Result 3.25, 8.1.3.2.23 Enumeration
Certificate 1.10.1 Structure
Certificate Issuer 2.8 Structure
Certificate Request 3.6, 3.7 Octet String
Certificate Request Type 3.6, 3.7, 8.1.3.2.20 Enumeration
Certificate Subject 2.9 Structure
Certificate Subject Alternative Name 2.9 Text String
Certificate Subject Distinguished
2.9 Text String
Name
Certificate Type 1.10.1, 2.7 , 8.1.3.2.5 Enumeration
Certificate Value 1.10.1 Octet String
Common Template-Attribute 1.9.8 Structure
Compromise Occurrence Date Date-Time
Compromise Date 2.23 Date-Time
Contact Information 2.29 Text String
Credential 1.9.2 Structure
Credential Type 1.9.2, 8.1.3.2.1 Enumeration
Credential Value 1.9.2 Octet String
Criticality Indicator 5.16 Boolean
CRT Coefficient 1.9.7 Big Integer
Cryptographic Algorithm 2.4, 8.1.3.2.11 Enumeration
Cryptographic Length 2.5 Integer
358kmip-1.0-spec-ed-0.98 3 September 2009
359Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 120 of 135
Object Defined Type Notes
Cryptographic Parameters 2.6 Structure
Cryptographic Usage Mask 2.12, 8.1.3.3.1 Integer Bit mask
Custom Attribute 2.31 * type varies
D 1.9.7 Big Integer
Deactivation Date 2.20 Date-Time
Derivation Data 3.5 Octet String
Derivation Method 3.5, 8.1.3.2.19 Enumeration
Derivation Parameters 3.5 Structure
Destroy Date 2.21 Date-Time
Digest 2.10 Structure
Digest Value 2.10 Octet String
Encryption Key Information 1.9.5 Structure
Extensions 8.1.3
G 1.9.7 Big Integer
Hashing Algorithm 2.6, 2.10, 8.1.3.2.14 Enumeration
Initial Date 2.16 Date-Time
Initialization Vector 3.5 Octet String
Issuer 2.8 Text String
Iteration Count 3.5 Integer
IV/Counter/Nonce 1.9.5 Octet String
J 1.9.7 Big Integer
Key 1.9.7 Octet String
Key Block 1.9.3 Structure
Octet String /
Key Material 1.9.4, 1.9.7
Structure
Key Part Identifier 1.10.5 Integer
Octet String /
Key Value 1.9.4
Structure
Key Value Type 1.9.4, 8.1.3.2.2 Enumeration
Key Wrapping Data 1.9.5 Structure
Key Wrapping Specification 1.9.6 Structure
Last Changed Date 2.30 Date-Time
Lease Time 2.13 Interval
Link 2.27 Structure
Link Type 2.27, 8.1.3.2.18 Enumeration
Linked Object Identifier 2.27 Text String
MAC/Signature 1.9.5 Octet String
MAC/Signature Key Information 1.9.5 Text String
Maximum Items 3.8 Integer
Maximum Response Size 5.3 Integer
Message Extension 5.16 Structure
Modulus 1.9.7 Big Integer
Name 2.2 Structure

361kmip-1.0-spec-ed-0.98 3 September 2009


362Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 121 of 135
Object Defined Type Notes
Name Type 2.2, 8.1.3.2.9 Enumeration
Name Value 2.2 Text String
Object Group 2.26 Text String
Object Type 2.3, 8.1.3.2.10 Enumeration
Offset 3.4, 3.7 Interval
Opaque Data Type 1.10.8, 8.1.3.2.8 Enumeration
Opaque Data Value 1.10.8 Octet String
Opaque Object 1.10.8 Structure
Operation 5.2, 8.1.3.2.25 Enumeration
Operation Policy Name 2.11 Text String
P 1.9.7 Big Integer
Padding Method 2.6, 8.1.3.2.13 Enumeration
Prime Exponent P 1.9.7 Big Integer
Prime Exponent Q 1.9.7 Big Integer
Prime Field Size 1.10.5 Big Integer
Private Exponent 1.9.7 Big Integer
Private Key 1.10.4 Structure
Private Key Template-Attribute 1.9.8 Structure
Private Key Unique Identifier 3.2 Text String
Process Start Date 2.18 Date-Time
Protect Stop Date 2.19 Date-Time
Protocol Version 5.1 Structure
Protocol Version Major 5.1 Integer
Protocol Version Minor 5.1 Integer
Public Exponent 1.9.7 Big Integer
Public Key 1.10.3 Structure
Public Key Template-Attribute 1.9.8 Structure
Public Key Unique Identifier 3.2 Text String
Put Function 4.2, 8.1.3.2.24 Enumeration
Q 1.9.7 Big Integer
Q String 1.9.7 Octet String
Query Function 3.24, 8.1.3.2.22 Enumeration
Recommended Curve 1.9.7, 8.1.3.2.4 Enumeration
Replaced Unique Identifier 4.2 Text String
Request Header 6.2, 6.3 Structure
Request Message 6.1 Structure
Request Payload 3, 4, 6.2, 6.3 Structure
Response Header 6.2, 6.3 Structure
Response Message 6.1 Structure
Response Payload 3, 6.2, 6.3 Structure
Result Message 5.11 Text String
Result Reason 5.10, 8.1.3.2.27 Enumeration
Result Status 5.9, 8.1.3.2.26 Enumeration

364kmip-1.0-spec-ed-0.98 3 September 2009


365Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 122 of 135
Object Defined Type Notes
Revocation Message 2.24 Text String
Revocation Reason 2.24 Structure
Revocation Reason Code 2.24, 8.1.3.2.17 Enumeration
Role Type 2.6, 8.1.3.2.15 Enumeration
Salt 3.5 Octet String
Secret Data 1.10.7 Structure
Secret Data Type 1.10.7, 8.1.3.2.7 Enumeration
Serial Number 2.8 Text String
contents vendor-
Server Information 3.24 Structure
specific
Split Key 1.10.5 Structure
Split Key Method 1.10.5, 8.1.3.2.6 Enumeration
Split Key Parts 1.10.5 Integer
Split Key Threshold 1.10.5 Integer
State 2.15, 8.1.3.2.16 Enumeration
Storage Status Mask 3.8, 8.1.3.3.2 Integer Bit mask
Symmetric Key 1.10.2 Structure
Template 1.10.6 Structure
Template-Attribute 1.9.8 Structure
Time Stamp 5.5 Date-Time
Transparent* 1.9.7 Structure
Unique Identifier 2.1 Text String
Unique Batch Item ID 5.4 Octet String
Usage Limits 2.14 Structure
Usage Limits Byte Count 2.14 Big Integer
Usage Limits Object Count 2.14 Big Integer
Usage Limits Total Bytes 2.14 Big Integer
Usage Limits Total Objects 2.14 Big Integer
Validity Date 3.23 Date-Time
Validity Indicator 3.23, 8.1.3.2.21 Enumeration
contents vendor-
Vendor Extension 5.16 Structure
specific
Vendor Identification 3.24, 5.16 Text String
Wrapping Method 1.9.5, 8.1.3.2.3 Enumeration
X 1.9.7 Big Integer
Y 1.9.7 Big Integer
2013 Table 245: Tag Cross-reference

201414Operation and Object Cross-reference


2015The following table indicates the types of Managed Object(s) that each Operation is able to accepts as
2016input or provide as output. This table is not normative.

Operation Managed Objects

367kmip-1.0-spec-ed-0.98 3 September 2009


368Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 123 of 135
Certificate Symmetric Public Private Split Key Template Secret Opaque
Key Key Key Data Object
Create N/A Y N/A N/A N/A Y N/A N/A
Create Key Pair N/A N/A Y Y N/A N/A N/A N/A
Register Y Y Y Y Y Y Y Y
Re-Key N/A Y N/A N/A N/A Y N/A N/A
Derive Key N/A Y N/A N/A N/A Y Y N/A
Certify Y N/A Y N/A N/A Y N/A N/A
Re-certify Y N/A N/A N/A N/A Y N/A N/A
Locate Y Y Y Y Y Y Y Y
Check Y Y Y Y Y N/A Y Y
Get Y Y Y Y Y Y Y Y
Get Attributes Y Y Y Y Y Y Y Y
Get Attribute List Y Y Y Y Y Y Y Y
Add Attribute Y Y Y Y Y Y Y Y
Modify Attribute Y Y Y Y Y Y Y Y
Delete Attribute Y Y Y Y Y Y Y Y
Obtain Lease Y Y Y Y Y N/A Y N/A
Get Usage N/A Y Y Y N/A N/A N/A N/A
Allocation
Activate Y Y Y Y Y N/A Y N/A
Revoke Y Y N/A Y Y N/A Y Y
Destroy Y Y Y Y Y Y Y Y
Archive Y Y Y Y Y Y Y Y
Recover Y Y Y Y Y Y Y Y
Validate Y N/A N/A N/A N/A N/A N/A N/A
Query N/A N/A N/A N/A N/A N/A N/A N/A
Cancel N/A N/A N/A N/A N/A N/A N/A N/A
Poll N/A N/A N/A N/A N/A N/A N/A N/A
Notify N/A N/A N/A N/A N/A N/A N/A N/A
Put Y Y Y Y Y Y Y Y

2017 Table 246: Operation and Object Cross-reference

370kmip-1.0-spec-ed-0.98 3 September 2009


371Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 124 of 135
201815Acronyms
2019The following abbreviations and acronyms are used in this document:
20203DES - Three key Data Encryption Standard
2021AES - Advanced Encryption Standard specified in FIPS 197
2022ASN.1 - Abstract Syntax Notation One
2023CA - Certification Authority
2024CBC - Cipher Block Chaining
2025CPU - Central Processing Unit
2026CRL - Certificate Revocation List
2027CRT - Chinese Remainder Theorem
2028DER - Distinguished Encoding Rules
2029DES - Data Encryption Standard
2030DH - Diffie-Hellman
2031DSA - Digital Signature Algorithm specified in FIPS 186-3
2032DSKPP - Dynamic Symmetric Key Provisioning Protocol
2033ECB - Electronic Code Book
2034ECDH - Elliptic Curve Diffie-Hellman
2035ECDSA - Elliptic Curve Digital Signature Algorithm specified in ANSX9.62
2036HMAC - Keyed-Hash Message Authentication Code specified in FIPS 198
2037HTTP - Hyper Text Transfer Protocol
2038HTTP(S) - Hyper Text Transfer Protocol (Secure socket)
2039IEEE - Institute of Electrical and Electronics Engineers
2040IETF - Internet Engineering Task Force
2041IPsec - Internet Protocol Security
2042IV - Initialization Vector
2043KMIP - Key Management Interoperability Protocol
2044MAC - Message Authentication Code
2045MD5 - Message Digest 5 Algorithm
2046PBKDF2 - Password-Based Key Derivation Function 2
2047PGP - Pretty Good Privacy
2048PKCS - Public Key Cryptography Standards
2049POSIX - Portable Operating System Interface
2050RFC - Request for Comments documents of IETF
2051RSA - Rivest, Shamir, Adelman (an algorithm)
2052SHA-1 - Secure Hash Algorithm Revision One
2053SSL/TLS - Secure Sockets Layer/Transport Layer Security
373kmip-1.0-spec-ed-0.98 3 September 2009
374Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 125 of 135
2054S/MIME - Secure/Multipurpose Internet Mail Extensions
2055TCP - Transport Control Protocol
2056TTLV - Tag, Type, Length, Value
2057URI - Unique Resource Identifier
2058UTF - Universal Transformation Format
2059XML - Extensible Markup Language

376kmip-1.0-spec-ed-0.98 3 September 2009


377Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 126 of 135
2060A. List of Figures and Tables
2061Figures
2062Figure 1: Cryptographic Object States and Transitions.............................................................................36
2063
2064Tables
2065Table 1: Attribute Object Structure............................................................................................................. 10
2066Table 2: Credential Object Structure.......................................................................................................... 11
2067Table 3: Key Block Object Structure.......................................................................................................... 12
2068Table 4: Key Value Object Structure.......................................................................................................... 12
2069Table 5: Key Wrapping Data Object Structure........................................................................................... 13
2070Table 6: Encryption Key Information Object Structure...............................................................................14
2071Table 7: MAC/Signature Key Information Object Structure........................................................................14
2072Table 8: Key Wrapping Specification Object Structure..............................................................................14
2073Table 9: Key Material Object Structure for Transparent Symmetric Keys..................................................15
2074Table 10: Key Material Object Structure for Transparent DSA Private Keys.............................................15
2075Table 11: Key Material Object Structure for Transparent DSA Public Keys...............................................15
2076Table 12: Key Material Object Structure for Transparent RSA Private Keys.............................................16
2077Table 13: Key Material Object Structure for Transparent RSA Public Keys...............................................16
2078Table 14: Key Material Object Structure for Transparent DH Private Keys...............................................16
2079Table 15: Key Material Object Structure for Transparent DH Public Keys.................................................17
2080Table 16: Key Material Object Structure for Transparent ECDSA Private Keys........................................17
2081Table 17: Key Material Object Structure for Transparent ECDSA Public Keys..........................................17
2082Table 18: Key Material Object Structure for Transparent ECDH Private Keys..........................................18
2083Table 19: Key Material Object Structure for Transparent ECDH Public Keys............................................18
2084Table 20: Template-Attribute Object Structure.......................................................................................... 18
2085Table 21: Certificate Object Structure........................................................................................................ 19
2086Table 22: Symmetric Key Object Structure................................................................................................ 19
2087Table 23: Public Key Object Structure....................................................................................................... 19
2088Table 24: Private Key Object Structure...................................................................................................... 19
2089Table 25: Split Key Object Structure.......................................................................................................... 20
2090Table 26: Template Object Structure......................................................................................................... 21
2091Table 27: Secret Data Object Structure..................................................................................................... 22
2092Table 28: Opaque Object Structure........................................................................................................... 22
2093Table 29: Unique Identifier Attribute.......................................................................................................... 23
2094Table 30: Unique Identifier Attribute Rules................................................................................................ 23
2095Table 31: Name Attribute Structure........................................................................................................... 24
2096Table 32: Name Attribute Rules................................................................................................................. 24
2097Table 33: Object Type Attribute................................................................................................................. 24
2098Table 34: Object Type Attribute Rules....................................................................................................... 24

379kmip-1.0-spec-ed-0.98 3 September 2009


380Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 127 of 135
2099Table 35: Cryptographic Algorithm Attribute.............................................................................................. 25
2100Table 36: Cryptographic Algorithm Attribute Rules....................................................................................25
2101Table 37: Cryptographic Length Attribute.................................................................................................. 25
2102Table 38: Cryptographic Length Attribute Rules........................................................................................ 25
2103Table 39: Cryptographic Parameters Attribute Structure...........................................................................26
2104Table 40: Cryptographic Parameters Attribute Rules.................................................................................26
2105Table 41: Role Types................................................................................................................................. 26
2106Table 42: Certificate Type Attribute........................................................................................................... 27
2107Table 43: Certificate Type Attribute Rules................................................................................................. 27
2108Table 44: Certificate Issuer Attribute Structure.......................................................................................... 27
2109Table 45: Certificate Issuer Attribute Rules............................................................................................... 28
2110Table 46: Certificate Subject Attribute Structure........................................................................................ 28
2111Table 47: Certificate Subject Attribute Rules............................................................................................. 28
2112Table 48: Digest Attribute Structure........................................................................................................... 29
2113Table 49: Digest Attribute Rules................................................................................................................ 29
2114Table 50: Operation Policy Name Attribute................................................................................................29
2115Table 51: Operation Policy Name Attribute Rules......................................................................................30
2116Table 52: Default Operation Policy for Secret Objects...............................................................................31
2117Table 53: Default Operation Policy for Certificates and Public Key Objects..............................................32
2118Table 54: Default Operation Policy for Private Template Objects..............................................................32
2119Table 55: Default Operation Policy for Public Template Objects...............................................................32
2120Table 56: X.509 Key Usage to Cryptographic Usage Mask Mapping........................................................34
2121Table 57: Cryptographic Usage Mask Attribute.........................................................................................34
2122Table 58: Cryptographic Usage Mask Attribute Rules...............................................................................34
2123Table 59: Lease Time Attribute.................................................................................................................. 34
2124Table 60: Lease Time Attribute Rules........................................................................................................ 35
2125Table 61: Usage Limits Attribute Structure................................................................................................ 35
2126Table 62: Usage Limits Attribute Rules...................................................................................................... 36
2127Table 63: State Attribute............................................................................................................................ 37
2128Table 64: State Attribute Rules.................................................................................................................. 38
2129Table 65: Initial Date Attribute................................................................................................................... 38
2130Table 66: Initial Date Attribute Rules......................................................................................................... 38
2131Table 67: Activation Date Attribute............................................................................................................ 38
2132Table 68: Activation Date Attribute Rules.................................................................................................. 39
2133Table 69: Process Start Date Attribute...................................................................................................... 39
2134Table 70: Process Start Date Attribute Rules............................................................................................ 39
2135Table 71: Protect Stop Date Attribute........................................................................................................ 40
2136Table 72: Protect Stop Date Attribute Rules.............................................................................................. 40
2137Table 73: Deactivation Date Attribute........................................................................................................ 40
2138Table 74: Deactivation Date Attribute Rules.............................................................................................. 40
2139Table 75: Destroy Date Attribute................................................................................................................ 41
2140Table 76: Destroy Date Attribute Rules..................................................................................................... 41
382kmip-1.0-spec-ed-0.98 3 September 2009
383Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 128 of 135
2141Table 77: Compromise Occurrence Date Attribute....................................................................................41
2142Table 78: Compromise Occurrence Date Attribute Rules..........................................................................41
2143Table 79: Compromise Date Attribute........................................................................................................ 42
2144Table 80: Compromise Date Attribute Rules.............................................................................................42
2145Table 81: Revocation Reason Attribute Structure......................................................................................42
2146Table 82: Revocation Reason Attribute Rules...........................................................................................42
2147Table 83: Archive Date Attribute................................................................................................................ 43
2148Table 84: Archive Date Attribute Rules...................................................................................................... 43
2149Table 85: Object Group Attribute............................................................................................................... 43
2150Table 86: Object Group Attribute Rules..................................................................................................... 43
2151Table 87: Link Attribute Structure.............................................................................................................. 44
2152Table 88: Link Attribute Structure Rules.................................................................................................... 45
2153Table 89: Application Specific Information Attribute...................................................................................45
2154Table 90: Application Specific Information Attribute Rules........................................................................45
2155Table 91: Contact Information Attribute..................................................................................................... 45
2156Table 92: Contact Information Attribute Rules...........................................................................................46
2157Table 93: Last Changed Date Attribute...................................................................................................... 46
2158Table 94: Last Changed Date Attribute Rules...........................................................................................46
2159Table 95 Custom Attribute......................................................................................................................... 47
2160Table 96: Custom Attribute Rules.............................................................................................................. 47
2161Table 97: Create Request Payload............................................................................................................ 48
2162Table 98: Create Response Payload......................................................................................................... 48
2163Table 99: Create Attribute Requirements.................................................................................................. 48
2164Table 100: Create Key Pair Request Payload........................................................................................... 49
2165Table 101: Create Key Pair Response Payload........................................................................................50
2166Table 102: Create Key Pair Attribute Requirements..................................................................................50
2167Table 103: Register Request Payload....................................................................................................... 50
2168Table 104: Register Response Payload.................................................................................................... 51
2169Table 105: Register Attribute Requirements..............................................................................................51
2170Table 106: Computing New Dates from Offset during Re-key...................................................................52
2171Table 107: Re-key Attribute Requirements................................................................................................ 52
2172Table 108: Re-key Request Payload......................................................................................................... 53
2173Table 109: Re-key Response Payload...................................................................................................... 53
2174Table 110: Derive Key Request Payload................................................................................................... 54
2175Table 111: Derive Key Response Payload................................................................................................ 55
2176Table 112: Derivation Parameters Structure (Except PBKDF2)................................................................55
2177Table 113: PBKDF2 Derivation Parameters Structure...............................................................................56
2178Table 114: Certify Request Payload.......................................................................................................... 56
2179Table 115: Certify Response Payload....................................................................................................... 57
2180Table 116: Computing New Dates from Offset during Re-certify...............................................................57
2181Table 117: Re-certify Attribute Requirements............................................................................................ 58
2182Table 118: Re-certify Request Payload..................................................................................................... 58
385kmip-1.0-spec-ed-0.98 3 September 2009
386Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 129 of 135
2183Table 119: Re-certify Response Payload.................................................................................................. 59
2184Table 120: Locate Request Payload.......................................................................................................... 60
2185Table 121: Locate Response Payload....................................................................................................... 60
2186Table 122: Check Request Payload.......................................................................................................... 61
2187Table 123: Check Response Payload........................................................................................................ 62
2188Table 124: Get Request Payload............................................................................................................... 62
2189Table 125: Get Response Payload............................................................................................................ 62
2190Table 126: Get Attributes Request Payload...............................................................................................63
2191Table 127: Get Attributes Response Payload............................................................................................ 63
2192Table 128: Get Attribute List Request Payload..........................................................................................63
2193Table 129: Get Attribute List Response Payload.......................................................................................63
2194Table 130: Add Attribute Request Payload................................................................................................ 64
2195Table 131: Add Attribute Response Payload............................................................................................. 64
2196Table 132: Modify Attribute Request Payload............................................................................................64
2197Table 133: Modify Attribute Response Payload.........................................................................................64
2198Table 134: Delete Attribute Request Payload............................................................................................ 65
2199Table 135: Delete Attribute Response Payload......................................................................................... 65
2200Table 136: Obtain Lease Request Payload............................................................................................... 65
2201Table 137: Obtain Lease Response Payload............................................................................................66
2202Table 138: Get Usage Allocation Request Payload...................................................................................66
2203Table 139: Get Usage Allocation Response Payload................................................................................67
2204Table 140: Activate Request Payload........................................................................................................ 67
2205Table 141: Activate Response Payload..................................................................................................... 67
2206Table 142: Revoke Request Payload........................................................................................................ 67
2207Table 143: Revoke Response Payload...................................................................................................... 67
2208Table 144: Destroy Request Payload........................................................................................................ 68
2209Table 145: Destroy Response Payload..................................................................................................... 68
2210Table 146: Archive Request Payload......................................................................................................... 68
2211Table 147: Archive Response Payload...................................................................................................... 68
2212Table 148: Recover Request Payload....................................................................................................... 69
2213Table 149: Recover Response Payload.................................................................................................... 69
2214Table 150: Validate Request Payload........................................................................................................ 69
2215Table 151: Validate Response Payload..................................................................................................... 69
2216Table 152: Query Request Payload........................................................................................................... 70
2217Table 153: Query Response Payload........................................................................................................ 71
2218Table 154: Cancel Request Payload......................................................................................................... 71
2219Table 155: Cancel Response Payload....................................................................................................... 71
2220Table 156: Poll Request Payload............................................................................................................... 72
2221Table 157: Notify Message Payload.......................................................................................................... 72
2222Table 158: Put Message Payload.............................................................................................................. 73
2223Table 159: Protocol Version Structure in Message Header.......................................................................74
2224Table 160: Operation in Batch Item........................................................................................................... 74
388kmip-1.0-spec-ed-0.98 3 September 2009
389Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 130 of 135
2225Table 161: Maximum Response Size in Message Request Header..........................................................74
2226Table 162: Unique Batch Item ID in Batch Item.........................................................................................74
2227Table 163: Time Stamp in Message Header.............................................................................................74
2228Table 164: Authentication Structure in Message Header...........................................................................75
2229Table 165: Asynchronous Indicator in Message Request Header.............................................................75
2230Table 166: Asynchronous Correlation Value in Response Batch Item.......................................................75
2231Table 167: Result Status in Response Batch Item.....................................................................................76
2232Table 168: Result Reason in Response Batch Item..................................................................................76
2233Table 169: Result Message in Response Batch Item................................................................................76
2234Table 170: Batch Order Option in Message Request Header....................................................................77
2235Table 171: Batch Error Continuation Option in Message Request Header................................................77
2236Table 172: Batch Count in Message Header............................................................................................. 77
2237Table 173: Batch Item in Message............................................................................................................ 78
2238Table 174: Message Extension Structure in Batch Item............................................................................78
2239Table 175: Request Message Structure.................................................................................................... 78
2240Table 176: Response Message Structure.................................................................................................. 78
2241Table 177: Synchronous Request Header Structure.................................................................................79
2242Table 178: Synchronous Request Batch Item Structure............................................................................79
2243Table 179: Synchronous Response Header Structure...............................................................................79
2244Table 180: Synchronous Response Batch Item Structure.........................................................................80
2245Table 181: Asynchronous Request Header Structure................................................................................80
2246Table 182: Asynchronous Request Batch Item Structure..........................................................................81
2247Table 183: Asynchronous Response Header Structure.............................................................................81
2248Table 184: Asynchronous Response Batch Item Structure.......................................................................81
2249Table 185: Allowed Item Type Values....................................................................................................... 83
2250Table 186: Allowed Item Length Values.................................................................................................... 83
2251Table 187: Tag Values............................................................................................................................... 90
2252Table 188: Credential Type Enumeration.................................................................................................. 91
2253Table 189: Key Value Type Enumeration.................................................................................................. 91
2254Table 190: Wrapping Method Enumeration............................................................................................... 92
2255Table 191: Recommended Curve Enumeration for ECDSA and ECDH....................................................92
2256Table 192: Certificate Type Enumeration.................................................................................................. 93
2257Table 193: Split Key Method Enumeration................................................................................................93
2258Table 194: Secret Data Type Enumeration................................................................................................93
2259Table 195: Opaque Data Type Enumeration.............................................................................................93
2260Table 196: Name Type Enumeration......................................................................................................... 93
2261Table 197: Object Type Enumeration........................................................................................................ 94
2262Table 198: Cryptographic Algorithm Enumeration.....................................................................................94
2263Table 199: Block Cipher Mode Enumeration.............................................................................................95
2264Table 200: Padding Method Enumeration.................................................................................................95
2265Table 201: Hashing Algorithm Enumeration..............................................................................................96
2266Table 202: Role Type Enumeration........................................................................................................... 97
391kmip-1.0-spec-ed-0.98 3 September 2009
392Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 131 of 135
2267Table 203: State Enumeration................................................................................................................... 98
2268Table 204: Revocation Reason Code Enumeration...................................................................................98
2269Table 205: Link Type Enumeration............................................................................................................ 98
2270Table 206: Derivation Method Enumeration.............................................................................................. 99
2271Table 207: Certificate Request Type Enumeration....................................................................................99
2272Table 208: Validity Indicator Enumeration................................................................................................. 99
2273Table 209: Query Function Enumeration................................................................................................. 100
2274Table 210: Cancellation Result Enumeration........................................................................................... 100
2275Table 211: Put Function Enumeration..................................................................................................... 100
2276Table 212: Operation Enumeration.......................................................................................................... 101
2277Table 213: Result Status Enumeration.................................................................................................... 102
2278Table 214: Result Reason Enumeration.................................................................................................. 102
2279Table 215: Batch Error Continuation Enumeration..................................................................................103
2280Table 216: Cryptographic Usage Mask.................................................................................................... 103
2281Table 217: Storage Status Mask.............................................................................................................. 104
2282Table 218: General Errors....................................................................................................................... 105
2283Table 219: Create Errors......................................................................................................................... 106
2284Table 220: Create Key Pair Errors........................................................................................................... 106
2285Table 221: Register Errors....................................................................................................................... 107
2286Table 222: Re-key Errors......................................................................................................................... 107
2287Table 223: Derive Key Errors.................................................................................................................. 108
2288Table 224: Certify Errors.......................................................................................................................... 109
2289Table 225: Re-certify Errors..................................................................................................................... 109
2290Table 226: Locate Errors......................................................................................................................... 109
2291Table 227: Check Errors.......................................................................................................................... 109
2292Table 228: Get Errors.............................................................................................................................. 110
2293Table 229: Get Attributes Errors.............................................................................................................. 110
2294Table 230: Get Attribute List Errors......................................................................................................... 110
2295Table 231: Add Attribute Errors............................................................................................................... 111
2296Table 232: Modify Attribute Errors........................................................................................................... 111
2297Table 233: Delete Attribute Errors........................................................................................................... 112
2298Table 234: Obtain Lease Errors............................................................................................................... 112
2299Table 235: Get Usage Allocation Errors.................................................................................................. 113
2300Table 236: Activate Errors....................................................................................................................... 113
2301Table 237: Revoke Errors........................................................................................................................ 113
2302Table 238: Destroy Errors........................................................................................................................ 113
2303Table 239: Archive Errors........................................................................................................................ 114
2304Table 240: Recover Errors....................................................................................................................... 114
2305Table 241: Validate Errors....................................................................................................................... 114
2306Table 242: Poll Errors.............................................................................................................................. 114
2307Table 243: Batch Items Errors................................................................................................................. 115
2308Table 244: Attribute Cross-reference....................................................................................................... 117
394kmip-1.0-spec-ed-0.98 3 September 2009
395Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 132 of 135
2309Table 245: Tag Cross-reference.............................................................................................................. 122
2310Table 246: Operation and Object Cross-reference..................................................................................123
2311

397kmip-1.0-spec-ed-0.98 3 September 2009


398Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 133 of 135
2312B. Acknowledgements
2313The following individuals have participated in the creation of this specification and are gratefully
2314acknowledged:
2315Original Authors of the initial contribution:
2316 David Babcock, HP
2317 Steven Bade, IBM
2318 Paolo Bezoari, NetApp
2319 Mathias Björkqvist, IBM
2320 Bruce Brinson, EMC
2321 Christian Cachin, IBM
2322 Tony Crossman, Thales/nCipher
2323 Stan Feather, HP
2324 Indra Fitzgerald, HP
2325 Judy Furlong, EMC
2326 Jon Geater, Thales/nCipher
2327 Bob Griffin, EMC
2328 Robert Haas, IBM (editor)
2329 Timothy Hahn, IBM
2330 Jack Harwood, EMC
2331 Walt Hubis, LSI
2332 Glen Jaquette, IBM
2333 Jeff Kravitz, IBM (editor emeritus)
2334 Michael McIntosh, IBM
2335 Brian Metzger, HP
2336 Anthony Nadalin, IBM
2337 Elaine Palmer, IBM
2338 Joe Pato, HP
2339 René Pawlitzek, IBM
2340 Subhash Sankuratripati, NetApp
2341 Mark Schiller, HP
2342 Martin Skagen, Brocade
2343 Marcus Streets, Thales/nCipher
2344 John Tattan, EMC
2345 Karla Thomas, Brocade
2346 Marko Vukolić, IBM
2347 Steve Wierenga, HP
2348Participants:
2349 TBD

400kmip-1.0-spec-ed-0.98 3 September 2009


401Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 134 of 135
2350C. Revision History
Revision Date Editor Changes Made

ed-0.98 2009-04-24 Robert Haas Initial conversion of input document to OASIS format
together with clarifications.

ed-0.98 2009-05-21 Robert Haas Changes to TTLV format for 64-bit alignment. Appendices
indicated as non normative.

ed-0.98 2009-06-25 Robert Haas, Multiple editorial and technical changes, including merge
Indra Fitzgerald of Template and Policy Template.

ed-0.98 2009-07-23 Robert Haas, Multiple editorial and technical changes, mainly based on
Indra Fitzgerald comments from Elaine Barker and Judy Furlong. Fix of
Template Name.

ed-0.98 2009-07-27 Indra Fitzgerald Added captions to tables and figures.

ed-0.98 2009-08-27 Robert Haas Wording compliance changes according to RFC2119 from
Rod Wideman. Removal of attribute mutation in server
responses.

ed-0.98 2009-09-03 Robert Haas Incorporated the RFC2119 language conformance


statement from Matt Ball; the changes to the Application-
Specific Information attribute from René Pawlitzek; the
extensions to the Query operation for namespaces from
Mathias Björkqvist; the key roles proposal from Jon
Geater, Todd Arnold, & Chris Dunn. Capitalized all
RFC2119 keywords (required by OASIS) together with
editorial changes.

403kmip-1.0-spec-ed-0.98 3 September 2009


404Copyright © OASIS® 2009. All Rights Reserved. OASIS trademark, IPR and other policies apply. Page 135 of 135

You might also like