func MetadataToAAD()

in client/clientutil.go [234:266]


func MetadataToAAD(md *configpb.Metadata) ([]byte, error) {
	buf := new(bytes.Buffer)
	for _, share := range md.GetShares() {
		// Serialize share.wrappedShare
		if err := binary.Write(buf, binary.LittleEndian, uint64(len(share.GetShare()))); err != nil {
			return nil, fmt.Errorf("unable to serialize length of wrapped share: %v", err)
		}

		if _, err := buf.Write(share.GetShare()); err != nil {
			return nil, fmt.Errorf("unable to serialize wrapped share: %v", err)
		}

		// Serialize share.hash
		if err := binary.Write(buf, binary.LittleEndian, uint64(sha256.Size)); err != nil {
			return nil, fmt.Errorf("unable to serialize length of hashed share: %v", err)
		}

		if _, err := buf.Write(share.GetHash()); err != nil {
			return nil, fmt.Errorf("unable to serialize hashed share: %v", err)
		}
	}

	// Serialize blobID.
	if err := binary.Write(buf, binary.LittleEndian, uint64(len([]byte(md.GetBlobId())))); err != nil {
		return nil, fmt.Errorf("unable to serialize length of blobID: %v", err)
	}

	if _, err := buf.WriteString(md.GetBlobId()); err != nil {
		return nil, fmt.Errorf("unable to serialize blobID: %v", md.GetBlobId())
	}

	return buf.Bytes(), nil
}