mirror of https://github.com/OpenKMIP/PyKMIP.git
Update the CreateKeyPair payloads
This change updates the CreateKeyPair payloads to the current payload format, adding properties for different payload attributes and adding comparison and string operators. Changes are also made to the PyKMIP clients and the surrounding testing infrastructure to reflect the payload changes. The official unit test suite for the CreateKeyPair payloads has been updated to also reflect these changes. This change prepares the CreateKeyPair payloads for future updates to support KMIP 2.0.
This commit is contained in:
parent
fe3095c22b
commit
71d508019a
|
@ -13,243 +13,590 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from kmip.core import attributes
|
||||
from kmip.core import objects
|
||||
import six
|
||||
|
||||
from kmip.core import enums
|
||||
|
||||
from kmip.core.primitives import Struct
|
||||
|
||||
from kmip.core.utils import BytearrayStream
|
||||
from kmip.core import exceptions
|
||||
from kmip.core import objects
|
||||
from kmip.core import primitives
|
||||
from kmip.core import utils
|
||||
|
||||
|
||||
class CreateKeyPairRequestPayload(Struct):
|
||||
class CreateKeyPairRequestPayload(primitives.Struct):
|
||||
"""
|
||||
A request payload for the CreateKeyPair operation.
|
||||
|
||||
Attributes:
|
||||
common_template_attribute: A group of attributes to set on the new
|
||||
public and private keys.
|
||||
private_key_template_attribute: A group of attributes to set on the new
|
||||
private key.
|
||||
public_key_template_attribute: A group of attributes to set on the new
|
||||
public key.
|
||||
"""
|
||||
|
||||
def __init__(self,
|
||||
common_template_attribute=None,
|
||||
private_key_template_attribute=None,
|
||||
public_key_template_attribute=None):
|
||||
"""
|
||||
Construct a CreateKeyPair request payload structure.
|
||||
|
||||
Args:
|
||||
common_template_attribute (TemplateAttribute): A TemplateAttribute
|
||||
structure with the CommonTemplateAttribute tag containing a set
|
||||
of attributes to set on the new public and private keys.
|
||||
Optional, defaults to None.
|
||||
private_key_template_attribute (TemplateAttribute): A
|
||||
TemplateAttribute structure with the
|
||||
PrivateKeyTemplateAttribute tag containing a set of attributes
|
||||
to set on the new private key. Optional, defaults to None.
|
||||
public_key_template_attribute (TemplateAttribute): A
|
||||
TemplateAttribute structure with the PublicKeyTemplateAttribute
|
||||
tag containing a set of attributes to set on the new public
|
||||
key. Optional, defaults to None.
|
||||
"""
|
||||
super(CreateKeyPairRequestPayload, self).__init__(
|
||||
enums.Tags.REQUEST_PAYLOAD
|
||||
)
|
||||
|
||||
self._common_template_attribute = None
|
||||
self._private_key_template_attribute = None
|
||||
self._public_key_template_attribute = None
|
||||
|
||||
self.common_template_attribute = common_template_attribute
|
||||
self.private_key_template_attribute = private_key_template_attribute
|
||||
self.public_key_template_attribute = public_key_template_attribute
|
||||
|
||||
self.validate()
|
||||
@property
|
||||
def common_template_attribute(self):
|
||||
return self._common_template_attribute
|
||||
|
||||
def read(self, istream, kmip_version=enums.KMIPVersion.KMIP_1_0):
|
||||
@common_template_attribute.setter
|
||||
def common_template_attribute(self, value):
|
||||
if value is None:
|
||||
self._common_template_attribute = None
|
||||
elif isinstance(value, objects.TemplateAttribute):
|
||||
if value.tag == enums.Tags.COMMON_TEMPLATE_ATTRIBUTE:
|
||||
self._common_template_attribute = value
|
||||
else:
|
||||
raise TypeError(
|
||||
"Common template attribute must be a TemplateAttribute "
|
||||
"structure with a CommonTemplateAttribute tag."
|
||||
)
|
||||
else:
|
||||
raise TypeError(
|
||||
"Common template attribute must be a TemplateAttribute "
|
||||
"structure."
|
||||
)
|
||||
|
||||
@property
|
||||
def private_key_template_attribute(self):
|
||||
return self._private_key_template_attribute
|
||||
|
||||
@private_key_template_attribute.setter
|
||||
def private_key_template_attribute(self, value):
|
||||
if value is None:
|
||||
self._private_key_template_attribute = None
|
||||
elif isinstance(value, objects.TemplateAttribute):
|
||||
if value.tag == enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE:
|
||||
self._private_key_template_attribute = value
|
||||
else:
|
||||
raise TypeError(
|
||||
"Private key template attribute must be a "
|
||||
"TemplateAttribute structure with a "
|
||||
"PrivateKeyTemplateAttribute tag."
|
||||
)
|
||||
else:
|
||||
raise TypeError(
|
||||
"Private key template attribute must be a TemplateAttribute "
|
||||
"structure."
|
||||
)
|
||||
|
||||
@property
|
||||
def public_key_template_attribute(self):
|
||||
return self._public_key_template_attribute
|
||||
|
||||
@public_key_template_attribute.setter
|
||||
def public_key_template_attribute(self, value):
|
||||
if value is None:
|
||||
self._public_key_template_attribute = None
|
||||
elif isinstance(value, objects.TemplateAttribute):
|
||||
if value.tag == enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE:
|
||||
self._public_key_template_attribute = value
|
||||
else:
|
||||
raise TypeError(
|
||||
"Public key template attribute must be a "
|
||||
"TemplateAttribute structure with a "
|
||||
"PublicKeyTemplateAttribute tag."
|
||||
)
|
||||
else:
|
||||
raise TypeError(
|
||||
"Public key template attribute must be a TemplateAttribute "
|
||||
"structure."
|
||||
)
|
||||
|
||||
def read(self, input_buffer, kmip_version=enums.KMIPVersion.KMIP_1_0):
|
||||
"""
|
||||
Read the data encoding the CreateKeyPair request payload and decode it
|
||||
into its constituent parts.
|
||||
|
||||
Args:
|
||||
input_buffer (stream): A data buffer containing encoded object
|
||||
data, supporting a read method.
|
||||
kmip_version (KMIPVersion): An enumeration defining the KMIP
|
||||
version with which the object will be decoded. Optional,
|
||||
defaults to KMIP 1.0.
|
||||
"""
|
||||
super(CreateKeyPairRequestPayload, self).read(
|
||||
istream,
|
||||
input_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
tstream = BytearrayStream(istream.read(self.length))
|
||||
local_buffer = utils.BytearrayStream(input_buffer.read(self.length))
|
||||
|
||||
if self.is_tag_next(enums.Tags.COMMON_TEMPLATE_ATTRIBUTE, tstream):
|
||||
self.common_template_attribute = objects.CommonTemplateAttribute()
|
||||
self.common_template_attribute.read(
|
||||
tstream,
|
||||
if self.is_tag_next(
|
||||
enums.Tags.COMMON_TEMPLATE_ATTRIBUTE,
|
||||
local_buffer
|
||||
):
|
||||
self._common_template_attribute = objects.TemplateAttribute(
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
self._common_template_attribute.read(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
|
||||
if self.is_tag_next(enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE,
|
||||
tstream):
|
||||
self.private_key_template_attribute = \
|
||||
objects.PrivateKeyTemplateAttribute()
|
||||
self.private_key_template_attribute.read(
|
||||
tstream,
|
||||
if self.is_tag_next(
|
||||
enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE,
|
||||
local_buffer
|
||||
):
|
||||
self._private_key_template_attribute = objects.TemplateAttribute(
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
self._private_key_template_attribute.read(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
|
||||
if self.is_tag_next(enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE, tstream):
|
||||
self.public_key_template_attribute = \
|
||||
objects.PublicKeyTemplateAttribute()
|
||||
self.public_key_template_attribute.read(
|
||||
tstream,
|
||||
if self.is_tag_next(
|
||||
enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE,
|
||||
local_buffer
|
||||
):
|
||||
self._public_key_template_attribute = objects.TemplateAttribute(
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
self._public_key_template_attribute.read(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
|
||||
self.is_oversized(tstream)
|
||||
self.validate()
|
||||
self.is_oversized(local_buffer)
|
||||
|
||||
def write(self, ostream, kmip_version=enums.KMIPVersion.KMIP_1_0):
|
||||
tstream = BytearrayStream()
|
||||
def write(self, output_buffer, kmip_version=enums.KMIPVersion.KMIP_1_0):
|
||||
"""
|
||||
Write the data encoding the CreateKeyPair request payload to a buffer.
|
||||
|
||||
if self.common_template_attribute is not None:
|
||||
self.common_template_attribute.write(
|
||||
tstream,
|
||||
Args:
|
||||
output_buffer (stream): A data buffer in which to encode object
|
||||
data, supporting a write method.
|
||||
kmip_version (KMIPVersion): An enumeration defining the KMIP
|
||||
version with which the object will be encoded. Optional,
|
||||
defaults to KMIP 1.0.
|
||||
"""
|
||||
local_buffer = utils.BytearrayStream()
|
||||
|
||||
if self._common_template_attribute is not None:
|
||||
self._common_template_attribute.write(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
|
||||
if self.private_key_template_attribute is not None:
|
||||
self.private_key_template_attribute.write(
|
||||
tstream,
|
||||
if self._private_key_template_attribute is not None:
|
||||
self._private_key_template_attribute.write(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
|
||||
if self.public_key_template_attribute is not None:
|
||||
self.public_key_template_attribute.write(
|
||||
tstream,
|
||||
if self._public_key_template_attribute is not None:
|
||||
self._public_key_template_attribute.write(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
|
||||
self.length = tstream.length()
|
||||
self.length = local_buffer.length()
|
||||
super(CreateKeyPairRequestPayload, self).write(
|
||||
ostream,
|
||||
output_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
ostream.write(tstream.buffer)
|
||||
output_buffer.write(local_buffer.buffer)
|
||||
|
||||
def validate(self):
|
||||
self.__validate()
|
||||
def __eq__(self, other):
|
||||
if isinstance(other, CreateKeyPairRequestPayload):
|
||||
if self.common_template_attribute != \
|
||||
other.common_template_attribute:
|
||||
return False
|
||||
elif self.private_key_template_attribute != \
|
||||
other.private_key_template_attribute:
|
||||
return False
|
||||
elif self.public_key_template_attribute != \
|
||||
other.public_key_template_attribute:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
else:
|
||||
return NotImplemented
|
||||
|
||||
def __validate(self):
|
||||
if self.common_template_attribute is not None:
|
||||
if not isinstance(self.common_template_attribute,
|
||||
objects.CommonTemplateAttribute):
|
||||
msg = "invalid common template attribute"
|
||||
msg += "; expected {0}, received {1}".format(
|
||||
objects.CommonTemplateAttribute,
|
||||
self.common_template_attribute)
|
||||
raise TypeError(msg)
|
||||
def __ne__(self, other):
|
||||
if isinstance(other, CreateKeyPairRequestPayload):
|
||||
return not (self == other)
|
||||
else:
|
||||
return NotImplemented
|
||||
|
||||
if self.private_key_template_attribute is not None:
|
||||
if not isinstance(self.private_key_template_attribute,
|
||||
objects.PrivateKeyTemplateAttribute):
|
||||
msg = "invalid private key template attribute"
|
||||
msg += "; expected {0}, received {1}".format(
|
||||
objects.PrivateKeyTemplateAttribute,
|
||||
self.private_key_template_attribute)
|
||||
raise TypeError(msg)
|
||||
def __repr__(self):
|
||||
args = ", ".join([
|
||||
"common_template_attribute={}".format(
|
||||
self.common_template_attribute
|
||||
),
|
||||
"private_key_template_attribute={}".format(
|
||||
self.private_key_template_attribute
|
||||
),
|
||||
"public_key_template_attribute={}".format(
|
||||
self.public_key_template_attribute
|
||||
)
|
||||
])
|
||||
return "CreateKeyPairRequestPayload({})".format(args)
|
||||
|
||||
if self.public_key_template_attribute is not None:
|
||||
if not isinstance(self.public_key_template_attribute,
|
||||
objects.PublicKeyTemplateAttribute):
|
||||
msg = "invalid public key template attribute"
|
||||
msg += "; expected {0}, received {1}".format(
|
||||
objects.PublicKeyTemplateAttribute,
|
||||
self.public_key_template_attribute)
|
||||
raise TypeError(msg)
|
||||
def __str__(self):
|
||||
value = ", ".join(
|
||||
[
|
||||
'"common_template_attribute": {}'.format(
|
||||
self.common_template_attribute
|
||||
),
|
||||
'"private_key_template_attribute": {}'.format(
|
||||
self.private_key_template_attribute
|
||||
),
|
||||
'"public_key_template_attribute": {}'.format(
|
||||
self.public_key_template_attribute
|
||||
)
|
||||
]
|
||||
)
|
||||
return '{' + value + '}'
|
||||
|
||||
|
||||
class CreateKeyPairResponsePayload(Struct):
|
||||
class CreateKeyPairResponsePayload(primitives.Struct):
|
||||
"""
|
||||
A response payload for the CreateKeyPair operation.
|
||||
|
||||
Attributes:
|
||||
private_key_unique_identifier: The ID of the new private key.
|
||||
public_key_unique_identifier: The ID of the new public key.
|
||||
private_key_template_attribute: A group of attributes to set on the new
|
||||
private key.
|
||||
public_key_template_attribute: A group of attributes to set on the new
|
||||
public key.
|
||||
"""
|
||||
|
||||
def __init__(self,
|
||||
private_key_uuid=None,
|
||||
public_key_uuid=None,
|
||||
private_key_unique_identifier=None,
|
||||
public_key_unique_identifier=None,
|
||||
private_key_template_attribute=None,
|
||||
public_key_template_attribute=None):
|
||||
super(CreateKeyPairResponsePayload, self).__init__(
|
||||
enums.Tags.RESPONSE_PAYLOAD
|
||||
)
|
||||
|
||||
# Private and public UUIDs are required so make defaults as backup
|
||||
if private_key_uuid is None:
|
||||
self.private_key_uuid = attributes.PrivateKeyUniqueIdentifier('')
|
||||
else:
|
||||
self.private_key_uuid = private_key_uuid
|
||||
|
||||
if public_key_uuid is None:
|
||||
self.public_key_uuid = attributes.PublicKeyUniqueIdentifier('')
|
||||
else:
|
||||
self.public_key_uuid = public_key_uuid
|
||||
self._private_key_unique_identifier = None
|
||||
self._public_key_unique_identifier = None
|
||||
self._private_key_template_attribute = None
|
||||
self._public_key_template_attribute = None
|
||||
|
||||
self.private_key_unique_identifier = private_key_unique_identifier
|
||||
self.public_key_unique_identifier = public_key_unique_identifier
|
||||
self.private_key_template_attribute = private_key_template_attribute
|
||||
self.public_key_template_attribute = public_key_template_attribute
|
||||
|
||||
self.validate()
|
||||
@property
|
||||
def private_key_unique_identifier(self):
|
||||
if self._private_key_unique_identifier:
|
||||
return self._private_key_unique_identifier.value
|
||||
else:
|
||||
return None
|
||||
|
||||
def read(self, istream, kmip_version=enums.KMIPVersion.KMIP_1_0):
|
||||
@private_key_unique_identifier.setter
|
||||
def private_key_unique_identifier(self, value):
|
||||
if value is None:
|
||||
self._private_key_unique_identifier = None
|
||||
elif isinstance(value, six.string_types):
|
||||
self._private_key_unique_identifier = primitives.TextString(
|
||||
value=value,
|
||||
tag=enums.Tags.PRIVATE_KEY_UNIQUE_IDENTIFIER
|
||||
)
|
||||
else:
|
||||
raise TypeError("Private key unique identifier must be a string.")
|
||||
|
||||
@property
|
||||
def public_key_unique_identifier(self):
|
||||
if self._public_key_unique_identifier:
|
||||
return self._public_key_unique_identifier.value
|
||||
else:
|
||||
return None
|
||||
|
||||
@public_key_unique_identifier.setter
|
||||
def public_key_unique_identifier(self, value):
|
||||
if value is None:
|
||||
self._public_key_unique_identifier = None
|
||||
elif isinstance(value, six.string_types):
|
||||
self._public_key_unique_identifier = primitives.TextString(
|
||||
value=value,
|
||||
tag=enums.Tags.PUBLIC_KEY_UNIQUE_IDENTIFIER
|
||||
)
|
||||
else:
|
||||
raise TypeError("Public key unique identifier must be a string.")
|
||||
|
||||
@property
|
||||
def private_key_template_attribute(self):
|
||||
return self._private_key_template_attribute
|
||||
|
||||
@private_key_template_attribute.setter
|
||||
def private_key_template_attribute(self, value):
|
||||
if value is None:
|
||||
self._private_key_template_attribute = None
|
||||
elif isinstance(value, objects.TemplateAttribute):
|
||||
if value.tag == enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE:
|
||||
self._private_key_template_attribute = value
|
||||
else:
|
||||
raise TypeError(
|
||||
"Private key template attribute must be a "
|
||||
"TemplateAttribute structure with a "
|
||||
"PrivateKeyTemplateAttribute tag."
|
||||
)
|
||||
else:
|
||||
raise TypeError(
|
||||
"Private key template attribute must be a TemplateAttribute "
|
||||
"structure."
|
||||
)
|
||||
|
||||
@property
|
||||
def public_key_template_attribute(self):
|
||||
return self._public_key_template_attribute
|
||||
|
||||
@public_key_template_attribute.setter
|
||||
def public_key_template_attribute(self, value):
|
||||
if value is None:
|
||||
self._public_key_template_attribute = None
|
||||
elif isinstance(value, objects.TemplateAttribute):
|
||||
if value.tag == enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE:
|
||||
self._public_key_template_attribute = value
|
||||
else:
|
||||
raise TypeError(
|
||||
"Public key template attribute must be a "
|
||||
"TemplateAttribute structure with a "
|
||||
"PublicKeyTemplateAttribute tag."
|
||||
)
|
||||
else:
|
||||
raise TypeError(
|
||||
"Public key template attribute must be a TemplateAttribute "
|
||||
"structure."
|
||||
)
|
||||
|
||||
def read(self, input_buffer, kmip_version=enums.KMIPVersion.KMIP_1_0):
|
||||
"""
|
||||
Read the data encoding the CreateKeyPair response payload and decode it
|
||||
into its constituent parts.
|
||||
|
||||
Args:
|
||||
input_buffer (stream): A data buffer containing encoded object
|
||||
data, supporting a read method.
|
||||
kmip_version (KMIPVersion): An enumeration defining the KMIP
|
||||
version with which the object will be decoded. Optional,
|
||||
defaults to KMIP 1.0.
|
||||
|
||||
Raises:
|
||||
InvalidKmipEncoding: Raised if the private key unique identifier or
|
||||
the public key unique identifier is missing from the encoded
|
||||
payload.
|
||||
"""
|
||||
super(CreateKeyPairResponsePayload, self).read(
|
||||
istream,
|
||||
input_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
tstream = BytearrayStream(istream.read(self.length))
|
||||
local_buffer = utils.BytearrayStream(input_buffer.read(self.length))
|
||||
|
||||
self.private_key_uuid.read(tstream, kmip_version=kmip_version)
|
||||
self.public_key_uuid.read(tstream, kmip_version=kmip_version)
|
||||
if self.is_tag_next(
|
||||
enums.Tags.PRIVATE_KEY_UNIQUE_IDENTIFIER,
|
||||
local_buffer
|
||||
):
|
||||
self._private_key_unique_identifier = primitives.TextString(
|
||||
tag=enums.Tags.PRIVATE_KEY_UNIQUE_IDENTIFIER
|
||||
)
|
||||
self._private_key_unique_identifier.read(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
else:
|
||||
raise exceptions.InvalidKmipEncoding(
|
||||
"The CreateKeyPair response payload encoding is missing the "
|
||||
"private key unique identifier."
|
||||
)
|
||||
|
||||
if self.is_tag_next(enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE,
|
||||
tstream):
|
||||
self.private_key_template_attribute = \
|
||||
objects.PrivateKeyTemplateAttribute()
|
||||
self.private_key_template_attribute.read(
|
||||
tstream,
|
||||
if self.is_tag_next(
|
||||
enums.Tags.PUBLIC_KEY_UNIQUE_IDENTIFIER,
|
||||
local_buffer
|
||||
):
|
||||
self._public_key_unique_identifier = primitives.TextString(
|
||||
tag=enums.Tags.PUBLIC_KEY_UNIQUE_IDENTIFIER
|
||||
)
|
||||
self._public_key_unique_identifier.read(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
else:
|
||||
raise exceptions.InvalidKmipEncoding(
|
||||
"The CreateKeyPair response payload encoding is missing the "
|
||||
"public key unique identifier."
|
||||
)
|
||||
|
||||
if self.is_tag_next(
|
||||
enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE,
|
||||
local_buffer
|
||||
):
|
||||
self._private_key_template_attribute = objects.TemplateAttribute(
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
self._private_key_template_attribute.read(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
|
||||
if self.is_tag_next(enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE,
|
||||
tstream):
|
||||
self.public_key_template_attribute = \
|
||||
objects.PublicKeyTemplateAttribute()
|
||||
self.public_key_template_attribute.read(
|
||||
tstream,
|
||||
if self.is_tag_next(
|
||||
enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE,
|
||||
local_buffer
|
||||
):
|
||||
self._public_key_template_attribute = objects.TemplateAttribute(
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
self._public_key_template_attribute.read(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
|
||||
self.is_oversized(tstream)
|
||||
self.validate()
|
||||
self.is_oversized(local_buffer)
|
||||
|
||||
def write(self, ostream, kmip_version=enums.KMIPVersion.KMIP_1_0):
|
||||
tstream = BytearrayStream()
|
||||
def write(self, output_buffer, kmip_version=enums.KMIPVersion.KMIP_1_0):
|
||||
"""
|
||||
Write the data encoding the CreateKeyPair response payload to a buffer.
|
||||
|
||||
self.private_key_uuid.write(tstream, kmip_version=kmip_version)
|
||||
self.public_key_uuid.write(tstream, kmip_version=kmip_version)
|
||||
Args:
|
||||
output_buffer (stream): A data buffer in which to encode object
|
||||
data, supporting a write method.
|
||||
kmip_version (KMIPVersion): An enumeration defining the KMIP
|
||||
version with which the object will be encoded. Optional,
|
||||
defaults to KMIP 1.0.
|
||||
|
||||
if self.private_key_template_attribute is not None:
|
||||
self.private_key_template_attribute.write(
|
||||
tstream,
|
||||
Raises:
|
||||
InvalidField: Raised if the private key unique identifier or the
|
||||
public key unique identifier is not defined.
|
||||
"""
|
||||
local_buffer = utils.BytearrayStream()
|
||||
|
||||
if self._private_key_unique_identifier:
|
||||
self._private_key_unique_identifier.write(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
else:
|
||||
raise exceptions.InvalidField(
|
||||
"The CreateKeyPair response payload is missing the private "
|
||||
"key unique identifier field."
|
||||
)
|
||||
|
||||
if self._public_key_unique_identifier:
|
||||
self._public_key_unique_identifier.write(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
else:
|
||||
raise exceptions.InvalidField(
|
||||
"The CreateKeyPair response payload is missing the public "
|
||||
"key unique identifier field."
|
||||
)
|
||||
|
||||
if self._private_key_template_attribute:
|
||||
self._private_key_template_attribute.write(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
|
||||
if self.public_key_template_attribute is not None:
|
||||
self.public_key_template_attribute.write(
|
||||
tstream,
|
||||
if self._public_key_template_attribute:
|
||||
self._public_key_template_attribute.write(
|
||||
local_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
|
||||
self.length = tstream.length()
|
||||
self.length = local_buffer.length()
|
||||
super(CreateKeyPairResponsePayload, self).write(
|
||||
ostream,
|
||||
output_buffer,
|
||||
kmip_version=kmip_version
|
||||
)
|
||||
ostream.write(tstream.buffer)
|
||||
output_buffer.write(local_buffer.buffer)
|
||||
|
||||
def validate(self):
|
||||
self.__validate()
|
||||
def __eq__(self, other):
|
||||
if isinstance(other, CreateKeyPairResponsePayload):
|
||||
if self.private_key_unique_identifier != \
|
||||
other.private_key_unique_identifier:
|
||||
return False
|
||||
elif self.public_key_unique_identifier != \
|
||||
other.public_key_unique_identifier:
|
||||
return False
|
||||
elif self.private_key_template_attribute != \
|
||||
other.private_key_template_attribute:
|
||||
return False
|
||||
elif self.public_key_template_attribute != \
|
||||
other.public_key_template_attribute:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
else:
|
||||
return NotImplemented
|
||||
|
||||
def __validate(self):
|
||||
if not isinstance(self.private_key_uuid,
|
||||
attributes.PrivateKeyUniqueIdentifier):
|
||||
msg = "invalid private key unique identifier"
|
||||
msg += "; expected {0}, received {1}".format(
|
||||
attributes.PrivateKeyUniqueIdentifier,
|
||||
self.private_key_uuid)
|
||||
raise TypeError(msg)
|
||||
def __ne__(self, other):
|
||||
if isinstance(other, CreateKeyPairResponsePayload):
|
||||
return not (self == other)
|
||||
else:
|
||||
return NotImplemented
|
||||
|
||||
if not isinstance(self.public_key_uuid,
|
||||
attributes.PublicKeyUniqueIdentifier):
|
||||
msg = "invalid public key unique identifier"
|
||||
msg += "; expected {0}, received {1}".format(
|
||||
attributes.PublicKeyUniqueIdentifier,
|
||||
self.public_key_uuid)
|
||||
raise TypeError(msg)
|
||||
def __repr__(self):
|
||||
args = ", ".join([
|
||||
"private_key_unique_identifier='{}'".format(
|
||||
self.private_key_unique_identifier
|
||||
),
|
||||
"public_key_unique_identifier='{}'".format(
|
||||
self.public_key_unique_identifier
|
||||
),
|
||||
"private_key_template_attribute={}".format(
|
||||
self.private_key_template_attribute
|
||||
),
|
||||
"public_key_template_attribute={}".format(
|
||||
self.public_key_template_attribute
|
||||
)
|
||||
])
|
||||
return "CreateKeyPairResponsePayload({})".format(args)
|
||||
|
||||
if self.private_key_template_attribute is not None:
|
||||
if not isinstance(self.private_key_template_attribute,
|
||||
objects.PrivateKeyTemplateAttribute):
|
||||
msg = "invalid private key template attribute"
|
||||
msg += "; expected {0}, received {1}".format(
|
||||
objects.PrivateKeyTemplateAttribute,
|
||||
self.private_key_template_attribute)
|
||||
raise TypeError(msg)
|
||||
|
||||
if self.public_key_template_attribute is not None:
|
||||
if not isinstance(self.public_key_template_attribute,
|
||||
objects.PublicKeyTemplateAttribute):
|
||||
msg = "invalid public key template attribute"
|
||||
msg += "; expected {0}, received {1}".format(
|
||||
objects.PublicKeyTemplateAttribute,
|
||||
self.public_key_template_attribute)
|
||||
raise TypeError(msg)
|
||||
def __str__(self):
|
||||
value = ", ".join(
|
||||
[
|
||||
'"private_key_unique_identifier": "{}"'.format(
|
||||
self.private_key_unique_identifier
|
||||
),
|
||||
'"public_key_unique_identifier": "{}"'.format(
|
||||
self.public_key_unique_identifier
|
||||
),
|
||||
'"private_key_template_attribute": {}'.format(
|
||||
self.private_key_template_attribute
|
||||
),
|
||||
'"public_key_template_attribute": {}'.format(
|
||||
self.public_key_template_attribute
|
||||
)
|
||||
]
|
||||
)
|
||||
return '{' + value + '}'
|
||||
|
|
|
@ -168,6 +168,7 @@ class RekeyKeyPairRequestPayload(Struct):
|
|||
raise TypeError(msg)
|
||||
|
||||
|
||||
# TODO (ph) Remove the dependency on the CreateKeyPairResponsePayload
|
||||
class RekeyKeyPairResponsePayload(CreateKeyPairResponsePayload):
|
||||
|
||||
def __init__(self,
|
||||
|
|
|
@ -51,7 +51,9 @@ if __name__ == '__main__':
|
|||
public_uid, private_uid = client.create_key_pair(
|
||||
algorithm,
|
||||
length,
|
||||
operation_policy_name=opts.operation_policy_name
|
||||
operation_policy_name=opts.operation_policy_name,
|
||||
public_usage_mask=[enums.CryptographicUsageMask.VERIFY],
|
||||
private_usage_mask=[enums.CryptographicUsageMask.SIGN]
|
||||
)
|
||||
logger.info("Successfully created public key with ID: {0}".format(
|
||||
public_uid))
|
||||
|
|
|
@ -30,9 +30,7 @@ from kmip.core.factories.credentials import CredentialFactory
|
|||
from kmip.core.attributes import Name
|
||||
from kmip.core.attributes import CryptographicUsageMask
|
||||
|
||||
from kmip.core.objects import CommonTemplateAttribute
|
||||
from kmip.core.objects import PrivateKeyTemplateAttribute
|
||||
from kmip.core.objects import PublicKeyTemplateAttribute
|
||||
from kmip.core.objects import TemplateAttribute
|
||||
from kmip.core.objects import Attribute
|
||||
|
||||
from kmip.services.kmip_client import KMIPProxy
|
||||
|
@ -117,14 +115,25 @@ if __name__ == '__main__':
|
|||
)
|
||||
attributes.append(opn)
|
||||
|
||||
common = CommonTemplateAttribute(attributes=attributes)
|
||||
private = PrivateKeyTemplateAttribute(attributes=attributes)
|
||||
public = PublicKeyTemplateAttribute(attributes=attributes)
|
||||
common = TemplateAttribute(
|
||||
attributes=attributes,
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
private = TemplateAttribute(
|
||||
attributes=attributes,
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
public = TemplateAttribute(
|
||||
attributes=attributes,
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
|
||||
# Create the SYMMETRIC_KEY object
|
||||
result = client.create_key_pair(common_template_attribute=common,
|
||||
private_key_template_attribute=private,
|
||||
public_key_template_attribute=public)
|
||||
result = client.create_key_pair(
|
||||
common_template_attribute=common,
|
||||
private_key_template_attribute=private,
|
||||
public_key_template_attribute=public
|
||||
)
|
||||
client.close()
|
||||
|
||||
# Display operation results
|
||||
|
|
|
@ -313,8 +313,9 @@ class ProxyKmipClient(object):
|
|||
)
|
||||
|
||||
common_attributes.extend([algorithm_attribute, length_attribute])
|
||||
template = cobjects.CommonTemplateAttribute(
|
||||
attributes=common_attributes
|
||||
template = cobjects.TemplateAttribute(
|
||||
attributes=common_attributes,
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
|
||||
# Create public / private specific attributes
|
||||
|
@ -331,9 +332,10 @@ class ProxyKmipClient(object):
|
|||
)
|
||||
]
|
||||
if names or attrs:
|
||||
public_template = cobjects.PublicKeyTemplateAttribute(
|
||||
public_template = cobjects.TemplateAttribute(
|
||||
names=names,
|
||||
attributes=attrs
|
||||
attributes=attrs,
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
|
||||
private_template = None
|
||||
|
@ -349,9 +351,10 @@ class ProxyKmipClient(object):
|
|||
)
|
||||
]
|
||||
if names or attrs:
|
||||
private_template = cobjects.PrivateKeyTemplateAttribute(
|
||||
private_template = cobjects.TemplateAttribute(
|
||||
names=names,
|
||||
attributes=attrs
|
||||
attributes=attrs,
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
|
||||
# Create the asymmetric key pair and handle the results
|
||||
|
@ -362,8 +365,8 @@ class ProxyKmipClient(object):
|
|||
|
||||
status = result.result_status.value
|
||||
if status == enums.ResultStatus.SUCCESS:
|
||||
public_uid = result.public_key_uuid.value
|
||||
private_uid = result.private_key_uuid.value
|
||||
public_uid = result.public_key_uuid
|
||||
private_uid = result.private_key_uuid
|
||||
return public_uid, private_uid
|
||||
else:
|
||||
reason = result.result_reason.value
|
||||
|
|
|
@ -1222,8 +1222,8 @@ class KMIPProxy(object):
|
|||
payload_public_key_template_attribute = None
|
||||
|
||||
if payload is not None:
|
||||
payload_private_key_uuid = payload.private_key_uuid
|
||||
payload_public_key_uuid = payload.public_key_uuid
|
||||
payload_private_key_uuid = payload.private_key_unique_identifier
|
||||
payload_public_key_uuid = payload.public_key_unique_identifier
|
||||
payload_private_key_template_attribute = \
|
||||
payload.private_key_template_attribute
|
||||
payload_public_key_template_attribute = \
|
||||
|
|
|
@ -1270,12 +1270,8 @@ class KmipEngine(object):
|
|||
)
|
||||
|
||||
response_payload = payloads.CreateKeyPairResponsePayload(
|
||||
private_key_uuid=attributes.PrivateKeyUniqueIdentifier(
|
||||
str(private_key.unique_identifier)
|
||||
),
|
||||
public_key_uuid=attributes.PublicKeyUniqueIdentifier(
|
||||
str(public_key.unique_identifier)
|
||||
)
|
||||
private_key_unique_identifier=str(private_key.unique_identifier),
|
||||
public_key_unique_identifier=str(public_key.unique_identifier)
|
||||
)
|
||||
|
||||
self._id_placeholder = str(private_key.unique_identifier)
|
||||
|
|
|
@ -20,6 +20,7 @@ from kmip.core.attributes import CryptographicAlgorithm
|
|||
from kmip.core.attributes import CryptographicLength
|
||||
from kmip.core.attributes import Name
|
||||
|
||||
from kmip.core import enums
|
||||
from kmip.core.enums import AttributeType
|
||||
from kmip.core.enums import CryptographicAlgorithm as CryptoAlgorithmEnum
|
||||
from kmip.core.enums import CryptographicUsageMask
|
||||
|
@ -44,9 +45,6 @@ from kmip.core.objects import KeyBlock
|
|||
from kmip.core.objects import KeyMaterial
|
||||
from kmip.core.objects import KeyValue
|
||||
from kmip.core.objects import TemplateAttribute
|
||||
from kmip.core.objects import PrivateKeyTemplateAttribute
|
||||
from kmip.core.objects import PublicKeyTemplateAttribute
|
||||
from kmip.core.objects import CommonTemplateAttribute
|
||||
|
||||
from kmip.core.misc import QueryFunction
|
||||
|
||||
|
@ -149,11 +147,18 @@ class TestIntegration(TestCase):
|
|||
private_key_attributes = [priv_name]
|
||||
public_key_attributes = [pub_name]
|
||||
|
||||
common = CommonTemplateAttribute(attributes=common_attributes)
|
||||
priv_templ_attr = PrivateKeyTemplateAttribute(
|
||||
attributes=private_key_attributes)
|
||||
pub_templ_attr = PublicKeyTemplateAttribute(
|
||||
attributes=public_key_attributes)
|
||||
common = TemplateAttribute(
|
||||
attributes=common_attributes,
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
priv_templ_attr = TemplateAttribute(
|
||||
attributes=private_key_attributes,
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
pub_templ_attr = TemplateAttribute(
|
||||
attributes=public_key_attributes,
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
|
||||
return self.client.\
|
||||
create_key_pair(common_template_attribute=common,
|
||||
|
@ -488,12 +493,12 @@ class TestIntegration(TestCase):
|
|||
self._check_result_status(result, ResultStatus, ResultStatus.SUCCESS)
|
||||
|
||||
# Check UUID value for Private key
|
||||
self._check_uuid(result.private_key_uuid.value, str)
|
||||
self._check_uuid(result.private_key_uuid, str)
|
||||
# Check UUID value for Public key
|
||||
self._check_uuid(result.public_key_uuid.value, str)
|
||||
self._check_uuid(result.public_key_uuid, str)
|
||||
|
||||
priv_key_uuid = result.private_key_uuid.value
|
||||
pub_key_uuid = result.public_key_uuid.value
|
||||
priv_key_uuid = result.private_key_uuid
|
||||
pub_key_uuid = result.public_key_uuid
|
||||
|
||||
priv_key_result = self.client.get(uuid=priv_key_uuid, credential=None)
|
||||
pub_key_result = self.client.get(uuid=pub_key_uuid, credential=None)
|
||||
|
@ -522,17 +527,17 @@ class TestIntegration(TestCase):
|
|||
self.assertIsInstance(pub_secret, pub_expected)
|
||||
|
||||
self.logger.debug('Destroying key: ' + key_name + ' Private' +
|
||||
'\n With UUID: ' + result.private_key_uuid.value)
|
||||
'\n With UUID: ' + result.private_key_uuid)
|
||||
destroy_priv_key_result = self.client.destroy(
|
||||
result.private_key_uuid.value)
|
||||
result.private_key_uuid)
|
||||
|
||||
self._check_result_status(destroy_priv_key_result, ResultStatus,
|
||||
ResultStatus.SUCCESS)
|
||||
|
||||
self.logger.debug('Destroying key: ' + key_name + ' Public' +
|
||||
'\n With UUID: ' + result.public_key_uuid.value)
|
||||
'\n With UUID: ' + result.public_key_uuid)
|
||||
destroy_pub_key_result = self.client.destroy(
|
||||
result.public_key_uuid.value)
|
||||
result.public_key_uuid)
|
||||
self._check_result_status(destroy_pub_key_result, ResultStatus,
|
||||
ResultStatus.SUCCESS)
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -187,24 +187,12 @@ class TestRekeyKeyPairRequestPayload(TestCase):
|
|||
self._test_write(stream, payload, self.encoding_full)
|
||||
|
||||
|
||||
# TODO (ph) Replicate CreateKeyPairResponsePayload test suite here
|
||||
class TestRekeyKeyPairResponsePayload(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestRekeyKeyPairResponsePayload, self).setUp()
|
||||
|
||||
self.uuid = '00000000-0000-0000-0000-000000000000'
|
||||
self.private_key_uuid = attributes.PrivateKeyUniqueIdentifier(
|
||||
self.uuid)
|
||||
self.public_key_uuid = attributes.PublicKeyUniqueIdentifier(
|
||||
self.uuid)
|
||||
self.empty_private_key_uuid = attributes.PrivateKeyUniqueIdentifier('')
|
||||
self.empty_public_key_uuid = attributes.PublicKeyUniqueIdentifier('')
|
||||
|
||||
self.private_key_template_attribute = \
|
||||
objects.PrivateKeyTemplateAttribute()
|
||||
self.public_key_template_attribute = \
|
||||
objects.PublicKeyTemplateAttribute()
|
||||
|
||||
self.encoding_empty = utils.BytearrayStream((
|
||||
b'\x42\x00\x7C\x01\x00\x00\x00\x10\x42\x00\x66\x07\x00\x00\x00\x00'
|
||||
b'\x42\x00\x6F\x07\x00\x00\x00\x00'))
|
||||
|
@ -220,127 +208,3 @@ class TestRekeyKeyPairResponsePayload(TestCase):
|
|||
|
||||
def tearDown(self):
|
||||
super(TestRekeyKeyPairResponsePayload, self).tearDown()
|
||||
|
||||
def test_init_with_none(self):
|
||||
payloads.RekeyKeyPairResponsePayload()
|
||||
|
||||
def test_init_with_args(self):
|
||||
payloads.RekeyKeyPairResponsePayload(
|
||||
self.private_key_uuid, self.public_key_uuid,
|
||||
self.private_key_template_attribute,
|
||||
self.public_key_template_attribute)
|
||||
|
||||
def test_validate_with_invalid_private_key_unique_identifier(self):
|
||||
kwargs = {'private_key_uuid': 'invalid',
|
||||
'public_key_uuid': None,
|
||||
'private_key_template_attribute': None,
|
||||
'public_key_template_attribute': None}
|
||||
self.assertRaisesRegex(
|
||||
TypeError, "invalid private key unique identifier",
|
||||
payloads.RekeyKeyPairResponsePayload, **kwargs)
|
||||
|
||||
def test_validate_with_invalid_public_key_unique_identifier(self):
|
||||
kwargs = {'private_key_uuid': None,
|
||||
'public_key_uuid': 'invalid',
|
||||
'private_key_template_attribute': None,
|
||||
'public_key_template_attribute': None}
|
||||
self.assertRaisesRegex(
|
||||
TypeError, "invalid public key unique identifier",
|
||||
payloads.RekeyKeyPairResponsePayload, **kwargs)
|
||||
|
||||
def test_validate_with_invalid_private_key_template_attribute(self):
|
||||
kwargs = {'private_key_uuid': None,
|
||||
'public_key_uuid': None,
|
||||
'private_key_template_attribute': 'invalid',
|
||||
'public_key_template_attribute': None}
|
||||
self.assertRaisesRegex(
|
||||
TypeError, "invalid private key template attribute",
|
||||
payloads.RekeyKeyPairResponsePayload, **kwargs)
|
||||
|
||||
def test_validate_with_invalid_public_key_template_attribute(self):
|
||||
kwargs = {'private_key_uuid': None,
|
||||
'public_key_uuid': None,
|
||||
'private_key_template_attribute': None,
|
||||
'public_key_template_attribute': 'invalid'}
|
||||
self.assertRaisesRegex(
|
||||
TypeError, "invalid public key template attribute",
|
||||
payloads.RekeyKeyPairResponsePayload, **kwargs)
|
||||
|
||||
def _test_read(self, stream, payload, private_key_uuid, public_key_uuid,
|
||||
private_key_template_attribute,
|
||||
public_key_template_attribute):
|
||||
payload.read(stream)
|
||||
|
||||
msg = "private_key_uuid decoding mismatch"
|
||||
msg += "; expected {0}, received {1}".format(
|
||||
private_key_uuid, payload.private_key_uuid)
|
||||
self.assertEqual(private_key_uuid, payload.private_key_uuid, msg)
|
||||
|
||||
msg = "public_key_uuid decoding mismatch"
|
||||
msg += "; expected {0}, received {1}".format(
|
||||
public_key_uuid, payload.public_key_uuid)
|
||||
self.assertEqual(public_key_uuid, payload.public_key_uuid, msg)
|
||||
|
||||
msg = "private_key_template_attribute decoding mismatch"
|
||||
msg += "; expected {0}, received {1}".format(
|
||||
private_key_template_attribute,
|
||||
payload.private_key_template_attribute)
|
||||
self.assertEqual(private_key_template_attribute,
|
||||
payload.private_key_template_attribute, msg)
|
||||
|
||||
msg = "public_key_template_attribute decoding mismatch"
|
||||
msg += "; expected {0}, received {1}".format(
|
||||
public_key_template_attribute,
|
||||
payload.public_key_template_attribute)
|
||||
self.assertEqual(public_key_template_attribute,
|
||||
payload.public_key_template_attribute, msg)
|
||||
|
||||
def test_read_with_none(self):
|
||||
stream = self.encoding_empty
|
||||
payload = payloads.RekeyKeyPairResponsePayload()
|
||||
|
||||
self._test_read(stream, payload, self.empty_private_key_uuid,
|
||||
self.empty_public_key_uuid, None, None)
|
||||
|
||||
def test_read_with_args(self):
|
||||
stream = self.encoding_full
|
||||
payload = payloads.RekeyKeyPairResponsePayload(
|
||||
self.private_key_uuid, self.public_key_uuid,
|
||||
self.private_key_template_attribute,
|
||||
self.public_key_template_attribute)
|
||||
|
||||
self._test_read(stream, payload, self.private_key_uuid,
|
||||
self.public_key_uuid,
|
||||
self.private_key_template_attribute,
|
||||
self.public_key_template_attribute)
|
||||
|
||||
def _test_write(self, stream, payload, expected):
|
||||
payload.write(stream)
|
||||
|
||||
length_expected = len(expected)
|
||||
length_received = len(stream)
|
||||
|
||||
msg = "encoding lengths not equal"
|
||||
msg += "; expected {0}, received {1}".format(
|
||||
length_expected, length_received)
|
||||
self.assertEqual(length_expected, length_received, msg)
|
||||
|
||||
msg = "encoding mismatch"
|
||||
msg += ";\nexpected:\n{0}\nreceived:\n{1}".format(expected, stream)
|
||||
|
||||
self.assertEqual(expected, stream, msg)
|
||||
|
||||
def test_write_with_none(self):
|
||||
stream = utils.BytearrayStream()
|
||||
payload = payloads.RekeyKeyPairResponsePayload()
|
||||
|
||||
self._test_write(stream, payload, self.encoding_empty)
|
||||
|
||||
def test_write_with_args(self):
|
||||
stream = utils.BytearrayStream()
|
||||
payload = payloads.RekeyKeyPairResponsePayload(
|
||||
self.private_key_uuid, self.public_key_uuid,
|
||||
self.private_key_template_attribute,
|
||||
self.public_key_template_attribute)
|
||||
|
||||
self._test_write(stream, payload, self.encoding_full)
|
||||
|
|
|
@ -483,15 +483,17 @@ class TestProxyKmipClient(testtools.TestCase):
|
|||
enums.AttributeType.CRYPTOGRAPHIC_LENGTH, length)
|
||||
|
||||
attributes = [algorithm_attribute, length_attribute]
|
||||
template = obj.CommonTemplateAttribute(attributes=attributes)
|
||||
template = obj.TemplateAttribute(
|
||||
attributes=attributes,
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
|
||||
status = enums.ResultStatus.SUCCESS
|
||||
result = results.CreateKeyPairResult(
|
||||
contents.ResultStatus(status),
|
||||
public_key_uuid=attr.PublicKeyUniqueIdentifier(
|
||||
'aaaaaaaa-1111-2222-3333-ffffffffffff'),
|
||||
private_key_uuid=attr.PrivateKeyUniqueIdentifier(
|
||||
'ffffffff-3333-2222-1111-aaaaaaaaaaaa'))
|
||||
public_key_uuid="aaaaaaaa-1111-2222-3333-ffffffffffff",
|
||||
private_key_uuid="ffffffff-3333-2222-1111-aaaaaaaaaaaa"
|
||||
)
|
||||
|
||||
with ProxyKmipClient() as client:
|
||||
client.proxy.create_key_pair.return_value = result
|
||||
|
@ -501,9 +503,11 @@ class TestProxyKmipClient(testtools.TestCase):
|
|||
2048
|
||||
)
|
||||
|
||||
kwargs = {'common_template_attribute': template,
|
||||
'private_key_template_attribute': None,
|
||||
'public_key_template_attribute': None}
|
||||
kwargs = {
|
||||
"common_template_attribute": template,
|
||||
"private_key_template_attribute": None,
|
||||
"public_key_template_attribute": None
|
||||
}
|
||||
client.proxy.create_key_pair.assert_called_with(**kwargs)
|
||||
self.assertIsInstance(public_uid, six.string_types)
|
||||
self.assertIsInstance(private_uid, six.string_types)
|
||||
|
@ -533,15 +537,17 @@ class TestProxyKmipClient(testtools.TestCase):
|
|||
algorithm_attribute,
|
||||
length_attribute
|
||||
]
|
||||
template = obj.CommonTemplateAttribute(attributes=pair_attributes)
|
||||
template = obj.TemplateAttribute(
|
||||
attributes=pair_attributes,
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
|
||||
status = enums.ResultStatus.SUCCESS
|
||||
result = results.CreateKeyPairResult(
|
||||
contents.ResultStatus(status),
|
||||
public_key_uuid=attr.PublicKeyUniqueIdentifier(
|
||||
'aaaaaaaa-1111-2222-3333-ffffffffffff'),
|
||||
private_key_uuid=attr.PrivateKeyUniqueIdentifier(
|
||||
'ffffffff-3333-2222-1111-aaaaaaaaaaaa'))
|
||||
public_key_uuid="aaaaaaaa-1111-2222-3333-ffffffffffff",
|
||||
private_key_uuid="ffffffff-3333-2222-1111-aaaaaaaaaaaa"
|
||||
)
|
||||
|
||||
with ProxyKmipClient() as client:
|
||||
client.proxy.create_key_pair.return_value = result
|
||||
|
@ -552,9 +558,11 @@ class TestProxyKmipClient(testtools.TestCase):
|
|||
operation_policy_name='test'
|
||||
)
|
||||
|
||||
kwargs = {'common_template_attribute': template,
|
||||
'private_key_template_attribute': None,
|
||||
'public_key_template_attribute': None}
|
||||
kwargs = {
|
||||
"common_template_attribute": template,
|
||||
"private_key_template_attribute": None,
|
||||
"public_key_template_attribute": None
|
||||
}
|
||||
client.proxy.create_key_pair.assert_called_with(**kwargs)
|
||||
|
||||
@mock.patch('kmip.pie.client.KMIPProxy',
|
||||
|
@ -583,19 +591,25 @@ class TestProxyKmipClient(testtools.TestCase):
|
|||
length_attribute
|
||||
]
|
||||
|
||||
template = obj.CommonTemplateAttribute(attributes=pair_attributes)
|
||||
private_template = obj.PrivateKeyTemplateAttribute(
|
||||
names=[private_name_attribute])
|
||||
public_template = obj.PublicKeyTemplateAttribute(
|
||||
names=[public_name_attribute])
|
||||
template = obj.TemplateAttribute(
|
||||
attributes=pair_attributes,
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
private_template = obj.TemplateAttribute(
|
||||
names=[private_name_attribute],
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
public_template = obj.TemplateAttribute(
|
||||
names=[public_name_attribute],
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
|
||||
status = enums.ResultStatus.SUCCESS
|
||||
result = results.CreateKeyPairResult(
|
||||
contents.ResultStatus(status),
|
||||
public_key_uuid=attr.PublicKeyUniqueIdentifier(
|
||||
'aaaaaaaa-1111-2222-3333-ffffffffffff'),
|
||||
private_key_uuid=attr.PrivateKeyUniqueIdentifier(
|
||||
'ffffffff-3333-2222-1111-aaaaaaaaaaaa'))
|
||||
public_key_uuid="aaaaaaaa-1111-2222-3333-ffffffffffff",
|
||||
private_key_uuid="ffffffff-3333-2222-1111-aaaaaaaaaaaa"
|
||||
)
|
||||
|
||||
with ProxyKmipClient() as client:
|
||||
client.proxy.create_key_pair.return_value = result
|
||||
|
@ -607,9 +621,11 @@ class TestProxyKmipClient(testtools.TestCase):
|
|||
private_name="private"
|
||||
)
|
||||
|
||||
kwargs = {'common_template_attribute': template,
|
||||
'private_key_template_attribute': private_template,
|
||||
'public_key_template_attribute': public_template}
|
||||
kwargs = {
|
||||
"common_template_attribute": template,
|
||||
"private_key_template_attribute": private_template,
|
||||
"public_key_template_attribute": public_template
|
||||
}
|
||||
client.proxy.create_key_pair.assert_called_with(**kwargs)
|
||||
|
||||
@mock.patch('kmip.pie.client.KMIPProxy',
|
||||
|
@ -642,19 +658,25 @@ class TestProxyKmipClient(testtools.TestCase):
|
|||
length_attribute
|
||||
]
|
||||
|
||||
template = obj.CommonTemplateAttribute(attributes=pair_attributes)
|
||||
private_template = obj.PrivateKeyTemplateAttribute(
|
||||
attributes=[private_usage_mask])
|
||||
public_template = obj.PublicKeyTemplateAttribute(
|
||||
attributes=[public_usage_mask])
|
||||
template = obj.TemplateAttribute(
|
||||
attributes=pair_attributes,
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
private_template = obj.TemplateAttribute(
|
||||
attributes=[private_usage_mask],
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
public_template = obj.TemplateAttribute(
|
||||
attributes=[public_usage_mask],
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
|
||||
status = enums.ResultStatus.SUCCESS
|
||||
result = results.CreateKeyPairResult(
|
||||
contents.ResultStatus(status),
|
||||
public_key_uuid=attr.PublicKeyUniqueIdentifier(
|
||||
'aaaaaaaa-1111-2222-3333-ffffffffffff'),
|
||||
private_key_uuid=attr.PrivateKeyUniqueIdentifier(
|
||||
'ffffffff-3333-2222-1111-aaaaaaaaaaaa'))
|
||||
public_key_uuid="aaaaaaaa-1111-2222-3333-ffffffffffff",
|
||||
private_key_uuid="ffffffff-3333-2222-1111-aaaaaaaaaaaa"
|
||||
)
|
||||
|
||||
with ProxyKmipClient() as client:
|
||||
client.proxy.create_key_pair.return_value = result
|
||||
|
@ -666,9 +688,11 @@ class TestProxyKmipClient(testtools.TestCase):
|
|||
private_usage_mask=[enums.CryptographicUsageMask.SIGN]
|
||||
)
|
||||
|
||||
kwargs = {'common_template_attribute': template,
|
||||
'private_key_template_attribute': private_template,
|
||||
'public_key_template_attribute': public_template}
|
||||
kwargs = {
|
||||
"common_template_attribute": template,
|
||||
"private_key_template_attribute": private_template,
|
||||
"public_key_template_attribute": public_template
|
||||
}
|
||||
client.proxy.create_key_pair.assert_called_with(**kwargs)
|
||||
|
||||
@mock.patch('kmip.pie.client.KMIPProxy',
|
||||
|
|
|
@ -2666,7 +2666,7 @@ class TestKmipEngine(testtools.TestCase):
|
|||
|
||||
attribute_factory = factory.AttributeFactory()
|
||||
|
||||
common_template = objects.CommonTemplateAttribute(
|
||||
common_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.NAME,
|
||||
|
@ -2683,9 +2683,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.AttributeType.CRYPTOGRAPHIC_LENGTH,
|
||||
2048
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
public_template = objects.PublicKeyTemplateAttribute(
|
||||
public_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_USAGE_MASK,
|
||||
|
@ -2693,9 +2694,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.ENCRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
private_template = objects.PrivateKeyTemplateAttribute(
|
||||
private_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_USAGE_MASK,
|
||||
|
@ -2703,7 +2705,8 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.DECRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
payload = payloads.CreateKeyPairRequestPayload(
|
||||
common_template,
|
||||
|
@ -2719,9 +2722,9 @@ class TestKmipEngine(testtools.TestCase):
|
|||
"Processing operation: CreateKeyPair"
|
||||
)
|
||||
|
||||
public_id = response_payload.public_key_uuid.value
|
||||
public_id = response_payload.public_key_unique_identifier
|
||||
self.assertEqual('1', public_id)
|
||||
private_id = response_payload.private_key_uuid.value
|
||||
private_id = response_payload.private_key_unique_identifier
|
||||
self.assertEqual('2', private_id)
|
||||
|
||||
# Retrieve the stored public key and verify all attributes were set
|
||||
|
@ -2794,7 +2797,7 @@ class TestKmipEngine(testtools.TestCase):
|
|||
attribute_factory = factory.AttributeFactory()
|
||||
|
||||
# Test that a missing PublicKey CryptographicAlgorithm raises an error
|
||||
common_template = objects.CommonTemplateAttribute(
|
||||
common_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.NAME,
|
||||
|
@ -2803,9 +2806,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.NameType.UNINTERPRETED_TEXT_STRING
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
public_template = objects.PublicKeyTemplateAttribute(
|
||||
public_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_LENGTH,
|
||||
|
@ -2817,9 +2821,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.ENCRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
private_template = objects.PrivateKeyTemplateAttribute(
|
||||
private_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -2835,7 +2840,8 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.DECRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
payload = payloads.CreateKeyPairRequestPayload(
|
||||
common_template,
|
||||
|
@ -2861,7 +2867,7 @@ class TestKmipEngine(testtools.TestCase):
|
|||
e._logger.reset_mock()
|
||||
|
||||
# Test that a missing PrivateKey CryptographicAlgorithm raises an error
|
||||
common_template = objects.CommonTemplateAttribute(
|
||||
common_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.NAME,
|
||||
|
@ -2870,9 +2876,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.NameType.UNINTERPRETED_TEXT_STRING
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
public_template = objects.PublicKeyTemplateAttribute(
|
||||
public_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -2888,9 +2895,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.ENCRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
private_template = objects.PrivateKeyTemplateAttribute(
|
||||
private_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_LENGTH,
|
||||
|
@ -2902,7 +2910,8 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.DECRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
payload = payloads.CreateKeyPairRequestPayload(
|
||||
common_template,
|
||||
|
@ -2928,7 +2937,7 @@ class TestKmipEngine(testtools.TestCase):
|
|||
e._logger.reset_mock()
|
||||
|
||||
# Test that a missing PublicKey CryptographicLength raises an error
|
||||
common_template = objects.CommonTemplateAttribute(
|
||||
common_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.NAME,
|
||||
|
@ -2937,9 +2946,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.NameType.UNINTERPRETED_TEXT_STRING
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
public_template = objects.PublicKeyTemplateAttribute(
|
||||
public_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -2951,9 +2961,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.ENCRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
private_template = objects.PrivateKeyTemplateAttribute(
|
||||
private_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -2969,7 +2980,8 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.DECRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
payload = payloads.CreateKeyPairRequestPayload(
|
||||
common_template,
|
||||
|
@ -2995,7 +3007,7 @@ class TestKmipEngine(testtools.TestCase):
|
|||
e._logger.reset_mock()
|
||||
|
||||
# Test that a missing PrivateKey CryptographicLength raises an error
|
||||
common_template = objects.CommonTemplateAttribute(
|
||||
common_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.NAME,
|
||||
|
@ -3004,9 +3016,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.NameType.UNINTERPRETED_TEXT_STRING
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
public_template = objects.PublicKeyTemplateAttribute(
|
||||
public_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -3022,9 +3035,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.ENCRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
private_template = objects.PrivateKeyTemplateAttribute(
|
||||
private_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -3036,7 +3050,8 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.DECRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
payload = payloads.CreateKeyPairRequestPayload(
|
||||
common_template,
|
||||
|
@ -3062,7 +3077,7 @@ class TestKmipEngine(testtools.TestCase):
|
|||
e._logger.reset_mock()
|
||||
|
||||
# Test that a missing PublicKey CryptographicUsageMask raises an error
|
||||
common_template = objects.CommonTemplateAttribute(
|
||||
common_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.NAME,
|
||||
|
@ -3071,9 +3086,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.NameType.UNINTERPRETED_TEXT_STRING
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
public_template = objects.PublicKeyTemplateAttribute(
|
||||
public_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -3083,9 +3099,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.AttributeType.CRYPTOGRAPHIC_LENGTH,
|
||||
2048
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
private_template = objects.PrivateKeyTemplateAttribute(
|
||||
private_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -3101,7 +3118,8 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.DECRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
payload = payloads.CreateKeyPairRequestPayload(
|
||||
common_template,
|
||||
|
@ -3127,7 +3145,7 @@ class TestKmipEngine(testtools.TestCase):
|
|||
e._logger.reset_mock()
|
||||
|
||||
# Test that a missing PrivateKey CryptographicUsageMask raises an error
|
||||
common_template = objects.CommonTemplateAttribute(
|
||||
common_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.NAME,
|
||||
|
@ -3136,9 +3154,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.NameType.UNINTERPRETED_TEXT_STRING
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
public_template = objects.PublicKeyTemplateAttribute(
|
||||
public_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -3154,9 +3173,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.ENCRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
private_template = objects.PrivateKeyTemplateAttribute(
|
||||
private_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -3166,7 +3186,8 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.AttributeType.CRYPTOGRAPHIC_LENGTH,
|
||||
2048
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
payload = payloads.CreateKeyPairRequestPayload(
|
||||
common_template,
|
||||
|
@ -3205,7 +3226,7 @@ class TestKmipEngine(testtools.TestCase):
|
|||
attribute_factory = factory.AttributeFactory()
|
||||
|
||||
# Test that mismatched CryptographicAlgorithms raise an error.
|
||||
common_template = objects.CommonTemplateAttribute(
|
||||
common_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.NAME,
|
||||
|
@ -3214,9 +3235,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.NameType.UNINTERPRETED_TEXT_STRING
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
public_template = objects.PublicKeyTemplateAttribute(
|
||||
public_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -3232,9 +3254,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.ENCRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
private_template = objects.PrivateKeyTemplateAttribute(
|
||||
private_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -3250,7 +3273,8 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.DECRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
payload = payloads.CreateKeyPairRequestPayload(
|
||||
common_template,
|
||||
|
@ -3275,7 +3299,7 @@ class TestKmipEngine(testtools.TestCase):
|
|||
e._logger.reset_mock()
|
||||
|
||||
# Test that mismatched CryptographicAlgorithms raise an error.
|
||||
common_template = objects.CommonTemplateAttribute(
|
||||
common_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.NAME,
|
||||
|
@ -3284,9 +3308,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.NameType.UNINTERPRETED_TEXT_STRING
|
||||
)
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
public_template = objects.PublicKeyTemplateAttribute(
|
||||
public_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -3302,9 +3327,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.ENCRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
private_template = objects.PrivateKeyTemplateAttribute(
|
||||
private_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_ALGORITHM,
|
||||
|
@ -3320,7 +3346,8 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.DECRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
payload = payloads.CreateKeyPairRequestPayload(
|
||||
common_template,
|
||||
|
@ -8125,7 +8152,7 @@ class TestKmipEngine(testtools.TestCase):
|
|||
|
||||
attribute_factory = factory.AttributeFactory()
|
||||
|
||||
common_template = objects.CommonTemplateAttribute(
|
||||
common_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.NAME,
|
||||
|
@ -8142,9 +8169,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.AttributeType.CRYPTOGRAPHIC_LENGTH,
|
||||
2048
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.COMMON_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
public_template = objects.PublicKeyTemplateAttribute(
|
||||
public_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_USAGE_MASK,
|
||||
|
@ -8152,9 +8180,10 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.ENCRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PUBLIC_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
private_template = objects.PrivateKeyTemplateAttribute(
|
||||
private_template = objects.TemplateAttribute(
|
||||
attributes=[
|
||||
attribute_factory.create_attribute(
|
||||
enums.AttributeType.CRYPTOGRAPHIC_USAGE_MASK,
|
||||
|
@ -8162,7 +8191,8 @@ class TestKmipEngine(testtools.TestCase):
|
|||
enums.CryptographicUsageMask.DECRYPT
|
||||
]
|
||||
)
|
||||
]
|
||||
],
|
||||
tag=enums.Tags.PRIVATE_KEY_TEMPLATE_ATTRIBUTE
|
||||
)
|
||||
payload = payloads.CreateKeyPairRequestPayload(
|
||||
common_template,
|
||||
|
@ -8178,9 +8208,9 @@ class TestKmipEngine(testtools.TestCase):
|
|||
"Processing operation: CreateKeyPair"
|
||||
)
|
||||
|
||||
public_id = response_payload.public_key_uuid.value
|
||||
public_id = response_payload.public_key_unique_identifier
|
||||
self.assertEqual('1', public_id)
|
||||
private_id = response_payload.private_key_uuid.value
|
||||
private_id = response_payload.private_key_unique_identifier
|
||||
self.assertEqual('2', private_id)
|
||||
|
||||
e._logger.reset_mock()
|
||||
|
|
Loading…
Reference in New Issue