Skip to content

KMIP support by Cosmian KMSΒΆ

This page summarizes the KMIP coverage in Cosmian KMS. The support status is derived from the actual implementation in crate/server/src/core/operations.

Cosmian KMS Server supports KMIP versions: 2.1, 2.0, 1.4, 1.3, 1.2, 1.1, 1.0

Legend:

  • βœ… Fully supported
  • ❌ Not implemented
  • 🚫 Deprecated
  • N/A Not applicable (operation/attribute not defined in that KMIP version)

KMIP Baseline Profile ComplianceΒΆ

Baseline Server: βœ… Compliant (all 9 required + 18/18 optional)

The Baseline Server profile (defined in KMIP Profiles v2.1 Section 4.1) requires:

  • Required operations: Discover Versions, Query, Create, Register, Get, Destroy, Locate, Activate, Revoke
  • Optional operations: Many additional operations for extended functionality

KMIP CoverageΒΆ

MessagesΒΆ

Message Support
Request Message βœ…
Response Message βœ…

Operations by KMIP VersionΒΆ

The following table shows operation support across all KMIP versions.

Operation 1.0 1.1 1.2 1.3 1.4 2.0 2.1
Activate βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Add Attribute N/A βœ… βœ… βœ… βœ… βœ… βœ…
Archive ❌ ❌ ❌ ❌ ❌ ❌ ❌
Cancel ❌ ❌ ❌ ❌ ❌ ❌ ❌
Certify βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Check βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Create βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Create Key Pair βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Create Split Key N/A N/A ❌ ❌ ❌ ❌ ❌
Decrypt N/A N/A βœ… βœ… βœ… βœ… βœ…
Delete Attribute N/A βœ… βœ… βœ… βœ… βœ… βœ…
DeriveKey βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Destroy βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Discover Versions N/A βœ… βœ… βœ… βœ… βœ… βœ…
Encrypt N/A N/A βœ… βœ… βœ… βœ… βœ…
Export N/A N/A N/A N/A βœ… βœ… βœ…
Get βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Get Attribute List N/A βœ… βœ… βœ… βœ… βœ… βœ…
Get Attributes N/A βœ… βœ… βœ… βœ… βœ… βœ…
Get Usage Allocation ❌ ❌ ❌ ❌ ❌ ❌ ❌
Hash N/A N/A βœ… βœ… βœ… βœ… βœ…
Import N/A N/A N/A N/A βœ… βœ… βœ…
Join Split Key N/A N/A ❌ ❌ ❌ ❌ ❌
Locate βœ… βœ… βœ… βœ… βœ… βœ… βœ…
MAC N/A N/A βœ… βœ… βœ… βœ… βœ…
MAC Verify N/A N/A βœ… βœ… βœ… βœ… βœ…
Notify N/A N/A N/A N/A N/A ❌ ❌
Obtain Lease ❌ ❌ ❌ ❌ ❌ ❌ ❌
Poll ❌ ❌ ❌ ❌ ❌ ❌ ❌
Put N/A N/A N/A N/A N/A ❌ ❌
Query βœ… βœ… βœ… βœ… βœ… βœ… βœ…
RNG Retrieve N/A N/A βœ… βœ… βœ… βœ… βœ…
RNG Seed N/A N/A βœ… βœ… βœ… βœ… βœ…
Re-certify ❌ ❌ ❌ ❌ ❌ ❌ ❌
Re-key βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Re-key Key Pair N/A βœ… βœ… βœ… βœ… βœ… βœ…
Recover ❌ ❌ ❌ ❌ ❌ ❌ ❌
Register βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Revoke βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Set Attribute (Modify) N/A N/A N/A N/A N/A βœ… βœ…
Sign N/A N/A βœ… βœ… βœ… βœ… βœ…
Signature Verify N/A N/A βœ… βœ… βœ… βœ… βœ…
Validate βœ… βœ… βœ… βœ… βœ… βœ… βœ…

MethodologyΒΆ

  • Operations marked βœ… are backed by a Rust implementation file under crate/server/src/core/operations.
  • Operations marked ❌ are defined in the KMIP specification but not implemented in Cosmian KMS.
  • Operations marked N/A do not exist in that particular KMIP version.
  • This documentation is auto-generated by analyzing source code and KMIP specifications.

If you spot a mismatch or want to extend coverage, please open an issue or PR.

Managed ObjectsΒΆ

The following table shows managed object support across all KMIP versions.

Managed Object 1.0 1.1 1.2 1.3 1.4 2.0 2.1
Certificate βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Symmetric Key βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Public Key βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Private Key βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Split Key ❌ ❌ ❌ ❌ ❌ ❌ ❌
Template 🚫 🚫 🚫 🚫 🚫 N/A N/A
Secret Data βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Opaque Data βœ… βœ… βœ… βœ… βœ… βœ… βœ…
PGP Key ❌ ❌ ❌ ❌ ❌ ❌ ❌

Notes:

  • Opaque Object import support is present (see import.rs).
  • PGP Key types appear in digest and attribute handling but full object import/register is not implemented, hence ❌.
  • Template objects are deprecated in newer KMIP versions.

Base ObjectsΒΆ

The following table shows base object support across all KMIP versions.

