class GetRequestPayload(Struct): # 9.1.3.2.2 class KeyCompressionType(Enumeration): def __init__(self, value=None): super(GetRequestPayload.KeyCompressionType, self).__init__(enums.KeyCompressionType, value, Tags.KEY_COMPRESSION_TYPE) # 9.1.3.2.3 class KeyFormatType(Enumeration): def __init__(self, value=None): super(GetRequestPayload.KeyFormatType, self).__init__(enums.KeyFormatType, value, Tags.KEY_FORMAT_TYPE) def __init__(self, unique_identifier=None, key_format_type=None, key_compression_type=None, key_wrapping_specification=None): super(GetRequestPayload, self).__init__(tag=enums.Tags.REQUEST_PAYLOAD) self.unique_identifier = unique_identifier self.key_format_type = key_format_type self.key_compression_type = key_compression_type self.key_wrapping_specification = key_wrapping_specification self.validate() def read(self, istream): super(GetRequestPayload, self).read(istream) tstream = BytearrayStream(istream.read(self.length)) if self.is_tag_next(Tags.UNIQUE_IDENTIFIER, tstream): self.unique_identifier = attributes.UniqueIdentifier() self.unique_identifier.read(tstream) if self.is_tag_next(Tags.KEY_FORMAT_TYPE, tstream): self.key_format_type = GetRequestPayload.KeyFormatType() self.key_format_type.read(tstream) if self.is_tag_next(Tags.KEY_COMPRESSION_TYPE, tstream): self.key_compression_type = GetRequestPayload.KeyCompressionType() self.key_compression_type.read(tstream) if self.is_tag_next(Tags.KEY_WRAPPING_SPECIFICATION, tstream): self.key_wrapping_specification = KeyWrappingSpecification() self.key_wrapping_specification.read(tstream) self.is_oversized(tstream) self.validate() def write(self, ostream): tstream = BytearrayStream() # Write the contents of the request payload if self.unique_identifier is not None: self.unique_identifier.write(tstream) if self.key_format_type is not None: self.key_format_type.write(tstream) if self.key_compression_type is not None: self.key_compression_type.write(tstream) if self.key_wrapping_specification is not None: self.key_wrapping_specification.write(tstream) # Write the length and value of the request payload self.length = tstream.length() super(GetRequestPayload, self).write(ostream) ostream.write(tstream.buffer) def validate(self): self.__validate() def __validate(self): # TODO (peter-hamilton) Finish implementation pass
class GetRequestPayload(Struct): # 9.1.3.2.2 class KeyCompressionType(Enumeration): def __init__(self, value=None): super(GetRequestPayload.KeyCompressionType, self).__init__( enums.KeyCompressionType, value, Tags.KEY_COMPRESSION_TYPE) # 9.1.3.2.3 class KeyFormatType(Enumeration): def __init__(self, value=None): super(GetRequestPayload.KeyFormatType, self).__init__( enums.KeyFormatType, value, Tags.KEY_FORMAT_TYPE) def __init__(self, unique_identifier=None, key_format_type=None, key_compression_type=None, key_wrapping_specification=None): super(GetRequestPayload, self).__init__(tag=enums.Tags.REQUEST_PAYLOAD) self.unique_identifier = unique_identifier self.key_format_type = key_format_type self.key_compression_type = key_compression_type self.key_wrapping_specification = key_wrapping_specification self.validate() def read(self, istream): super(GetRequestPayload, self).read(istream) tstream = BytearrayStream(istream.read(self.length)) if self.is_tag_next(Tags.UNIQUE_IDENTIFIER, tstream): self.unique_identifier = attributes.UniqueIdentifier() self.unique_identifier.read(tstream) if self.is_tag_next(Tags.KEY_FORMAT_TYPE, tstream): self.key_format_type = GetRequestPayload.KeyFormatType() self.key_format_type.read(tstream) if self.is_tag_next(Tags.KEY_COMPRESSION_TYPE, tstream): self.key_compression_type = GetRequestPayload.KeyCompressionType() self.key_compression_type.read(tstream) if self.is_tag_next(Tags.KEY_WRAPPING_SPECIFICATION, tstream): self.key_wrapping_specification = KeyWrappingSpecification() self.key_wrapping_specification.read(tstream) self.is_oversized(tstream) self.validate() def write(self, ostream): tstream = BytearrayStream() # Write the contents of the request payload if self.unique_identifier is not None: self.unique_identifier.write(tstream) if self.key_format_type is not None: self.key_format_type.write(tstream) if self.key_compression_type is not None: self.key_compression_type.write(tstream) if self.key_wrapping_specification is not None: self.key_wrapping_specification.write(tstream) # Write the length and value of the request payload self.length = tstream.length() super(GetRequestPayload, self).write(ostream) ostream.write(tstream.buffer) def validate(self): self.__validate() def __validate(self): # TODO (peter-hamilton) Finish implementation pass