def read(self, input_stream, kmip_version=enums.KMIPVersion.KMIP_1_0):
super(Authentication, self).read(<EOL>input_stream,<EOL>kmip_version=kmip_version<EOL>)<EOL>local_stream = utils.BytearrayStream(input_stream.read(self.length))<EOL>credentials = []<EOL>while self.is_tag_next(enums.Tags.CREDENTIAL, local_stream):<EOL><INDENT>credential = objects.Credential()<EOL>credential.read(local_stream, kmip_version=kmip_version)<EOL>credentials.append(credential)<EOL><DEDENT>if len(credentials) == <NUM_LIT:0>:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>self._credentials = credentials<EOL>self.is_oversized(local_stream)<EOL>
Read the data encoding the Authentication struct and decode it into
its constituent parts.

Args:
    input_stream (stream): A data stream containing encoded object
        data, supporting a read method; usually a BytearrayStream
        object.
    kmip_version (KMIPVersion): An enumeration defining the KMIP
        version with which the object will be decoded. Optional,
        defaults to KMIP 1.0.