The message to sign bytes should be constructed in a crypto compliant way - e.g. asn1. Here the IdentifierHeader and OrdererBlockMetadata are just proto.Marshal. We can use the same technique that is employed in constructing protoutil.BlockHeaderBytes(ab.Header), i.e. an auxiliary asn1 struct.
Originally posted by @tock-ibm in #631 (comment)
See also: #631 (comment)