From 5f72cd205a96f50b43650ca1e17c9e0143001b96 Mon Sep 17 00:00:00 2001 From: Jonathan Witt Date: Wed, 8 Jan 2025 12:29:07 +0100 Subject: [PATCH] fix unrecognised attribute error when doing get_attributes on an object with these attributes --- kmip/core/factories/attribute_values.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/kmip/core/factories/attribute_values.py b/kmip/core/factories/attribute_values.py index 1bc1e208..777ddd28 100644 --- a/kmip/core/factories/attribute_values.py +++ b/kmip/core/factories/attribute_values.py @@ -17,7 +17,7 @@ from kmip.core import enums from kmip.core import primitives from kmip.core import utils - +from kmip.core import misc class AttributeValueFactory(object): @@ -208,6 +208,16 @@ def create_attribute_value_by_enum(self, enum, value): return primitives.Boolean(value, enums.Tags.SENSITIVE) elif enum is enums.Tags.CUSTOM_ATTRIBUTE: return attributes.CustomAttribute(value) + elif enum is enums.Tags.EXTRACTABLE: + return primitives.Boolean(value, enums.Tags.EXTRACTABLE) + elif enum is enums.Tags.KEY_FORMAT_TYPE: + return self._create_key_format_type(value) + elif enum is enums.Tags.ORIGINAL_CREATION_DATE: + return primitives.DateTime(value, enums.Tags.ORIGINAL_CREATION_DATE) + elif enum is enums.Tags.NEVER_EXTRACTABLE: + return primitives.Boolean(value, enums.Tags.NEVER_EXTRACTABLE) + elif enum is enums.Tags.ALWAYS_SENSITIVE: + return primitives.Boolean(value, enums.Tags.ALWAYS_SENSITIVE) else: raise ValueError("Unrecognized attribute type: {}".format(enum)) @@ -300,3 +310,9 @@ def _create_contact_information(self, info): raise TypeError(msg) return attributes.ContactInformation(info) + + def _create_key_format_type(self, value): + if value is None: + return misc.KeyFormatType() + else: + return misc.KeyFormatType(value)