Base Object 1.0 1.1 1.2 1.3 1.4 2.0 2.1
Attribute ❌ ❌ ❌ ❌ ❌ ❌ ❌
Credential ❌ ❌ ❌ ❌ ❌ ❌ ❌
Key Block βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Key Value ❌ ❌ ❌ ❌ ❌ ❌ ❌
Key Wrapping Data βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Key Wrapping Specification βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Transparent Key Structures βœ… βœ… βœ… βœ… βœ… N/A N/A
Template-Attribute Structures N/A βœ… βœ… βœ… βœ… N/A N/A
Server Information βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Extension Information N/A ❌ ❌ ❌ ❌ ❌ ❌
Data βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Data Length N/A N/A βœ… βœ… βœ… βœ… βœ…
Signature Data N/A N/A βœ… βœ… βœ… βœ… βœ…
MAC Data N/A N/A βœ… βœ… βœ… βœ… βœ…
Nonce βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Correlation Value βœ… βœ… βœ… βœ… βœ… βœ… βœ…
Init Indicator N/A N/A N/A βœ… βœ… βœ… βœ…
Final Indicator N/A N/A N/A βœ… βœ… βœ… βœ…
RNG Parameters N/A N/A N/A ❌ ❌ ❌ ❌
Profile Information N/A N/A N/A ❌ ❌ ❌ ❌
Validation Information N/A N/A N/A ❌ ❌ ❌ ❌
Capability Information N/A N/A N/A ❌ ❌ ❌ ❌
Authenticated Encryption Additional Data N/A N/A N/A N/A βœ… βœ… βœ…
Authenticated Encryption Tag N/A N/A N/A N/A βœ… βœ… βœ…

Notes:

  • AEAD Additional Data and Tag are supported in encrypt/decrypt APIs.
  • Nonce and RNG Parameter are used by symmetric encryption paths.
  • Base objects are fundamental structures present across all KMIP versions.

Transparent Key StructuresΒΆ

The following table shows transparent key structure support across all KMIP versions.

Structure 1.0 1.1 1.2 1.3 1.4 2.0 2.1
Symmetric Key βœ… βœ… βœ… βœ… βœ… βœ… βœ…
DSA Private Key βœ… βœ… βœ… βœ… βœ… βœ… βœ…
DSA Public Key ❌ ❌ ❌ ❌ ❌ ❌ ❌
RSA Private Key βœ… βœ… βœ… βœ… βœ… βœ… βœ…
RSA Public Key βœ… βœ… βœ… βœ… βœ… βœ… βœ…
DH Private Key ❌ ❌ ❌ ❌ ❌ ❌ ❌
DH Public Key ❌ ❌ ❌ ❌ ❌ ❌ ❌
EC Private Key N/A N/A N/A βœ… βœ… βœ… βœ…
EC Public Key βœ… βœ… βœ… βœ… βœ… βœ… βœ…
ECDSA Private Key βœ… βœ… βœ… βœ… βœ… N/A N/A
ECDSA Public Key βœ… βœ… βœ… βœ… βœ… N/A N/A
ECDH Private Key ❌ ❌ ❌ ❌ ❌ N/A N/A
ECDH Public Key ❌ ❌ ❌ ❌ ❌ N/A N/A
ECMQV Private Key ❌ ❌ ❌ ❌ ❌ N/A N/A
ECMQV Public Key ❌ ❌ ❌ ❌ ❌ N/A N/A

Note: EC/ECDSA support is present; DH/DSA/ECMQV are not implemented.

AttributesΒΆ

Attribute Current
Activation Date βœ…
Alternative Name βœ…
Always Sensitive βœ…
Application Specific Information βœ…
Archive Date βœ…
Attribute Index βœ…
Certificate Attributes βœ…
Certificate Length βœ…
Certificate Type βœ…
Comment βœ…
Compromise Date βœ…
Compromise Occurrence Date βœ…
Contact Information βœ…
Critical βœ…
Cryptographic Algorithm βœ…
Cryptographic Domain Parameters βœ…
Cryptographic Length βœ…
Cryptographic Parameters βœ…
Cryptographic Usage Mask βœ…
Deactivation Date βœ…
Description βœ…
Destroy Date βœ…
Digest βœ…
Digital Signature Algorithm βœ…
Extractable βœ…
Fresh βœ…
Initial Date βœ…
Key Format Type βœ…
Key Value Location βœ…
Key Value Present βœ…
Last Change Date βœ…
Lease Time βœ…
Link βœ…
Name βœ…
Never Extractable βœ…
Nist Key Type βœ…
Object Group βœ…
Object Group Member βœ…
Object Type βœ…
Opaque Data Type βœ…
Original Creation Date βœ…
PKCS#12 Friendly Name βœ…
Process Start Date βœ…
Protect Stop Date βœ…
Protection Level βœ…
Protection Period βœ…
Protection Storage Masks βœ…
Quantum Safe βœ…
Random Number Generator βœ…
Revocation Reason βœ…
Rotate Date βœ…
Rotate Generation βœ…
Rotate Interval βœ…
Rotate Latest βœ…
Rotate Name βœ…
Rotate Offset βœ…
Sensitive βœ…
Short Unique Identifier βœ…
State βœ…
Unique Identifier βœ…
Usage Limits βœ…
Vendor Attribute βœ…
X.509 Certificate Identifier βœ…
X.509 Certificate Issuer βœ…
X.509 Certificate Subject βœ…

Notes:

  • GetAttributes returns a union of metadata attributes and those embedded in KeyBlock structures.
  • β€œVendor Attributes” are available via the Cosmian vendor namespace and are accessible via GetAttributes.
  • A βœ… indicates the attribute is used or updated by at least one KMIP operation implementation in crate/server/src/core/operations, including attribute handlers (Add/Delete/Set/Get Attribute).
  • Most attributes are present across all KMIP versions with some additions in newer versions.

Β© Copyright 2018-2025 Cosmian. All rights reserved.