PyKMIP/kmip/core/enums.py

2054 lines
86 KiB
Python

# Copyright (c) 2014 The Johns Hopkins University/Applied Physics Laboratory
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# In case of new content, remove the following line to enable flake8 tests
# flake8: noqa
import copy
import enum
import functools
import six
class OrderedEnum(enum.Enum):
"""
An ordered variant of the Enum class that allows for comparisons.
Taken from: https://docs.python.org/3/library/enum.html#orderedenum
"""
def __ge__(self, other):
if self.__class__ is other.__class__:
return self.value >= other.value
return NotImplemented
def __gt__(self, other):
if self.__class__ is other.__class__:
return self.value > other.value
return NotImplemented
def __le__(self, other):
if self.__class__ is other.__class__:
return self.value <= other.value
return NotImplemented
def __lt__(self, other):
if self.__class__ is other.__class__:
return self.value < other.value
return NotImplemented
class AdjustmentType(enum.Enum):
# KMIP 2.0
INCREMENT = 0x00000001
DECREMENT = 0x00000002
NEGATE = 0x00000003
class AlternativeNameType(enum.Enum):
# KMIP 1.2
UNINTERPRETED_TEXT_STRING = 0x00000001
URI = 0x00000002
OBJECT_SERIAL_NUMBER = 0x00000003
EMAIL_ADDRESS = 0x00000004
DNS_NAME = 0x00000005
X500_DISTINGUISHED_NAME = 0x00000006
IP_ADDRESS = 0x00000007
class AsynchronousIndicator(enum.Enum):
# KMIP 2.0
MANDATORY = 0x00000001
OPTIONAL = 0x00000002
PROHIBITED = 0x00000003
class AttestationType(enum.Enum):
# KMIP 1.2
TPM_QUOTE = 0x00000001
TCG_INTEGRITY_REPORT = 0x00000002
SAML_ASSERTION = 0x00000003
class AttributeType(enum.Enum):
UNIQUE_IDENTIFIER = 'Unique Identifier'
NAME = 'Name'
OBJECT_TYPE = 'Object Type'
CRYPTOGRAPHIC_ALGORITHM = 'Cryptographic Algorithm'
CRYPTOGRAPHIC_LENGTH = 'Cryptographic Length'
CRYPTOGRAPHIC_PARAMETERS = 'Cryptographic Parameters'
CRYPTOGRAPHIC_DOMAIN_PARAMETERS = 'Cryptographic Domain Parameters'
CERTIFICATE_TYPE = 'Certificate Type'
CERTIFICATE_LENGTH = 'Certificate Length'
X_509_CERTIFICATE_IDENTIFIER = 'X.509 Certificate Identifier'
X_509_CERTIFICATE_SUBJECT = 'X.509 Certificate Subject'
X_509_CERTIFICATE_ISSUER = 'X.509 Certificate Issuer'
CERTIFICATE_IDENTIFIER = 'Certificate Identifier'
CERTIFICATE_SUBJECT = 'Certificate Subject'
CERTIFICATE_ISSUER = 'Certificate Issuer'
DIGITAL_SIGNATURE_ALGORITHM = 'Digital Signature Algorithm'
DIGEST = 'Digest'
OPERATION_POLICY_NAME = 'Operation Policy Name'
CRYPTOGRAPHIC_USAGE_MASK = 'Cryptographic Usage Mask'
LEASE_TIME = 'Lease Time'
USAGE_LIMITS = 'Usage Limits'
STATE = 'State'
INITIAL_DATE = 'Initial Date'
ACTIVATION_DATE = 'Activation Date'
PROCESS_START_DATE = 'Process Start Date'
PROTECT_STOP_DATE = 'Protect Stop Date'
DEACTIVATION_DATE = 'Deactivation Date'
DESTROY_DATE = 'Destroy Date'
COMPROMISE_OCCURRENCE_DATE = 'Compromise Occurrence Date'
COMPROMISE_DATE = 'Compromise Date'
REVOCATION_REASON = 'Revocation Reason'
ARCHIVE_DATE = 'Archive Date'
OBJECT_GROUP = 'Object Group'
FRESH = 'Fresh'
LINK = 'Link'
APPLICATION_SPECIFIC_INFORMATION = 'Application Specific Information'
CONTACT_INFORMATION = 'Contact Information'
LAST_CHANGE_DATE = 'Last Change Date'
CUSTOM_ATTRIBUTE = 'Custom Attribute'
ALTERNATIVE_NAME = 'Alternative Name'
KEY_VALUE_PRESENT = 'Key Value Present'
KEY_VALUE_LOCATION = 'Key Value Location'
ORIGINAL_CREATION_DATE = 'Original Creation Date'
class AuthenticationSuite(enum.Enum):
"""
The type of authentication suite used by KMIP clients and servers.
The authentication suite defines the protocol versions and cipher suites
that should be used to secure KMIP client/server communications. An
authentication suite is one of two core components that make up a KMIP
client/server profile. For more information, see Section 3 of the KMIP
1.1 profiles document.
"""
BASIC = 1
TLS12 = 2
class BatchErrorContinuationOption(enum.Enum):
# KMIP 1.0
CONTINUE = 0x00000001
STOP = 0x00000002
UNDO = 0x00000003
class BlockCipherMode(enum.Enum):
# KMIP 1.0
CBC = 0x00000001
ECB = 0x00000002
PCBC = 0x00000003
CFB = 0x00000004
OFB = 0x00000005
CTR = 0x00000006
CMAC = 0x00000007
CCM = 0x00000008
GCM = 0x00000009
CBC_MAC = 0x0000000A
XTS = 0x0000000B
AES_KEY_WRAP_PADDING = 0x0000000C
NIST_KEY_WRAP = 0x0000000D
X9_102_AESKW = 0x0000000E
X9_102_TDKW = 0x0000000F
X9_102_AKW1 = 0x00000010
X9_102_AKW2 = 0x00000011
# KMIP 1.4
AEAD = 0x00000012
class CancellationResult(enum.Enum):
# KMIP 1.0
CANCELED = 0x00000001
UNABLE_TO_CANCEL = 0x00000002
COMPLETED = 0x00000003
FAILED = 0x00000004
UNAVAILABLE = 0x00000005
class CertificateRequestType(enum.Enum):
# KMIP 1.0
CRMF = 0x00000001
PKCS10 = 0x00000002
PEM = 0x00000003
PGP = 0x00000004 # Deprecated, designated '(Reserved)' in KMIP 2.0
class CertificateType(enum.Enum):
# KMIP 1.0
X_509 = 0x00000001
PGP = 0x00000002 # Deprecated as of KMIP 1.2, not deprecated in KMIP 2.0
class ClientRegistrationMethod(enum.Enum):
# KMIP 1.3
UNSPECIFIED = 0x00000001
SERVER_PREGENERATED = 0x00000002
SERVER_ON_DEMAND = 0x00000003
CLIENT_GENERATED = 0x00000004
CLIENT_REGISTERED = 0x00000005
class ConformanceClause(enum.Enum):
DISCOVER_VERSIONS = 1
BASELINE = 2
SECRET_DATA = 3
SYMMETRIC_KEY_STORE = 4
SYMMETRIC_KEY_FOUNDRY = 5
ASYMMETRIC_KEY_STORE = 6
ASYMMETRIC_KEY_AND_CERTIFICATE_STORE = 7
ASYMMETRIC_KEY_FOUNDRY = 8
CERTIFICATE = 9
ASYMMETRIC_KEY_FOUNDRY_AND_CERTIFICATE = 10
STORAGE = 11
class CredentialType(enum.Enum):
# KMIP 1.0
USERNAME_AND_PASSWORD = 0x00000001
# KMIP 1.1
DEVICE = 0x00000002
# KMIP 1.2
ATTESTATION = 0x00000003
# KMIP 2.0
ONE_TIME_PASSWORD = 0x00000004
HASHED_PASSWORD = 0x00000005
TICKET = 0x00000006
class CryptographicAlgorithm(enum.Enum):
# KMIP 1.0
DES = 0x00000001
TRIPLE_DES = 0x00000002 # '3DES' is invalid syntax
AES = 0x00000003
RSA = 0x00000004
DSA = 0x00000005
ECDSA = 0x00000006
HMAC_SHA1 = 0x00000007
HMAC_SHA224 = 0x00000008
HMAC_SHA256 = 0x00000009
HMAC_SHA384 = 0x0000000A
HMAC_SHA512 = 0x0000000B
HMAC_MD5 = 0x0000000C
DH = 0x0000000D
ECDH = 0x0000000E
ECMQV = 0x0000000F
BLOWFISH = 0x00000010
CAMELLIA = 0x00000011
CAST5 = 0x00000012
IDEA = 0x00000013
MARS = 0x00000014
RC2 = 0x00000015
RC4 = 0x00000016
RC5 = 0x00000017
SKIPJACK = 0x00000018
TWOFISH = 0x00000019
# KMIP 1.2
EC = 0x0000001A
# KMIP 1.3
ONE_TIME_PAD = 0x0000001B
# KMIP 1.4
CHACHA20 = 0x0000001C
POLY1305 = 0x0000001D
CHACHA20_POLY1305 = 0x0000001E
SHA3_224 = 0x0000001F
SHA3_256 = 0x00000020
SHA3_384 = 0x00000021
SHA3_512 = 0x00000022
HMAC_SHA3_224 = 0x00000023
HMAC_SHA3_256 = 0x00000024
HMAC_SHA3_384 = 0x00000025
HMAC_SHA3_512 = 0x00000026
SHAKE_128 = 0x00000027
SHAKE_256 = 0x00000028
# KMIP 2.0
ARIA = 0x00000029
SEED = 0x0000002A
SM2 = 0x0000002B
SM3 = 0x0000002C
SM4 = 0x0000002D
GOST_R_34_10_2012 = 0x0000002E
GOST_R_34_11_2012 = 0x0000002F
GOST_R_34_13_2015 = 0x00000030
GOST_28147_89 = 0x00000031
XMSS = 0x00000032
SPHINCS_256 = 0x00000033
MCELIECE = 0x00000034
MCELIECE_6960119 = 0x00000035
MCELIECE_8192128 = 0x00000036
ED25519 = 0x00000037
ED448 = 0x00000038
class CryptographicUsageMask(enum.Enum):
# KMIP 1.0
SIGN = 0x00000001
VERIFY = 0x00000002
ENCRYPT = 0x00000004
DECRYPT = 0x00000008
WRAP_KEY = 0x00000010
UNWRAP_KEY = 0x00000020
EXPORT = 0x00000040
MAC_GENERATE = 0x00000080
MAC_VERIFY = 0x00000100
DERIVE_KEY = 0x00000200
CONTENT_COMMITMENT = 0x00000400
KEY_AGREEMENT = 0x00000800
CERTIFICATE_SIGN = 0x00001000
CRL_SIGN = 0x00002000
GENERATE_CRYPTOGRAM = 0x00004000 # Designated '(Reserved)' in KMIP 2.0
VALIDATE_CRYPTOGRAM = 0x00008000 # Designated '(Reserved)' in KMIP 2.0
TRANSLATE_ENCRYPT = 0x00010000 # Designated '(Reserved)' in KMIP 2.0
TRANSLATE_DECRYPT = 0x00020000 # Designated '(Reserved)' in KMIP 2.0
TRANSLATE_WRAP = 0x00040000 # Designated '(Reserved)' in KMIP 2.0
TRANSLATE_UNWRAP = 0x00080000 # Designated '(Reserved)' in KMIP 2.0
# KMIP 2.0
AUTHENTICATE = 0x00100000
UNRESTRICTED = 0x00200000
FPE_ENCRYPT = 0x00400000
FPE_DECRYPT = 0x00800000
class Data(enum.Enum):
# KMIP 2.0
DECRYPT = 0x00000001
ENCRYPT = 0x00000002
HASH = 0x00000003
MAC_MAC_DATA = 0x00000004
RNG_RETRIEVE = 0x00000005
SIGN_SIGNATURE_DATA = 0x00000006
SIGNATURE_VERIFY = 0x00000007
class DerivationMethod(enum.Enum):
# KMIP 1.0
PBKDF2 = 0x00000001
HASH = 0x00000002
HMAC = 0x00000003
ENCRYPT = 0x00000004
NIST800_108_C = 0x00000005
NIST800_108_F = 0x00000006
NIST800_108_DPI = 0x00000007
# KMIP 1.4
ASYMMETRIC_KEY = 0x00000008
# KMIP 2.0
AWS_SIGNATURE_VERSION_4 = 0x00000009
HKDF = 0x0000000A
class DestroyAction(enum.Enum):
# KMIP 1.3
UNSPECIFIED = 0x00000001
KEY_MATERIAL_DELETED = 0x00000002
KEY_MATERIAL_SHREDDED = 0x00000003
METADATA_DELETED = 0x00000004
METADATA_SHREDDED = 0x00000005
DELETED = 0x00000006
SHREDDED = 0x00000007
class DigitalSignatureAlgorithm(enum.Enum):
# KMIP 1.1
MD2_WITH_RSA_ENCRYPTION = 0x00000001
MD5_WITH_RSA_ENCRYPTION = 0x00000002
SHA1_WITH_RSA_ENCRYPTION = 0x00000003
SHA224_WITH_RSA_ENCRYPTION = 0x00000004
SHA256_WITH_RSA_ENCRYPTION = 0x00000005
SHA384_WITH_RSA_ENCRYPTION = 0x00000006
SHA512_WITH_RSA_ENCRYPTION = 0x00000007
RSASSA_PSS = 0x00000008
DSA_WITH_SHA1 = 0x00000009
DSA_WITH_SHA224 = 0x0000000A
DSA_WITH_SHA256 = 0x0000000B
ECDSA_WITH_SHA1 = 0x0000000C
ECDSA_WITH_SHA224 = 0x0000000D
ECDSA_WITH_SHA256 = 0x0000000E
ECDSA_WITH_SHA384 = 0x0000000F
ECDSA_WITH_SHA512 = 0x00000010
# KMIP 1.4
SHA3_256_WITH_RSA_ENCRYPTION = 0x00000011
SHA3_384_WITH_RSA_ENCRYPTION = 0x00000012
SHA3_512_WITH_RSA_ENCRYPTION = 0x00000013
class DRBGAlgorithm(enum.Enum):
# KMIP 1.3
UNSPECIFIED = 0x00000001
DUAL_EC = 0x00000002
HASH = 0x00000003
HMAC = 0x00000004
CTR = 0x00000005
class EncodingOption(enum.Enum):
# KMIP 1.1
NO_ENCODING = 0x00000001
TTLV_ENCODING = 0x00000002
class EndpointRole(enum.Enum):
CLIENT = 0x00000001
SERVER = 0x00000002
class FIPS186Variation(enum.Enum):
# KMIP 1.3
UNSPECIFIED = 0x00000001
GP_X_ORIGINAL = 0x00000002
GP_X_CHANGE_NOTICE = 0x00000003
X_ORIGINAL = 0x00000004
X_CHANGE_NOTICE = 0x00000005
K_ORIGINAL = 0x00000006
K_CHANGE_NOTICE = 0x00000007
class HashingAlgorithm(enum.Enum):
# KMIP 1.0
MD2 = 0x00000001
MD4 = 0x00000002
MD5 = 0x00000003
SHA_1 = 0x00000004
SHA_224 = 0x00000005
SHA_256 = 0x00000006
SHA_384 = 0x00000007
SHA_512 = 0x00000008
RIPEMD_160 = 0x00000009
TIGER = 0x0000000A
WHIRLPOOL = 0x0000000B
# KMIP 1.2
SHA_512_224 = 0x0000000C
SHA_512_256 = 0x0000000D
# KMIP 1.4
SHA3_224 = 0x0000000E
SHA3_256 = 0x0000000F
SHA3_384 = 0x00000010
SHA3_512 = 0x00000011
class InteropFunction(enum.Enum):
# KMIP 2.0
BEGIN = 0x00000001
END = 0x00000002
RESET = 0x00000003
class ItemType(enum.Enum):
# KMIP 2.0
STRUCTURE = 0x00000001
INTEGER = 0x00000002
LONG_INTEGER = 0x00000003
BIG_INTEGER = 0x00000004
ENUMERATION = 0x00000005
BOOLEAN = 0x00000006
TEXT_STRING = 0x00000007
BYTE_STRING = 0x00000008
DATE_TIME = 0x00000009
INTERVAL = 0x0000000A
DATE_TIME_EXTENDED = 0x0000000B
class KeyCompressionType(enum.Enum):
# KMIP 1.0
EC_PUBLIC_KEY_TYPE_UNCOMPRESSED = 0x00000001
EC_PUBLIC_KEY_TYPE_X9_62_COMPRESSED_PRIME = 0x00000002
EC_PUBLIC_KEY_TYPE_X9_62_COMPRESSED_CHAR2 = 0x00000003
EC_PUBLIC_KEY_TYPE_X9_62_HYBRID = 0x00000004
class KeyFormatType(enum.Enum):
# KMIP 1.0
RAW = 0x00000001
OPAQUE = 0x00000002
PKCS_1 = 0x00000003
PKCS_8 = 0x00000004
X_509 = 0x00000005
EC_PRIVATE_KEY = 0x00000006
TRANSPARENT_SYMMETRIC_KEY = 0x00000007
TRANSPARENT_DSA_PRIVATE_KEY = 0x00000008
TRANSPARENT_DSA_PUBLIC_KEY = 0x00000009
TRANSPARENT_RSA_PRIVATE_KEY = 0x0000000A
TRANSPARENT_RSA_PUBLIC_KEY = 0x0000000B
TRANSPARENT_DH_PRIVATE_KEY = 0x0000000C
TRANSPARENT_DH_PUBLIC_KEY = 0x0000000D
TRANSPARENT_ECDSA_PRIVATE_KEY = 0x0000000E # Deprecated in KMIP 1.4, designated '(Reserved)' in KMIP 2.0
TRANSPARENT_ECDSA_PUBLIC_KEY = 0x0000000F # Deprecated in KMIP 1.4, designated '(Reserved)' in KMIP 2.0
TRANSPARENT_ECDH_PRIVATE_KEY = 0x00000010 # Deprecated in KMIP 1.4, designated '(Reserved)' in KMIP 2.0
TRANSPARENT_ECDH_PUBLIC_KEY = 0x00000011 # Deprecated in KMIP 1.4, designated '(Reserved)' in KMIP 2.0
TRANSPARENT_ECMQV_PRIVATE_KEY = 0x00000012 # Deprecated in KMIP 1.4, designated '(Reserved)' in KMIP 2.0
TRANSPARENT_ECMQV_PUBLIC_KEY = 0x00000013 # Deprecated in KMIP 1.4, designated '(Reserved)' in KMIP 2.0
# KMIP 1.3
TRANSPARENT_EC_PRIVATE_KEY = 0x00000014
TRANSPARENT_EC_PUBLIC_KEY = 0x00000015
# KMIP 1.4
PKCS_12 = 0x00000016
class KeyRoleType(enum.Enum):
# KMIP 1.0
BDK = 0x00000001
CVK = 0x00000002
DEK = 0x00000003
MKAC = 0x00000004
MKSMC = 0x00000005
MKSMI = 0x00000006
MKDAC = 0x00000007
MKDN = 0x00000008
MKCP = 0x00000009
MKOTH = 0x0000000A
KEK = 0x0000000B
MAC_16609 = 0x0000000C
MAC_97971 = 0x0000000D
MAC_97972 = 0x0000000E
MAC_97973 = 0x0000000F
MAC_97974 = 0x00000010
MAC_97975 = 0x00000011
ZPK = 0x00000012
PVKIBM = 0x00000013
PVKPVV = 0x00000014
PVKOTH = 0x00000015
# KMIP 1.4
DUKPT = 0x00000016
IV = 0x00000017
TRKBK = 0x00000018
class KeyValueLocationType(enum.Enum):
# KMIP 1.2
UNINTERPRETED_TEXT_STRING = 0x00000001
URI = 0x00000002
class KeyWrapType(enum.Enum):
NOT_WRAPPED = 0x00000001
AS_REGISTERED = 0x00000002
class KMIPVersion(OrderedEnum):
KMIP_1_0 = 1.0
KMIP_1_1 = 1.1
KMIP_1_2 = 1.2
KMIP_1_3 = 1.3
KMIP_1_4 = 1.4
KMIP_2_0 = 2.0
class LinkType(enum.Enum):
# KMIP 1.0
CERTIFICATE_LINK = 0x00000101
PUBLIC_KEY_LINK = 0x00000102
PRIVATE_KEY_LINK = 0x00000103
DERIVATION_BASE_OBJECT_LINK = 0x00000104
DERIVED_KEY_LINK = 0x00000105
REPLACEMENT_OBJECT_LINK = 0x00000106
REPLACED_OBJECT_LINK = 0x00000107
# KMIP 1.2
PARENT_LINK = 0x00000108
CHILD_LINK = 0x00000109
PREVIOUS_LINK = 0x0000010A
NEXT_LINK = 0x0000010B
# KMIP 1.4
PKCS12_CERTIFICATE_LINK = 0x0000010C
PKCS12_PASSWORD_LINK = 0x0000010D
# KMIP 2.0
WRAPPING_KEY_LINK = 0x0000010E
class MaskGenerator(enum.Enum):
# KMIP 1.4
MGF1 = 0x00000001
class NameType(enum.Enum):
# KMIP 1.0
UNINTERPRETED_TEXT_STRING = 0x00000001
URI = 0x00000002
class NISTKeyType(enum.Enum):
# KMIP 2.0
PRIVATE_SIGNATURE_KEY = 0x00000001
PUBLIC_SIGNATURE_VERIFICATION_KEY = 0x00000002
SYMMETRIC_AUTHENTICATION_KEY = 0x00000003
PRIVATE_AUTHENTICATION_KEY = 0x00000004
PUBLIC_AUTHENTICATION_KEY = 0x00000005
SYMMETRIC_DATA_ENCRYPTION_KEY = 0x00000006
SYMMETRIC_KEY_WRAPPING_KEY = 0x00000007
SYMMETRIC_RANDOM_NUMBER_GENERATION_KEY = 0x00000008
SYMMETRIC_MASTER_KEY = 0x00000009
PRIVATE_KEY_TRANSPORT_KEY = 0x0000000A
PUBLIC_KEY_TRANSPORT_KEY = 0x0000000B
SYMMETRIC_KEY_AGREEMENT_KEY = 0x0000000C
PRIVATE_STATIC_KEY_AGREEMENT_KEY = 0x0000000D
PUBLIC_STATIC_KEY_AGREEMENT_KEY = 0x0000000E
PRIVATE_EPHEMERAL_KEY_AGREEMENT_KEY = 0x0000000F
PUBLIC_EPHEMERAL_KEY_AGREEMENT_KEY = 0x00000010
SYMMETRIC_AUTHORIZATION_KEY = 0x00000011
PRIVATE_AUTHORIZATION_KEY = 0x00000012
PUBLIC_AUTHORIZATION_KEY = 0x00000013
class ObjectGroupMember(enum.Enum):
# KMIP 1.1
GROUP_MEMBER_FRESH = 0x00000001
GROUP_MEMBER_DEFAULT = 0x00000002
class ObjectType(enum.Enum):
# KMIP 1.0
CERTIFICATE = 0x00000001
SYMMETRIC_KEY = 0x00000002
PUBLIC_KEY = 0x00000003
PRIVATE_KEY = 0x00000004
SPLIT_KEY = 0x00000005
TEMPLATE = 0x00000006 # Deprecated in KMIP 1.3, designated '(Reserved)' in KMIP 2.0
SECRET_DATA = 0x00000007
OPAQUE_DATA = 0x00000008
# KMIP 1.2
PGP_KEY = 0x00000009
# KMIP 2.0
CERTIFICATE_REQUEST = 0x0000000A
class OpaqueDataType(enum.Enum):
NONE = 0x80000000 # Not defined by the standard, but we need something.
# The standard does say that values starting 0x8xxxxxx
# are considered extensions
class Operation(enum.Enum):
# KMIP 1.0
CREATE = 0x00000001
CREATE_KEY_PAIR = 0x00000002
REGISTER = 0x00000003
REKEY = 0x00000004
DERIVE_KEY = 0x00000005
CERTIFY = 0x00000006
RECERTIFY = 0x00000007
LOCATE = 0x00000008
CHECK = 0x00000009
GET = 0x0000000A
GET_ATTRIBUTES = 0x0000000B
GET_ATTRIBUTE_LIST = 0x0000000C
ADD_ATTRIBUTE = 0x0000000D
MODIFY_ATTRIBUTE = 0x0000000E
DELETE_ATTRIBUTE = 0x0000000F
OBTAIN_LEASE = 0x00000010
GET_USAGE_ALLOCATION = 0x00000011
ACTIVATE = 0x00000012
REVOKE = 0x00000013
DESTROY = 0x00000014
ARCHIVE = 0x00000015
RECOVER = 0x00000016
VALIDATE = 0x00000017
QUERY = 0x00000018
CANCEL = 0x00000019
POLL = 0x0000001A
NOTIFY = 0x0000001B
PUT = 0x0000001C
# KMIP 1.1
REKEY_KEY_PAIR = 0x0000001D
DISCOVER_VERSIONS = 0x0000001E
# KMIP 1.2
ENCRYPT = 0x0000001F
DECRYPT = 0x00000020
SIGN = 0x00000021
SIGNATURE_VERIFY = 0x00000022
MAC = 0x00000023
MAC_VERIFY = 0x00000024
RNG_RETRIEVE = 0x00000025
RNG_SEED = 0x00000026
HASH = 0x00000027
CREATE_SPLIT_KEY = 0x00000028
JOIN_SPLIT_KEY = 0x00000029
# KMIP 1.4
IMPORT = 0x0000002A
EXPORT = 0x0000002B
# KMIP 2.0
LOG = 0x0000002C
LOGIN = 0x0000002D
LOGOUT = 0x0000002E
DELEGATED_LOGIN = 0x0000002F
ADJUST_ATTRIBUTE = 0x00000030
SET_ATTRIBUTE = 0x00000031
SET_ENDPOINT_ROLE = 0x00000032
PKCS_11 = 0x00000033
INTEROP = 0x00000034
REPROVISION = 0x00000035
class PaddingMethod(enum.Enum):
# KMIP 1.0
NONE = 0x00000001
OAEP = 0x00000002
PKCS5 = 0x00000003
SSL3 = 0x00000004
ZEROS = 0x00000005
ANSI_X923 = 0x00000006
ISO_10126 = 0x00000007
PKCS1v15 = 0x00000008
X931 = 0x00000009
PSS = 0x0000000A
class PKCS11Function(enum.Enum):
# KMIP 2.0
#
# These values are the 1-based offset count of the function in the
# CK_FUNCTION_LIST_3_0 structure as specified in the OASIS PKCS#11
# Cryptographic Token Interface Base Specification Version 3.0 document.
#
# The above document is not currently available, so this set of
# enumerations is intentionally left empty as a placeholder. It should
# be filled in in a future update.
PLACEHOLDER = 'Do not use this.'
class PKCS11ReturnCode(enum.Enum):
# KMIP 2.0
#
# These values are specified in the CK_RV values in the OASIS PKCS#11
# Cryptographic Token Interface Base Specification Version 3.0 document.
#
# The above document is not currently available, so this set of
# enumerations is intentionally left empty as a placeholder. It should
# be filled in in a future update.
PLACEHOLDER = 'Do not use this.'
class Policy(enum.Enum):
ALLOW_ALL = "Allow All"
ALLOW_OWNER = "Allow Owner"
DISALLOW_ALL = "Disallow All"
class ProfileName(enum.Enum):
# KMIP 1.3
BASELINE_SERVER_BASIC_KMIPv12 = 0x00000001
BASELINE_SERVER_TLSv12_KMIPv12 = 0x00000002
BASELINE_CLIENT_BASIC_KMIPv12 = 0x00000003
BASELINE_CLIENT_TLSv12_KMIPv12 = 0x00000004
COMPLETE_SERVER_BASIC_KMIPv12 = 0x00000005
COMPLETE_SERVER_TLSv12_KMIPv12 = 0x00000006
TAPE_LIBRARY_CLIENT_KMIPv10 = 0x00000007
TAPE_LIBRARY_CLIENT_KMIPv11 = 0x00000008
TAPE_LIBRARY_CLIENT_KMIPv12 = 0x00000009
TAPE_LIBRARY_SERVER_KMIPv10 = 0x0000000A
TAPE_LIBRARY_SERVER_KMIPv11 = 0x0000000B
TAPE_LIBRARY_SERVER_KMIPv12 = 0x0000000C
SYMMETRIC_KEY_LIFECYCLE_CLIENT_KMIPv10 = 0x0000000D
SYMMETRIC_KEY_LIFECYCLE_CLIENT_KMIPv11 = 0x0000000E
SYMMETRIC_KEY_LIFECYCLE_CLIENT_KMIPv12 = 0x0000000F
SYMMETRIC_KEY_LIFECYCLE_SERVER_KMIPv10 = 0x00000010
SYMMETRIC_KEY_LIFECYCLE_SERVER_KMIPv11 = 0x00000011
SYMMETRIC_KEY_LIFECYCLE_SERVER_KMIPv12 = 0x00000012
ASYMMETRIC_KEY_LIFECYCLE_CLIENT_KMIPv10 = 0x00000013
ASYMMETRIC_KEY_LIFECYCLE_CLIENT_KMIPv11 = 0x00000014
ASYMMETRIC_KEY_LIFECYCLE_CLIENT_KMIPv12 = 0x00000015
ASYMMETRIC_KEY_LIFECYCLE_SERVER_KMIPv10 = 0x00000016
ASYMMETRIC_KEY_LIFECYCLE_SERVER_KMIPv11 = 0x00000017
ASYMMETRIC_KEY_LIFECYCLE_SERVER_KMIPv12 = 0x00000018
BASIC_CRYPTOGRAPHIC_CLIENT_KMIPv12 = 0x00000019
BASIC_CRYPTOGRAPHIC_SERVER_KMIPv12 = 0x0000001A
ADVANCED_CRYPTOGRAPHIC_CLIENT_KMIPv12 = 0x0000001B
ADVANCED_CRYPTOGRAPHIC_SERVER_KMIPv12 = 0x0000001C
RNG_CRYPTOGRAPHIC_CLIENT_KMIPv12 = 0x0000001D
RNG_CRYPTOGRAPHIC_SERVER_KMIPv12 = 0x0000001E
BASIC_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv10 = 0x0000001F
INTERMEDIATE_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv10 = 0x00000020
ADVANCED_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv10 = 0x00000021
BASIC_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv11 = 0x00000022
INTERMEDIATE_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv11 = 0x00000023
ADVANCED_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv11 = 0x00000024
BASIC_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv12 = 0x00000025
INTERMEDIATE_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv12 = 0x00000026
ADVANCED_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv12 = 0x00000027
SYMMETRIC_KEY_FOUNDRY_SERVER_KMIPv10 = 0x00000028
SYMMETRIC_KEY_FOUNDRY_SERVER_KMIPv11 = 0x00000029
SYMMETRIC_KEY_FOUNDRY_SERVER_KMIPv12 = 0x0000002A
OPAQUE_MANAGED_OBJECT_STORE_CLIENT_KMIPv10 = 0x0000002B
OPAQUE_MANAGED_OBJECT_STORE_CLIENT_KMIPv11 = 0x0000002C
OPAQUE_MANAGED_OBJECT_STORE_CLIENT_KMIPv12 = 0x0000002D
OPAQUE_MANAGED_OBJECT_STORE_SERVER_KMIPv10 = 0x0000002E
OPAQUE_MANAGED_OBJECT_STORE_SERVER_KMIPv11 = 0x0000002F
OPAQUE_MANAGED_OBJECT_STORE_SERVER_KMIPv12 = 0x00000030
SUITE_B_MINLOS_128_CLIENT_KMIPv10 = 0x00000031
SUITE_B_MINLOS_128_CLIENT_KMIPv11 = 0x00000032
SUITE_B_MINLOS_128_CLIENT_KMIPv12 = 0x00000033
SUITE_B_MINLOS_128_SERVER_KMIPv10 = 0x00000034
SUITE_B_MINLOS_128_SERVER_KMIPv11 = 0x00000035
SUITE_B_MINLOS_128_SERVER_KMIPv12 = 0x00000036
SUITE_B_MINLOS_192_CLIENT_KMIPv10 = 0x00000037
SUITE_B_MINLOS_192_CLIENT_KMIPv11 = 0x00000038
SUITE_B_MINLOS_192_CLIENT_KMIPv12 = 0x00000039
SUITE_B_MINLOS_192_SERVER_KMIPv10 = 0x0000003A
SUITE_B_MINLOS_192_SERVER_KMIPv11 = 0x0000003B
SUITE_B_MINLOS_192_SERVER_KMIPv12 = 0x0000003C
STORAGE_ARRAY_WITH_SELF_ENCRYPTING_DRIVE_CLIENT_KMIPv10 = 0x0000003D
STORAGE_ARRAY_WITH_SELF_ENCRYPTING_DRIVE_CLIENT_KMIPv11 = 0x0000003E
STORAGE_ARRAY_WITH_SELF_ENCRYPTING_DRIVE_CLIENT_KMIPv12 = 0x0000003F
STORAGE_ARRAY_WITH_SELF_ENCRYPTING_DRIVE_SERVER_KMIPv10 = 0x00000040
STORAGE_ARRAY_WITH_SELF_ENCRYPTING_DRIVE_SERVER_KMIPv11 = 0x00000041
STORAGE_ARRAY_WITH_SELF_ENCRYPTING_DRIVE_SERVER_KMIPv12 = 0x00000042
HTTPS_CLIENT_KMIPv10 = 0x00000043
HTTPS_CLIENT_KMIPv11 = 0x00000044
HTTPS_CLIENT_KMIPv12 = 0x00000045
HTTPS_SERVER_KMIPv10 = 0x00000046
HTTPS_SERVER_KMIPv11 = 0x00000047
HTTPS_SERVER_KMIPv12 = 0x00000048
JSON_CLIENT_KMIPv10 = 0x00000049
JSON_CLIENT_KMIPv11 = 0x0000004A
JSON_CLIENT_KMIPv12 = 0x0000004B
JSON_SERVER_KMIPv10 = 0x0000004C
JSON_SERVER_KMIPv11 = 0x0000004D
JSON_SERVER_KMIPv12 = 0x0000004E
XML_CLIENT_KMIPv10 = 0x0000004F
XML_CLIENT_KMIPv11 = 0x00000050
XML_CLIENT_KMIPv12 = 0x00000051
XML_SERVER_KMIPv10 = 0x00000052
XML_SERVER_KMIPv11 = 0x00000053
XML_SERVER_KMIPv12 = 0x00000054
BASELINE_SERVER_BASIC_KMIPv13 = 0x00000055
BASELINE_SERVER_TLSv12_KMIPv13 = 0x00000056
BASELINE_CLIENT_BASIC_KMIPv13 = 0x00000057
BASELINE_CLIENT_TLSv12_KMIPv13 = 0x00000058
COMPLETE_SERVER_BASIC_KMIPv13 = 0x00000059
COMPLETE_SERVER_TLSv12_KMIPv13 = 0x0000005A
TAPE_LIBRARY_CLIENT_KMIPv13 = 0x0000005B
TAPE_LIBRARY_SERVER_KMIPv13 = 0x0000005C
SYMMETRIC_KEY_LIFECYCLE_CLIENT_KMIPv13 = 0x0000005D
SYMMETRIC_KEY_LIFECYCLE_SERVER_KMIPv13 = 0x0000005E
ASYMMETRIC_KEY_LIFECYCLE_CLIENT_KMIPv13 = 0x0000005F
ASYMMETRIC_KEY_LIFECYCLE_SERVER_KMIPv13 = 0x00000060
BASIC_CRYPTOGRAPHIC_CLIENT_KMIPv13 = 0x00000061
BASIC_CRYPTOGRAPHIC_SERVER_KMIPv13 = 0x00000062
ADVANCED_CRYPTOGRAPHIC_CLIENT_KMIPv13 = 0x00000063
ADVANCED_CRYPTOGRAPHIC_SERVER_KMIPv13 = 0x00000064
RNG_CRYPTOGRAPHIC_CLIENT_KMIPv13 = 0x00000065
RNG_CRYPTOGRAPHIC_SERVER_KMIPv13 = 0x00000066
BASIC_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv13 = 0x00000067
INTERMEDIATE_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv13 = 0x00000068
ADVANCED_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv13 = 0x00000069
SYMMETRIC_KEY_FOUNDRY_SERVER_KMIPv13 = 0x0000006A
OPAQUE_MANAGED_OBJECT_STORE_CLIENT_KMIPv13 = 0x0000006B
OPAQUE_MANAGED_OBJECT_STORE_SERVER_KMIPv13 = 0x0000006C
SUITE_B_MINLOS_128_CLIENT_KMIPv13 = 0x0000006D
SUITE_B_MINLOS_128_SERVER_KMIPv13 = 0x0000006E
SUITE_B_MINLOS_192_CLIENT_KMIPv13 = 0x0000006F
SUITE_B_MINLOS_192_SERVER_KMIPv13 = 0x00000070
STORAGE_ARRAY_WITH_SELF_ENCRYPTING_DRIVE_CLIENT_KMIPv13 = 0x00000071
STORAGE_ARRAY_WITH_SELF_ENCRYPTING_DRIVE_SERVER_KMIPv13 = 0x00000072
HTTPS_CLIENT_KMIPv13 = 0x00000073
HTTPS_SERVER_KMIPv13 = 0x00000074
JSON_CLIENT_KMIPv13 = 0x00000075
JSON_SERVER_KMIPv13 = 0x00000076
XML_CLIENT_KMIPv13 = 0x00000077
XML_SERVER_KMIPv13 = 0x00000078
# KMIP 1.4
BASELINE_SERVER_BASIC_KMIPv14 = 0x00000079
BASELINE_SERVER_TLSv12_KMIPv14 = 0x0000007A
BASELINE_CLIENT_BASIC_KMIPv14 = 0x0000007B
BASELINE_CLIENT_TLSv12_KMIPv14 = 0x0000007C
COMPLETE_SERVER_BASIC_KMIPv14 = 0x0000007D
COMPLETE_SERVER_TLSv12_KMIPv14 = 0x0000007E
TAPE_LIBRARY_CLIENT_KMIPv14 = 0x0000007F
TAPE_LIBRARY_SERVER_KMIPv14 = 0x00000080
SYMMETRIC_KEY_LIFECYCLE_CLIENT_KMIPv14 = 0x00000081
SYMMETRIC_KEY_LIFECYCLE_SERVER_KMIPv14 = 0x00000082
ASYMMETRIC_KEY_LIFECYCLE_CLIENT_KMIPv14 = 0x00000083
ASYMMETRIC_KEY_LIFECYCLE_SERVER_KMIPv14 = 0x00000084
BASIC_CRYPTOGRAPHIC_CLIENT_KMIPv14 = 0x00000085
BASIC_CRYPTOGRAPHIC_SERVER_KMIPv14 = 0x00000086
ADVANCED_CRYPTOGRAPHIC_CLIENT_KMIPv14 = 0x00000087
ADVANCED_CRYPTOGRAPHIC_SERVER_KMIPv14 = 0x00000088
RNG_CRYPTOGRAPHIC_CLIENT_KMIPv14 = 0x00000089
RNG_CRYPTOGRAPHIC_SERVER_KMIPv14 = 0x0000008A
BASIC_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv14 = 0x0000008B
INTERMEDIATE_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv14 = 0x0000008C
ADVANCED_SYMMETRIC_KEY_FOUNDRY_CLIENT_KMIPv14 = 0x0000008D
SYMMETRIC_KEY_FOUNDRY_SERVER_KMIPv14 = 0x0000008E
OPAQUE_MANAGED_OBJECT_STORE_CLIENT_KMIPv14 = 0x0000008F
OPAQUE_MANAGED_OBJECT_STORE_SERVER_KMIPv14 = 0x00000090
SUITE_B_MINLOS_128_CLIENT_KMIPv14 = 0x00000091
SUITE_B_MINLOS_128_SERVER_KMIPv14 = 0x00000092
SUITE_B_MINLOS_192_CLIENT_KMIPv14 = 0x00000093
SUITE_B_MINLOS_192_SERVER_KMIPv14 = 0x00000094
STORAGE_ARRAY_WITH_SELF_ENCRYPTING_DRIVE_CLIENT_KMIPv14 = 0x00000095
STORAGE_ARRAY_WITH_SELF_ENCRYPTING_DRIVE_SERVER_KMIPv14 = 0x00000096
HTTPS_CLIENT_KMIPv14 = 0x00000097
HTTPS_SERVER_KMIPv14 = 0x00000098
JSON_CLIENT_KMIPv14 = 0x00000099
JSON_SERVER_KMIPv14 = 0x0000009A
XML_CLIENT_KMIPv14 = 0x0000009B
XML_SERVER_KMIPv14 = 0x0000009C
# KMIP 2.0 - All of the above are now designated '(Reserved)' in KMIP 2.0
COMPLETE_SERVER_BASIC = 0x00000104
COMPLETE_SERVER_TLSv12 = 0x00000105
TAPE_LIBRARY_CLIENT = 0x00000106
TAPE_LIBRARY_SERVER = 0x00000107
SYMMETRIC_KEY_LIFECYCLE_CLIENT = 0x00000108
SYMMETRIC_KEY_LIFECYCLE_SERVER = 0x00000109
ASYMMETRIC_KEY_LIFECYCLE_CLIENT = 0x0000010A
ASYMMETRIC_KEY_LIFECYCLE_SERVER = 0x0000010B
BASIC_CRYPTOGRAPHIC_CLIENT = 0x0000010C
BASIC_CRYPTOGRAPHIC_SERVER = 0x0000010D
ADVANCED_CRYPTOGRAPHIC_CLIENT = 0x0000010E
ADVANCED_CRYPTOGRAPHIC_SERVER = 0x0000010F
RNG_CRYPTOGRAPHIC_CLIENT = 0x00000110
RNG_CRYPTOGRAPHIC_SERVER = 0x00000111
BASIC_SYMMETRIC_KEY_FOUNDRY_CLIENT = 0x00000112
INTERMEDIATE_SYMMETRIC_KEY_FOUNDRY_CLIENT = 0x00000113
ADVANCED_SYMMETRIC_KEY_FOUNDRY_CLIENT = 0x00000114
SYMMETRIC_KEY_FOUNDRY_SERVER = 0x00000115
OPAQUE_MANAGED_OBJECT_STORE_CLIENT = 0x00000116
OPAQUE_MANAGED_OBJECT_STORE_SERVER = 0x00000117
SUITE_B_MINLOS_128_CLIENT = 0x00000118
SUITE_B_MINLOS_128_SERVER = 0x00000119
SUITE_B_MINLOS_192_CLIENT = 0x0000011A
SUITE_B_MINLOS_192_SERVER = 0x0000011B
STORAGE_ARRAY_WITH_SELF_ENCRYPTING_DRIVE_CLIENT = 0x0000011C
STORAGE_ARRAY_WITH_SELF_ENCRYPTING_DRIVE_SERVER = 0x0000011D
HTTPS_CLIENT = 0x0000011E
HTTPS_SERVER = 0x0000011F
JSON_CLIENT = 0x00000120
JSON_SERVER = 0x00000121
XML_CLIENT = 0x00000122
XML_SERVER = 0x00000123
AES_XTS_CLIENT = 0x00000124
AES_XTS_SERVER = 0x00000125
QUANTUM_SAFE_CLIENT = 0x00000126
QUANTUM_SAFE_SERVER = 0x00000127
PKCS11_CLIENT = 0x00000128
PKCS11_SERVER = 0x00000129
BASELINE_CLIENT = 0x0000012A
BASELINE_SERVER = 0x0000012B
COMPLETE_SERVER = 0x0000012C
class ProtectionLevel(enum.Enum):
# KMIP 2.0
HIGH = 0x00000001
LOW = 0x00000002
class ProtectionStorageMask(enum.Enum):
# KMIP 2.0
SOFTWARE = 0x00000001
HARDWARE = 0x00000002
ON_PROCESSOR = 0x00000004
ON_SYSTEM = 0x00000008
OFF_SYSTEM = 0x00000010
HYPERVISOR = 0x00000020
OPERATING_SYSTEM = 0x00000040
CONTAINER = 0x00000080
ON_PREMISES = 0x00000100
OFF_PREMISES = 0x00000200
SELF_MANAGED = 0x00000400
OUTSOURCED = 0x00000800
VALIDATED = 0x00001000
SAME_JURISDICTION = 0x00002000
class PutFunction(enum.Enum):
# KMIP 1.0
NEW = 0x00000001
REPLACE = 0x00000002
class QueryFunction(enum.Enum):
# KMIP 1.0
QUERY_OPERATIONS = 0x00000001
QUERY_OBJECTS = 0x00000002
QUERY_SERVER_INFORMATION = 0x00000003
QUERY_APPLICATION_NAMESPACES = 0x00000004
# KMIP 1.1
QUERY_EXTENSION_LIST = 0x00000005
QUERY_EXTENSION_MAP = 0x00000006
# KMIP 1.2
QUERY_ATTESTATION_TYPES = 0x00000007
# KMIP 1.3
QUERY_RNGS = 0x00000008
QUERY_VALIDATIONS = 0x00000009
QUERY_PROFILES = 0x0000000A
QUERY_CAPABILITIES = 0x0000000B
QUERY_CLIENT_REGISTRATION_METHODS = 0x0000000C
# KMIP 2.0
QUERY_DEFAULTS_INFORMATION = 0x0000000D
QUERY_STORAGE_PROTECTION_MASKS = 0x0000000E
class RecommendedCurve(enum.Enum):
# KMIP 1.0
P_192 = 0x00000001
K_163 = 0x00000002
B_163 = 0x00000003
P_224 = 0x00000004
K_233 = 0x00000005
B_233 = 0x00000006
P_256 = 0x00000007
K_283 = 0x00000008
B_283 = 0x00000009
P_384 = 0x0000000A
K_409 = 0x0000000B
B_409 = 0x0000000C
P_521 = 0x0000000D
K_571 = 0x0000000E
B_571 = 0x0000000F
# KMIP 1.2
SECP112R1 = 0x00000010
SECP112R2 = 0x00000011
SECP128R1 = 0x00000012
SECP128R2 = 0x00000013
SECP160K1 = 0x00000014
SECP160R1 = 0x00000015
SECP160R2 = 0x00000016
SECP191K1 = 0x00000017
SECP224K1 = 0x00000018
SECP256K1 = 0x00000019
SECT113R1 = 0x0000001A
SECT113R2 = 0x0000001B
SECT131R1 = 0x0000001C
SECT131R2 = 0x0000001D
SECT163R1 = 0x0000001E
SECT193R1 = 0x0000001F
SECT193R2 = 0x00000020
SECT239K1 = 0x00000021
ANSIX9P192V2 = 0x00000022
ANSIX9P192V3 = 0x00000023
ANSIX9P239V1 = 0x00000024
ANSIX9P239V2 = 0x00000025
ANSIX9P239V3 = 0x00000026
ANSIX9C2PNB163V1 = 0x00000027
ANSIX9C2PNB163V2 = 0x00000028
ANSIX9C2PNB163V3 = 0x00000029
ANSIX9C2PNB176V1 = 0x0000002A
ANSIX9C2TNB191V1 = 0x0000002B
ANSIX9C2TNB191V2 = 0x0000002C
ANSIX9C2TNB191V3 = 0x0000002D
ANSIX9C2PNB208W1 = 0x0000002E
ANSIX9C2TNB239V1 = 0x0000002F
ANSIX9C2TNB239V2 = 0x00000030
ANSIX9C2TNB239V3 = 0x00000031
ANSIX9C2PNB272W1 = 0x00000032
ANSIX9C2PNB304W1 = 0x00000033
ANSIX9C2TNB359V1 = 0x00000034
ANSIX9C2PNB368W1 = 0x00000035
ANSIX9C2TNB431R1 = 0x00000036
BRAINPOOLP160R1 = 0x00000037
BRAINPOOLP160T1 = 0x00000038
BRAINPOOLP192R1 = 0x00000039
BRAINPOOLP192T1 = 0x0000003A
BRAINPOOLP224R1 = 0x0000003B
BRAINPOOLP224T1 = 0x0000003C
BRAINPOOLP256R1 = 0x0000003D
BRAINPOOLP256T1 = 0x0000003E
BRAINPOOLP320R1 = 0x0000003F
BRAINPOOLP320T1 = 0x00000040
BRAINPOOLP384R1 = 0x00000041
BRAINPOOLP384T1 = 0x00000042
BRAINPOOLP512R1 = 0x00000043
BRAINPOOLP512T1 = 0x00000044
# KMIP 2.0
CURVE25519 = 0x00000045
CURVE448 = 0x00000046
class ResultReason(enum.Enum):
# KMIP 1.0
ITEM_NOT_FOUND = 0x00000001
RESPONSE_TOO_LARGE = 0x00000002
AUTHENTICATION_NOT_SUCCESSFUL = 0x00000003
INVALID_MESSAGE = 0x00000004
OPERATION_NOT_SUPPORTED = 0x00000005
MISSING_DATA = 0x00000006
INVALID_FIELD = 0x00000007
FEATURE_NOT_SUPPORTED = 0x00000008
OPERATION_CANCELED_BY_REQUESTER = 0x00000009
CRYPTOGRAPHIC_FAILURE = 0x0000000A
ILLEGAL_OPERATION = 0x0000000B
PERMISSION_DENIED = 0x0000000C
OBJECT_ARCHIVED = 0x0000000D
INDEX_OUT_OF_BOUNDS = 0x0000000E
APPLICATION_NAMESPACE_NOT_SUPPORTED = 0x0000000F
KEY_FORMAT_TYPE_NOT_SUPPORTED = 0x00000010
KEY_COMPRESSION_TYPE_NOT_SUPPORTED = 0x00000011
ENCODING_OPTION_ERROR = 0x00000012
KEY_VALUE_NOT_PRESENT = 0x00000013
ATTESTATION_REQUIRED = 0x00000014
ATTESTATION_FAILED = 0x00000015
SENSITIVE = 0x00000016
NOT_EXTRACTABLE = 0x00000017
OBJECT_ALREADY_EXISTS = 0x00000018
GENERAL_FAILURE = 0x00000100
# KMIP 2.0
INVALID_TICKET = 0x00000019
USAGE_LIMIT_EXCEEDED = 0x0000001A
NUMERIC_RANGE = 0x0000001B
INVALID_DATA_TYPE = 0x0000001C
READ_ONLY_ATTRIBUTE = 0x0000001D
MULTI_VALUED_ATTRIBUTE = 0x0000001E
UNSUPPORTED_ATTRIBUTE = 0x0000001F
ATTRIBUTE_INSTANCE_NOT_FOUND = 0x00000020
ATTRIBUTE_NOT_FOUND = 0x00000021
ATTRIBUTE_READ_ONLY = 0x00000022
ATTRIBUTE_SINGLE_VALUED = 0x00000023
BAD_CRYPTOGRAPHIC_PARAMETERS = 0x00000024
BAD_PASSWORD = 0x00000025
CODEC_ERROR = 0x00000026
# 0x00000027 is designated '(Reserved)' in KMIP 2.0
ILLEGAL_OBJECT_TYPE = 0x00000028
INCOMPATIBLE_CRYPTOGRAPHIC_USAGE_MASK = 0x00000029
INTERNAL_SERVER_ERROR = 0x0000002A
INVALID_ASYNCHRONOUS_CORRELATION_VALUE = 0x0000002B
INVALID_ATTRIBUTE = 0x0000002C
INVALID_ATTRIBUTE_VALUE = 0x0000002D
INVALID_CORRELATION_VALUE = 0x0000002E
INVALID_CSR = 0x0000002F
INVALID_OBJECT_TYPE = 0x00000030
# 0x00000031 is designated '(Reserved)' in KMIP 2.0
KEY_WRAP_TYPE_NOT_SUPPORTED = 0x00000032
# 0x00000033 is designated '(Reserved)' in KMIP 2.0
MISSING_INITIALIZATION_VECTOR = 0x00000034
NON_UNIQUE_NAME_ATTRIBUTE = 0x00000035
OBJECT_DESTROYED = 0x00000036
OBJECT_NOT_FOUND = 0x00000037
# 0x00000038 is unassigned
NOT_AUTHORISED = 0x00000039
SERVER_LIMIT_EXCEEDED = 0x0000003A
UNKNOWN_ENUMERATION = 0x0000003B
UNKNOWN_MESSAGE_EXTENSION = 0x0000003C
UNKNOWN_TAG = 0x0000003D
UNSUPPORTED_CRYPTOGRAPHIC_PARAMETERS = 0x0000003E
UNSUPPORTED_PROTOCOL_VERSION = 0x0000003F
WRAPPING_OBJECT_ARCHIVED = 0x00000040
WRAPPING_OBJECT_DESTROYED = 0x00000041
WRAPPING_OBJECT_NOT_FOUND = 0x00000042
WRONG_KEY_LIFECYCLE_STATE = 0x00000043
PROTECTION_STORAGE_UNAVAILABLE = 0x00000044
PKCS11_CODEC_ERROR = 0x00000045
PKCS11_INVALID_FUNCTION = 0x00000046
PKCS11_INVALID_INTERFACE = 0x00000047
class ResultStatus(enum.Enum):
# KMIP 1.0
SUCCESS = 0x00000000
OPERATION_FAILED = 0x00000001
OPERATION_PENDING = 0x00000002
OPERATION_UNDONE = 0x00000003
class RevocationReasonCode(enum.Enum):
# KMIP 1.0
UNSPECIFIED = 0x00000001
KEY_COMPROMISE = 0x00000002
CA_COMPROMISE = 0x00000003
AFFILIATION_CHANGED = 0x00000004
SUPERSEDED = 0x00000005
CESSATION_OF_OPERATION = 0x00000006
PRIVILEGE_WITHDRAWN = 0x00000007
class RNGAlgorithm(enum.Enum):
# KMIP 1.3
UNSPECIFIED = 0x00000001
FIPS186_2 = 0x00000002
DRBG = 0x00000003
NRBG = 0x00000004
ANSI_X931 = 0x00000005
ANSI_X962 = 0x00000006
class RNGMode(enum.Enum):
# KMIP 1.3
UNSPECIFIED = 0x00000001
SHARED_INSTANTIATION = 0x00000002
NON_SHARED_INSTANTIATION = 0x00000003
class SecretDataType(enum.Enum):
# KMIP 1.0
PASSWORD = 0x00000001
SEED = 0x00000002
class ShreddingAlgorithm(enum.Enum):
# KMIP 1.3
UNSPECIFIED = 0x00000001
CRYPTOGRAPHIC = 0x00000002
UNSUPPORTED = 0x00000003
class SplitKeyMethod(enum.Enum):
# KMIP 1.0
XOR = 0x00000001
POLYNOMIAL_SHARING_GF_2_16 = 0x00000002
POLYNOMIAL_SHARING_PRIME_FIELD = 0x00000003
# KMIP 1.2
POLYNOMIAL_SHARING_GF_2_8 = 0x00000004
class State(enum.Enum):
# KMIP 1.0
PRE_ACTIVE = 0x00000001
ACTIVE = 0x00000002
DEACTIVATED = 0x00000003
COMPROMISED = 0x00000004
DESTROYED = 0x00000005
DESTROYED_COMPROMISED = 0x00000006
class StorageStatusMask(enum.Enum):
# KMIP 1.0
ONLINE_STORAGE = 0x00000001
ARCHIVAL_STORAGE = 0x00000002
# KMIP 2.0
DESTROYED_STORAGE = 0x00000004
class Tags(enum.Enum):
DEFAULT = 0x420000 # Custom PyKMIP tag used as the global default
# KMIP 1.0
ACTIVATION_DATE = 0x420001
APPLICATION_DATA = 0x420002
APPLICATION_NAMESPACE = 0x420003
APPLICATION_SPECIFIC_INFORMATION = 0x420004
ARCHIVE_DATE = 0x420005
ASYNCHRONOUS_CORRELATION_VALUE = 0x420006
ASYNCHRONOUS_INDICATOR = 0x420007
ATTRIBUTE = 0x420008
ATTRIBUTE_INDEX = 0x420009 # Designated '(Reserved)' in KMIP 2.0
ATTRIBUTE_NAME = 0x42000A
ATTRIBUTE_VALUE = 0x42000B
AUTHENTICATION = 0x42000C
BATCH_COUNT = 0x42000D
BATCH_ERROR_CONTINUATION_OPTION = 0x42000E
BATCH_ITEM = 0x42000F
BATCH_ORDER_OPTION = 0x420010
BLOCK_CIPHER_MODE = 0x420011
CANCELLATION_RESULT = 0x420012
CERTIFICATE = 0x420013
CERTIFICATE_IDENTIFIER = 0x420014 # Deprecated, designated '(Reserved)' in KMIP 2.0
CERTIFICATE_ISSUER = 0x420015 # Deprecated, designated '(Reserved)' in KMIP 2.0
CERTIFICATE_ISSUER_ALTERNATIVE_NAME = 0x420016 # Deprecated, designated '(Reserved)' in KMIP 2.0
CERTIFICATE_ISSUER_DISTINGUISHED_NAME = 0x420017 # Deprecated, designated '(Reserved)' in KMIP 2.0
CERTIFICATE_REQUEST = 0x420018
CERTIFICATE_REQUEST_TYPE = 0x420019
CERTIFICATE_SUBJECT = 0x42001A # Deprecated, designated '(Reserved)' in KMIP 2.0
CERTIFICATE_SUBJECT_ALTERNATIVE_NAME = 0x42001B # Deprecated, designated '(Reserved)' in KMIP 2.0
CERTIFICATE_SUBJECT_DISTINGUISHED_NAME = 0x42001C # Deprecated, designated '(Reserved)' in KMIP 2.0
CERTIFICATE_TYPE = 0x42001D
CERTIFICATE_VALUE = 0x42001E
COMMON_TEMPLATE_ATTRIBUTE = 0x42001F # Designated '(Reserved)' in KMIP 2.0
COMPROMISE_DATE = 0x420020
COMPROMISE_OCCURRENCE_DATE = 0x420021
CONTACT_INFORMATION = 0x420022
CREDENTIAL = 0x420023
CREDENTIAL_TYPE = 0x420024
CREDENTIAL_VALUE = 0x420025
CRITICALITY_INDICATOR = 0x420026
CRT_COEFFICIENT = 0x420027
CRYPTOGRAPHIC_ALGORITHM = 0x420028
CRYPTOGRAPHIC_DOMAIN_PARAMETERS = 0x420029
CRYPTOGRAPHIC_LENGTH = 0x42002A
CRYPTOGRAPHIC_PARAMETERS = 0x42002B
CRYPTOGRAPHIC_USAGE_MASK = 0x42002C
CUSTOM_ATTRIBUTE = 0x42002D # Designated '(Reserved)' in KMIP 2.0
D = 0x42002E
DEACTIVATION_DATE = 0x42002F
DERIVATION_DATA = 0x420030
DERIVATION_METHOD = 0x420031
DERIVATION_PARAMETERS = 0x420032
DESTROY_DATE = 0x420033
DIGEST = 0x420034
DIGEST_VALUE = 0x420035
ENCRYPTION_KEY_INFORMATION = 0x420036
G = 0x420037
HASHING_ALGORITHM = 0x420038
INITIAL_DATE = 0x420039
INITIALIZATION_VECTOR = 0x42003A
ISSUER = 0x42003B # Deprecated, designated '(Reserved)' in KMIP 2.0
ITERATION_COUNT = 0x42003C
IV_COUNTER_NONCE = 0x42003D
J = 0x42003E
KEY = 0x42003F
KEY_BLOCK = 0x420040
KEY_COMPRESSION_TYPE = 0x420041
KEY_FORMAT_TYPE = 0x420042
KEY_MATERIAL = 0x420043
KEY_PART_IDENTIFIER = 0x420044
KEY_VALUE = 0x420045
KEY_WRAPPING_DATA = 0x420046
KEY_WRAPPING_SPECIFICATION = 0x420047
LAST_CHANGE_DATE = 0x420048
LEASE_TIME = 0x420049
LINK = 0x42004A
LINK_TYPE = 0x42004B
LINKED_OBJECT_IDENTIFIER = 0x42004C
MAC_SIGNATURE = 0x42004D
MAC_SIGNATURE_KEY_INFORMATION = 0x42004E
MAXIMUM_ITEMS = 0x42004F
MAXIMUM_RESPONSE_SIZE = 0x420050
MESSAGE_EXTENSION = 0x420051
MODULUS = 0x420052
NAME = 0x420053
NAME_TYPE = 0x420054
NAME_VALUE = 0x420055
OBJECT_GROUP = 0x420056
OBJECT_TYPE = 0x420057
OFFSET = 0x420058
OPAQUE_DATA_TYPE = 0x420059
OPAQUE_DATA_VALUE = 0x42005A
OPAQUE_OBJECT = 0x42005B
OPERATION = 0x42005C
OPERATION_POLICY_NAME = 0x42005D # Designated '(Reserved)' in KMIP 2.0
P = 0x42005E
PADDING_METHOD = 0x42005F
PRIME_EXPONENT_P = 0x420060
PRIME_EXPONENT_Q = 0x420061
PRIME_FIELD_SIZE = 0x420062
PRIVATE_EXPONENT = 0x420063
PRIVATE_KEY = 0x420064
PRIVATE_KEY_TEMPLATE_ATTRIBUTE = 0x420065 # Designated '(Reserved)' in KMIP 2.0
PRIVATE_KEY_UNIQUE_IDENTIFIER = 0x420066
PROCESS_START_DATE = 0x420067
PROTECT_STOP_DATE = 0x420068
PROTOCOL_VERSION = 0x420069
PROTOCOL_VERSION_MAJOR = 0x42006A
PROTOCOL_VERSION_MINOR = 0x42006B
PUBLIC_EXPONENT = 0x42006C
PUBLIC_KEY = 0x42006D
PUBLIC_KEY_TEMPLATE_ATTRIBUTE = 0x42006E # Designated '(Reserved)' in KMIP 2.0
PUBLIC_KEY_UNIQUE_IDENTIFIER = 0x42006F
PUT_FUNCTION = 0x420070
Q = 0x420071
Q_STRING = 0x420072
QLENGTH = 0x420073
QUERY_FUNCTION = 0x420074
RECOMMENDED_CURVE = 0x420075
REPLACED_UNIQUE_IDENTIFIER = 0x420076
REQUEST_BATCH_ITEM = 0x42000F
REQUEST_HEADER = 0x420077
REQUEST_MESSAGE = 0x420078
REQUEST_PAYLOAD = 0x420079
RESPONSE_BATCH_ITEM = 0x42000F
RESPONSE_HEADER = 0x42007A
RESPONSE_MESSAGE = 0x42007B
RESPONSE_PAYLOAD = 0x42007C
RESULT_MESSAGE = 0x42007D
RESULT_REASON = 0x42007E
RESULT_STATUS = 0x42007F
REVOCATION_MESSAGE = 0x420080
REVOCATION_REASON = 0x420081
REVOCATION_REASON_CODE = 0x420082
KEY_ROLE_TYPE = 0x420083
SALT = 0x420084
SECRET_DATA = 0x420085
SECRET_DATA_TYPE = 0x420086
SERIAL_NUMBER = 0x420087 # Deprecated, designated '(Reserved)' in KMIP 2.0
SERVER_INFORMATION = 0x420088
SPLIT_KEY = 0x420089
SPLIT_KEY_METHOD = 0x42008A
SPLIT_KEY_PARTS = 0x42008B
SPLIT_KEY_THRESHOLD = 0x42008C
STATE = 0x42008D
STORAGE_STATUS_MASK = 0x42008E
SYMMETRIC_KEY = 0x42008F
TEMPLATE = 0x420090 # Designated '(Reserved)' in KMIP 2.0
TEMPLATE_ATTRIBUTE = 0x420091 # Designated '(Reserved)' in KMIP 2.0
TIME_STAMP = 0x420092
UNIQUE_BATCH_ITEM_ID = 0x420093
UNIQUE_IDENTIFIER = 0x420094
USAGE_LIMITS = 0x420095
USAGE_LIMITS_COUNT = 0x420096
USAGE_LIMITS_TOTAL = 0x420097
USAGE_LIMITS_UNIT = 0x420098
USERNAME = 0x420099
VALIDITY_DATE = 0x42009A
VALIDITY_INDICATOR = 0x42009B
VENDOR_EXTENSION = 0x42009C
VENDOR_IDENTIFICATION = 0x42009D
WRAPPING_METHOD = 0x42009E
X = 0x42009F
Y = 0x4200A0
PASSWORD = 0x4200A1
# KMIP 1.1
DEVICE_IDENTIFIER = 0x4200A2
ENCODING_OPTION = 0x4200A3
EXTENSION_INFORMATION = 0x4200A4
EXTENSION_NAME = 0x4200A5
EXTENSION_TAG = 0x4200A6
EXTENSION_TYPE = 0x4200A7
FRESH = 0x4200A8
MACHINE_IDENTIFIER = 0x4200A9
MEDIA_IDENTIFIER = 0x4200AA
NETWORK_IDENTIFIER = 0x4200AB
OBJECT_GROUP_MEMBER = 0x4200AC
CERTIFICATE_LENGTH = 0x4200AD
DIGITAL_SIGNATURE_ALGORITHM = 0x4200AE
CERTIFICATE_SERIAL_NUMBER = 0x4200AF
DEVICE_SERIAL_NUMBER = 0x4200B0
ISSUER_ALTERNATIVE_NAME = 0x4200B1
ISSUER_DISTINGUISHED_NAME = 0x4200B2
SUBJECT_ALTERNATIVE_NAME = 0x4200B3
SUBJECT_DISTINGUISHED_NAME = 0x4200B4
X_509_CERTIFICATE_IDENTIFIER = 0x4200B5
X_509_CERTIFICATE_ISSUER = 0x4200B6
X_509_CERTIFICATE_SUBJECT = 0x4200B7
# KMIP 1.2
KEY_VALUE_LOCATION = 0x4200B8
KEY_VALUE_LOCATION_VALUE = 0x4200B9
KEY_VALUE_LOCATION_TYPE = 0x4200BA
KEY_VALUE_PRESENT = 0x4200BB
ORIGINAL_CREATION_DATE = 0x4200BC
PGP_KEY = 0x4200BD
PGP_KEY_VERSION = 0x4200BE
ALTERNATIVE_NAME = 0x4200BF
ALTERNATIVE_NAME_VALUE = 0x4200C0
ALTERNATIVE_NAME_TYPE = 0x4200C1
DATA = 0x4200C2
SIGNATURE_DATA = 0x4200C3
DATA_LENGTH = 0x4200C4
RANDOM_IV = 0x4200C5
MAC_DATA = 0x4200C6
ATTESTATION_TYPE = 0x4200C7
NONCE = 0x4200C8
NONCE_ID = 0x4200C9
NONCE_VALUE = 0x4200CA
ATTESTATION_MEASUREMENT = 0x4200CB
ATTESTATION_ASSERTION = 0x4200CC
IV_LENGTH = 0x4200CD
TAG_LENGTH = 0x4200CE
FIXED_FIELD_LENGTH = 0x4200CF
COUNTER_LENGTH = 0x4200D0
INITIAL_COUNTER_VALUE = 0x4200D1
INVOCATION_FIELD_LENGTH = 0x4200D2
ATTESTATION_CAPABLE_INDICATOR = 0x4200D3
# KMIP 1.3
OFFSET_ITEMS = 0x4200D4
LOCATED_ITEMS = 0x4200D5
CORRELATION_VALUE = 0x4200D6
INIT_INDICATOR = 0x4200D7
FINAL_INDICATOR = 0x4200D8
RNG_PARAMETERS = 0x4200D9
RNG_ALGORITHM = 0x4200DA
DRBG_ALGORITHM = 0x4200DB
FIPS186_VARIATION = 0x4200DC
PREDICTION_RESISTANCE = 0x4200DD
RANDOM_NUMBER_GENERATOR = 0x4200DE
VALIDATION_INFORMATION = 0x4200DF
VALIDATION_AUTHORITY_TYPE = 0x4200E0
VALIDATION_AUTHORITY_COUNTRY = 0x4200E1
VALIDATION_AUTHORITY_URI = 0x4200E2
VALIDATION_VERSION_MAJOR = 0x4200E3
VALIDATION_VERSION_MINOR = 0x4200E4
VALIDATION_TYPE = 0x4200E5
VALIDATION_LEVEL = 0x4200E6
VALIDATION_CERTIFICATE_IDENTIFIER = 0x4200E7
VALIDATION_CERTIFICATE_URI = 0x4200E8
VALIDATION_VENDOR_URI = 0x4200E9
VALIDATION_PROFILE = 0x4200EA
PROFILE_INFORMATION = 0x4200EB
PROFILE_NAME = 0x4200EC
SERVER_URI = 0x4200ED
SERVER_PORT = 0x4200EE
STREAMING_CAPABILITY = 0x4200EF
ASYNCHRONOUS_CAPABILITY = 0x4200F0
ATTESTATION_CAPABILITY = 0x4200F1
UNWRAP_MODE = 0x4200F2
DESTROY_ACTION = 0x4200F3
SHREDDING_ALGORITHM = 0x4200F4
RNG_MODE = 0x4200F5
CLIENT_REGISTRATION_METHOD = 0x4200F6
CAPABILITY_INFORMATION = 0x4200F7
# KMIP 1.4
KEY_WRAP_TYPE = 0x4200F8
BATCH_UNDO_CAPABILITY = 0x4200F9
BATCH_CONTINUE_CAPABILITY = 0x4200FA
PKCS12_FRIENDLY_NAME = 0x4200FB
DESCRIPTION = 0x4200FC
COMMENT = 0x4200FD
AUTHENTICATED_ENCRYPTION_ADDITIONAL_DATA = 0x4200FE
AUTHENTICATED_ENCRYPTION_TAG = 0x4200FF
SALT_LENGTH = 0x420100
MASK_GENERATOR = 0x420101
MASK_GENERATOR_HASHING_ALGORITHM = 0x420102
P_SOURCE = 0x420103
TRAILER_FIELD = 0x420104
CLIENT_CORRELATION_VALUE = 0x420105
SERVER_CORRELATION_VALUE = 0x420106
DIGESTED_DATA = 0x420107
CERTIFICATE_SUBJECT_CN = 0x420108
CERTIFICATE_SUBJECT_O = 0x420109
CERTIFICATE_SUBJECT_OU = 0x42010A
CERTIFICATE_SUBJECT_EMAIL = 0x42010B
CERTIFICATE_SUBJECT_C = 0x42010C
CERTIFICATE_SUBJECT_ST = 0x42010D
CERTIFICATE_SUBJECT_L = 0x42010E
CERTIFICATE_SUBJECT_UID = 0x42010F
CERTIFICATE_SUBJECT_SERIAL_NUMBER = 0x420110
CERTIFICATE_SUBJECT_TITLE = 0x420111
CERTIFICATE_SUBJECT_DC = 0x420112
CERTIFICATE_SUBJECT_DN_QUALIFIER = 0x420113
CERTIFICATE_ISSUER_CN = 0x420114
CERTIFICATE_ISSUER_O = 0x420115
CERTIFICATE_ISSUER_OU = 0x420116
CERTIFICATE_ISSUER_EMAIL = 0x420117
CERTIFICATE_ISSUER_C = 0x420118
CERTIFICATE_ISSUER_ST = 0x420119
CERTIFICATE_ISSUER_L = 0x42011A
CERTIFICATE_ISSUER_UID = 0x42011B
CERTIFICATE_ISSUER_SERIAL_NUMBER = 0x42011C
CERTIFICATE_ISSUER_TITLE = 0x42011D
CERTIFICATE_ISSUER_DC = 0x42011E
CERTIFICATE_ISSUER_DN_QUALIFIER = 0x42011F
SENSITIVE = 0x420120
ALWAYS_SENSITIVE = 0x420121
EXTRACTABLE = 0x420122
NEVER_EXTRACTABLE = 0x420123
REPLACE_EXISTING = 0x420124
# KMIP 2.0
ATTRIBUTES = 0x420125
COMMON_ATTRIBUTES = 0x420126
PRIVATE_KEY_ATTRIBUTES = 0x420127
PUBLIC_KEY_ATTRIBUTES = 0x420128
EXTENSION_ENUMERATION = 0x420129
EXTENSION_ATTRIBUTE = 0x42012A
EXTENSION_PARENT_STRUCTURE_TAG = 0x42012B
EXTENSION_DESCRIPTION = 0x42012C
SERVER_NAME = 0x42012D
SERVER_SERIAL_NUMBER = 0x42012E
SERVER_VERSION = 0x42012F
SERVER_LOAD = 0x420130
PRODUCT_NAME = 0x420131
BUILD_LEVEL = 0x420132
BUILD_DATE = 0x420133
CLUSTER_INFO = 0x420134
ALTERNATE_FAILOVER_ENDPOINTS = 0x420135
SHORT_UNIQUE_IDENTIFIER = 0x420136
RESERVED = 0x420137
TAG = 0x420138
CERTIFICATE_REQUEST_UNIQUE_IDENTIFIER = 0x420139
NIST_KEY_TYPE = 0x42013A
ATTRIBUTE_REFERENCE = 0x42013B
CURRENT_ATTRIBUTE = 0x42013C
NEW_ATTRIBUTE = 0x42013D
# 0x42013E is designated '(Reserved)' in KMIP 2.0
# 0x42013F is designated '(Reserved)' in KMIP 2.0
CERTIFICATE_REQUEST_VALUE = 0x420140
LOG_MESSAGE = 0x420141
PROFILE_VERSION = 0x420142
PROFILE_VERSION_MAJOR = 0x420143
PROFILE_VERSION_MINOR = 0x420144
PROTECTION_LEVEL = 0x420145
PROTECTION_PERIOD = 0x420146
QUANTUM_SAFE = 0x420147
QUANTUM_SAFE_CAPABILITY = 0x420148
TICKET = 0x420149
TICKET_TYPE = 0x42014A
TICKET_VALUE = 0x42014B
REQUEST_COUNT = 0x42014C
RIGHTS = 0x42014D
OBJECTS = 0x42014E
OPERATIONS = 0x42014F
RIGHT = 0x420150
ENDPOINT_ROLE = 0x420151
DEFAULTS_INFORMATION = 0x420152
OBJECT_DEFAULTS = 0x420153
EPHEMERAL = 0x420154
SERVER_HASHED_PASSWORD = 0x420155
ONE_TIME_PASSWORD = 0x420156
HASHED_PASSWORD = 0x420157
ADJUSTMENT_TYPE = 0x420158
PKCS11_INTERFACE = 0x420159
PKCS11_FUNCTION = 0x42015A
PKCS11_INPUT_PARAMETERS = 0x42015B
PKCS11_OUTPUT_PARAMETERS = 0x42015C
PKCS11_RETURN_CODE = 0x42015D
PROTECTION_STORAGE_MASK = 0x42015E
PROTECTION_STORAGE_MASKS = 0x42015F
INTEROP_FUNCTION = 0x420160
INTEROP_IDENTIFIER = 0x420161
ADJUSTMENT_VALUE = 0x420162
class TicketType(enum.Enum):
# KMIP 2.0
LOGIN = 0x00000001
class Types(enum.Enum):
DEFAULT = 0x00
STRUCTURE = 0x01
INTEGER = 0x02
LONG_INTEGER = 0x03
BIG_INTEGER = 0x04
ENUMERATION = 0x05
BOOLEAN = 0x06
TEXT_STRING = 0x07
BYTE_STRING = 0x08
DATE_TIME = 0x09
INTERVAL = 0x0A
class UniqueIdentifier(enum.Enum):
# KMIP 2.0
ID_PLACEHOLDER = 0x00000001
CERTIFY = 0x00000002
CREATE = 0x00000003
CREATE_KEY_PAIR = 0x00000004
CREATE_KEY_PAIR_PRIVATE_KEY = 0x00000005
CREATE_KEY_PAIR_PUBLIC_KEY = 0x00000006
CREATE_SPLIT_KEY = 0x00000007
DERIVE_KEY = 0x00000008
IMPORT = 0x00000009
JOIN_SPLIT_KEY = 0x0000000A
LOCATE = 0x0000000B
REGISTER = 0x0000000C
REKEY = 0x0000000D
RECERTIFY = 0x0000000E
REKEY_KEY_PAIR = 0x0000000F
REKEY_KEY_PAIR_PRIVATE_KEY = 0x00000010
REKEY_KEY_PAIR_PUBLIC_KEY = 0x00000011
class UnwrapMode(enum.Enum):
# KMIP 1.3
UNSPECIFIED = 0x00000001
PROCESSED = 0x00000002
NOT_PROCESSED = 0x00000003
class UsageLimitsUnit(enum.Enum):
# KMIP 1.0
BYTE = 0x00000001
OBJECT = 0x00000002
class ValidationAuthorityType(enum.Enum):
# KMIP 1.3
UNSPECIFIED = 0x00000001
NIST_CMVP = 0x00000002
COMMON_CRITERIA = 0x00000003
class ValidationType(enum.Enum):
# KMIP 1.3
UNSPECIFIED = 0x00000001
HARDWARE = 0x00000002
SOFTWARE = 0x00000003
FIRMWARE = 0x00000004
HYBRID = 0x00000005
class ValidityIndicator(enum.Enum):
# KMIP 1.0
VALID = 0x00000001
INVALID = 0x00000002
UNKNOWN = 0x00000003
class WrappingMethod(enum.Enum):
# KMIP 1.0
ENCRYPT = 0x00000001
MAC_SIGN = 0x00000002
ENCRYPT_THEN_MAC_SIGN = 0x00000003
MAC_SIGN_THEN_ENCRYPT = 0x00000004
TR_31 = 0x00000005
attribute_name_tag_table = [
("Activation Date", Tags.ACTIVATION_DATE),
("Alternative Name", Tags.ALTERNATIVE_NAME),
("Always Sensitive", Tags.ALWAYS_SENSITIVE),
("Application Specific Information", Tags.APPLICATION_SPECIFIC_INFORMATION),
("Archive Date", Tags.ARCHIVE_DATE),
("Attribute", Tags.ATTRIBUTE),
("Certificate Identifier", Tags.CERTIFICATE_IDENTIFIER),
("Certificate Issuer", Tags.CERTIFICATE_ISSUER),
("Certificate Issuer C", Tags.CERTIFICATE_ISSUER_C),
("Certificate Issuer CN", Tags.CERTIFICATE_ISSUER_CN),
("Certificate Issuer DC", Tags.CERTIFICATE_ISSUER_DC),
("Certificate Issuer DN Qualifier", Tags.CERTIFICATE_ISSUER_DN_QUALIFIER),
("Certificate Issuer Email", Tags.CERTIFICATE_ISSUER_EMAIL),
("Certificate Issuer L", Tags.CERTIFICATE_ISSUER_L),
("Certificate Issuer O", Tags.CERTIFICATE_ISSUER_O),
("Certificate Issuer OU", Tags.CERTIFICATE_ISSUER_OU),
("Certificate Issuer Serial Number", Tags.CERTIFICATE_ISSUER_SERIAL_NUMBER),
("Certificate Issuer ST", Tags.CERTIFICATE_ISSUER_ST),
("Certificate Issuer Title", Tags.CERTIFICATE_ISSUER_TITLE),
("Certificate Issuer UID", Tags.CERTIFICATE_ISSUER_UID),
("Certificate Length", Tags.CERTIFICATE_LENGTH),
("Certificate Subject", Tags.CERTIFICATE_SUBJECT),
("Certificate Subject C", Tags.CERTIFICATE_SUBJECT_C),
("Certificate Subject CN", Tags.CERTIFICATE_SUBJECT_CN),
("Certificate Subject DC", Tags.CERTIFICATE_SUBJECT_DC),
("Certificate Subject DN Qualifier", Tags.CERTIFICATE_SUBJECT_DN_QUALIFIER),
("Certificate Subject Email", Tags.CERTIFICATE_SUBJECT_EMAIL),
("Certificate Subject L", Tags.CERTIFICATE_SUBJECT_L),
("Certificate Subject O", Tags.CERTIFICATE_SUBJECT_O),
("Certificate Subject OU", Tags.CERTIFICATE_SUBJECT_OU),
("Certificate Subject Serial Number", Tags.CERTIFICATE_SUBJECT_SERIAL_NUMBER),
("Certificate Subject ST", Tags.CERTIFICATE_SUBJECT_ST),
("Certificate Subject Title", Tags.CERTIFICATE_SUBJECT_TITLE),
("Certificate Subject UID", Tags.CERTIFICATE_SUBJECT_UID),
("Certificate Type", Tags.CERTIFICATE_TYPE),
("Comment", Tags.COMMENT),
("Compromise Date", Tags.COMPROMISE_DATE),
("Compromise Occurrence Date", Tags.COMPROMISE_OCCURRENCE_DATE),
("Contact Information", Tags.CONTACT_INFORMATION),
("Cryptographic Algorithm", Tags.CRYPTOGRAPHIC_ALGORITHM),
("Cryptographic Domain Parameters", Tags.CRYPTOGRAPHIC_DOMAIN_PARAMETERS),
("Cryptographic Length", Tags.CRYPTOGRAPHIC_LENGTH),
("Cryptographic Parameters", Tags.CRYPTOGRAPHIC_PARAMETERS),
("Cryptographic Usage Mask", Tags.CRYPTOGRAPHIC_USAGE_MASK),
("Custom Attribute", Tags.CUSTOM_ATTRIBUTE),
("Deactivation Date", Tags.DEACTIVATION_DATE),
("Description", Tags.DESCRIPTION),
("Destroy Date", Tags.DESTROY_DATE),
("Digest", Tags.DIGEST),
("Digital Signature Algorithm", Tags.DIGITAL_SIGNATURE_ALGORITHM),
("Extractable", Tags.EXTRACTABLE),
("Fresh", Tags.FRESH),
("Initial Date", Tags.INITIAL_DATE),
("Key Format Type", Tags.KEY_FORMAT_TYPE),
("Key Value Location", Tags.KEY_VALUE_LOCATION),
("Key Value Present", Tags.KEY_VALUE_PRESENT),
("Last Change Date", Tags.LAST_CHANGE_DATE),
("Lease Time", Tags.LEASE_TIME),
("Link", Tags.LINK),
("Name", Tags.NAME),
("Never Extractable", Tags.NEVER_EXTRACTABLE),
("NIST Key Type", Tags.NIST_KEY_TYPE),
("Object Group", Tags.OBJECT_GROUP),
("Object Type", Tags.OBJECT_TYPE),
("Opaque Data Type", Tags.OPAQUE_DATA_TYPE),
("Operation Policy Name", Tags.OPERATION_POLICY_NAME),
("Original Creation Date", Tags.ORIGINAL_CREATION_DATE),
("PKCS#12 Friendly Name", Tags.PKCS12_FRIENDLY_NAME),
("Process Start Date", Tags.PROCESS_START_DATE),
("Protect Stop Date", Tags.PROTECT_STOP_DATE),
("Protection Level", Tags.PROTECTION_LEVEL),
("Protection Period", Tags.PROTECTION_PERIOD),
("Protection Storage Mask", Tags.PROTECTION_STORAGE_MASK),
("Quantum Safe", Tags.QUANTUM_SAFE),
("Random Number Generator", Tags.RANDOM_NUMBER_GENERATOR),
("Revocation Reason", Tags.REVOCATION_REASON),
("Sensitive", Tags.SENSITIVE),
("Short Unique Identifier", Tags.SHORT_UNIQUE_IDENTIFIER),
("State", Tags.STATE),
("Unique Identifier", Tags.UNIQUE_IDENTIFIER),
("Usage Limits", Tags.USAGE_LIMITS),
("X.509 Certificate Identifier", Tags.X_509_CERTIFICATE_IDENTIFIER),
("X.509 Certificate Issuer", Tags.X_509_CERTIFICATE_ISSUER),
("X.509 Certificate Subject", Tags.X_509_CERTIFICATE_SUBJECT)
]
def convert_attribute_name_to_tag(value):
"""
A utility function that converts an attribute name string into the
corresponding attribute tag.
For example: 'State' -> enums.Tags.STATE
Args:
value (string): The string name of the attribute.
Returns:
enum: The Tags enumeration value that corresponds to the attribute
name string.
Raises:
ValueError: if the attribute name string is not a string or if it is
an unrecognized attribute name
"""
if not isinstance(value, six.string_types):
raise ValueError("The attribute name must be a string.")
for entry in attribute_name_tag_table:
if value == entry[0]:
return entry[1]
raise ValueError("Unrecognized attribute name: '{}'".format(value))
def convert_attribute_tag_to_name(value):
"""
A utility function that converts an attribute tag into the corresponding
attribute name string.
For example: enums.Tags.STATE -> 'State'
Args:
value (enum): The Tags enumeration value of the attribute.
Returns:
string: The attribute name string that corresponds to the attribute
tag.
Raises:
ValueError: if the attribute tag is not a Tags enumeration or if it
is unrecognized attribute tag
"""
if not isinstance(value, Tags):
raise ValueError("The attribute tag must be a Tags enumeration.")
for entry in attribute_name_tag_table:
if value == entry[1]:
return entry[0]
raise ValueError("Unrecognized attribute tag: {}".format(value))
def get_bit_mask_from_enumerations(enumerations):
"""
A utility function that computes a bit mask from a collection of
enumeration values.
Args:
enumerations (list): A list of enumeration values to be combined in a
composite bit mask.
Returns:
int: The composite bit mask.
"""
return functools.reduce(
lambda x, y: x | y, [z.value for z in enumerations]
)
def get_enumerations_from_bit_mask(enumeration, mask):
"""
A utility function that creates a list of enumeration values from a bit
mask for a specific mask enumeration class.
Args:
enumeration (class): The enumeration class from which to draw
enumeration values.
mask (int): The bit mask from which to identify enumeration values.
Returns:
list: A list of enumeration values corresponding to the bit mask.
"""
return [x for x in enumeration if (x.value & mask) == x.value]
def is_bit_mask(enumeration, potential_mask):
"""
A utility function that checks if the provided value is a composite bit
mask of enumeration values in the specified enumeration class.
Args:
enumeration (class): One of the mask enumeration classes found in this
file. These include:
* Cryptographic Usage Mask
* Protection Storage Mask
* Storage Status Mask
potential_mask (int): A potential bit mask composed of enumeration
values belonging to the enumeration class.
Returns:
True: if the potential mask is a valid bit mask of the mask enumeration
False: otherwise
"""
if not isinstance(potential_mask, six.integer_types):
return False
mask_enumerations = (
CryptographicUsageMask,
ProtectionStorageMask,
StorageStatusMask
)
if enumeration not in mask_enumerations:
return False
mask = 0
for value in [e.value for e in enumeration]:
if (value & potential_mask) == value:
mask |= value
if mask != potential_mask:
return False
return True
def is_enum_value(enumeration, potential_value):
"""
A utility function that checks if the enumeration class contains the
provided value.
Args:
enumeration (class): One of the enumeration classes found in this file.
potential_value (int, string): A potential value of the enumeration
class.
Returns:
True: if the potential value is a valid value of the enumeration class
False: otherwise
"""
try:
enumeration(potential_value)
except ValueError:
return False
return True
def is_attribute(tag, kmip_version=None):
"""
A utility function that checks if the tag is a valid attribute tag.
Args:
tag (enum): A Tags enumeration that may or may not correspond to a
KMIP attribute type.
kmip_version (enum): The KMIPVersion enumeration that should be used
when checking if the tag is a valid attribute tag. Optional,
defaults to None. If None, the tag is compared with all possible
attribute tags across all KMIP versions. Otherwise, only the
attribute tags for a specific KMIP version are checked.
Returns:
True: if the tag is a valid attribute tag
False: otherwise
"""
kmip_1_0_attribute_tags = [
Tags.UNIQUE_IDENTIFIER,
Tags.NAME,
Tags.OBJECT_TYPE,
Tags.CRYPTOGRAPHIC_ALGORITHM,
Tags.CRYPTOGRAPHIC_LENGTH,
Tags.CRYPTOGRAPHIC_PARAMETERS,
Tags.CRYPTOGRAPHIC_DOMAIN_PARAMETERS,
Tags.CERTIFICATE_TYPE,
Tags.CERTIFICATE_IDENTIFIER,
Tags.CERTIFICATE_SUBJECT,
Tags.CERTIFICATE_ISSUER,
Tags.DIGEST,
Tags.OPERATION_POLICY_NAME,
Tags.CRYPTOGRAPHIC_USAGE_MASK,
Tags.LEASE_TIME,
Tags.USAGE_LIMITS,
Tags.STATE,
Tags.INITIAL_DATE,
Tags.ACTIVATION_DATE,
Tags.PROCESS_START_DATE,
Tags.PROTECT_STOP_DATE,
Tags.DEACTIVATION_DATE,
Tags.DESTROY_DATE,
Tags.COMPROMISE_OCCURRENCE_DATE,
Tags.COMPROMISE_DATE,
Tags.REVOCATION_REASON,
Tags.ARCHIVE_DATE,
Tags.OBJECT_GROUP,
Tags.LINK,
Tags.APPLICATION_SPECIFIC_INFORMATION,
Tags.CONTACT_INFORMATION,
Tags.LAST_CHANGE_DATE,
Tags.CUSTOM_ATTRIBUTE
]
kmip_1_1_attribute_tags = copy.deepcopy(kmip_1_0_attribute_tags) + [
Tags.CERTIFICATE_LENGTH,
Tags.X_509_CERTIFICATE_IDENTIFIER,
Tags.X_509_CERTIFICATE_SUBJECT,
Tags.X_509_CERTIFICATE_ISSUER,
Tags.DIGITAL_SIGNATURE_ALGORITHM,
Tags.FRESH
]
kmip_1_2_attribute_tags = copy.deepcopy(kmip_1_1_attribute_tags) + [
Tags.ALTERNATIVE_NAME,
Tags.KEY_VALUE_PRESENT,
Tags.KEY_VALUE_LOCATION,
Tags.ORIGINAL_CREATION_DATE
]
kmip_1_3_attribute_tags = copy.deepcopy(kmip_1_2_attribute_tags) + [
Tags.RANDOM_NUMBER_GENERATOR
]
kmip_1_4_attribute_tags = copy.deepcopy(kmip_1_3_attribute_tags) + [
Tags.PKCS12_FRIENDLY_NAME,
Tags.DESCRIPTION,
Tags.COMMENT,
Tags.SENSITIVE,
Tags.ALWAYS_SENSITIVE,
Tags.EXTRACTABLE,
Tags.NEVER_EXTRACTABLE
]
kmip_2_0_attribute_tags = copy.deepcopy(kmip_1_4_attribute_tags) + [
Tags.CERTIFICATE_SUBJECT_CN,
Tags.CERTIFICATE_SUBJECT_O,
Tags.CERTIFICATE_SUBJECT_OU,
Tags.CERTIFICATE_SUBJECT_EMAIL,
Tags.CERTIFICATE_SUBJECT_C,
Tags.CERTIFICATE_SUBJECT_ST,
Tags.CERTIFICATE_SUBJECT_L,
Tags.CERTIFICATE_SUBJECT_UID,
Tags.CERTIFICATE_SUBJECT_SERIAL_NUMBER,
Tags.CERTIFICATE_SUBJECT_TITLE,
Tags.CERTIFICATE_SUBJECT_DC,
Tags.CERTIFICATE_SUBJECT_DN_QUALIFIER,
Tags.CERTIFICATE_ISSUER_CN,
Tags.CERTIFICATE_ISSUER_O,
Tags.CERTIFICATE_ISSUER_OU,
Tags.CERTIFICATE_ISSUER_EMAIL,
Tags.CERTIFICATE_ISSUER_C,
Tags.CERTIFICATE_ISSUER_ST,
Tags.CERTIFICATE_ISSUER_L,
Tags.CERTIFICATE_ISSUER_UID,
Tags.CERTIFICATE_ISSUER_SERIAL_NUMBER,
Tags.CERTIFICATE_ISSUER_TITLE,
Tags.CERTIFICATE_ISSUER_DC,
Tags.CERTIFICATE_ISSUER_DN_QUALIFIER,
Tags.KEY_FORMAT_TYPE,
Tags.NIST_KEY_TYPE,
Tags.OPAQUE_DATA_TYPE,
Tags.PROTECTION_LEVEL,
Tags.PROTECTION_PERIOD,
Tags.PROTECTION_STORAGE_MASK,
Tags.QUANTUM_SAFE,
Tags.SHORT_UNIQUE_IDENTIFIER,
Tags.ATTRIBUTE
]
kmip_2_0_attribute_tags.remove(Tags.CERTIFICATE_IDENTIFIER)
kmip_2_0_attribute_tags.remove(Tags.CERTIFICATE_SUBJECT)
kmip_2_0_attribute_tags.remove(Tags.CERTIFICATE_ISSUER)
kmip_2_0_attribute_tags.remove(Tags.OPERATION_POLICY_NAME)
kmip_2_0_attribute_tags.remove(Tags.CUSTOM_ATTRIBUTE)
if kmip_version == KMIPVersion.KMIP_1_0:
return tag in kmip_1_0_attribute_tags
elif kmip_version == KMIPVersion.KMIP_1_1:
return tag in kmip_1_1_attribute_tags
elif kmip_version == KMIPVersion.KMIP_1_2:
return tag in kmip_1_2_attribute_tags
elif kmip_version == KMIPVersion.KMIP_1_3:
return tag in kmip_1_3_attribute_tags
elif kmip_version == KMIPVersion.KMIP_1_4:
return tag in kmip_1_4_attribute_tags
elif kmip_version == KMIPVersion.KMIP_2_0:
return tag in kmip_2_0_attribute_tags
else:
all_attribute_tags = set(
kmip_1_0_attribute_tags +
kmip_1_1_attribute_tags +
kmip_1_2_attribute_tags +
kmip_1_3_attribute_tags +
kmip_1_4_attribute_tags +
kmip_2_0_attribute_tags
)
return tag in all_attribute_tags