func (b *U16Bytes) TPMUnmarshal(in io.Reader) error {
	var tmpSize uint16
	if err := binary.Read(in, binary.BigEndian, &tmpSize); err != nil {
		return err
	}
	size := int(tmpSize)
	if len(*b) >= size {
		*b = (*b)[:size]
	} else {
		*b = append(*b, make([]byte, size-len(*b))...)
	}
	n, err := in.Read(*b)
	if err != nil {
		return err
	}
	if n != size {
		return fmt.Errorf("unable to read all contents in to U16Bytes")
	}
	return nil
}
TPMUnmarshal unpacks a U16Bytes
package tpmutil
import (
	"encoding/binary"
	"fmt"
	"io"
)
type RawBytes []byte
type U16Bytes []byte
func (b *U16Bytes) TPMMarshal(out io.Writer) error {
	size := uint16(len([]byte(*b)))
	if err := binary.Write(out, binary.BigEndian, size); err != nil {
		return err
	}
	n, err := out.Write(*b)
	if err != nil {
		return err
	}
	if n != int(size) {
		return fmt.Errorf("unable to write all contents of U16Bytes")
	}
	return nil
}