delta_generator: Include metadata signature in major version 2.
--metadata_signature_file flag does what it should now.
Note that you should only pass this flag if the payload you are signing is
version 2.
Bug: 23981164
TEST=unit test added.
Change-Id: I613cd6a5fef188eca37c46c3f8a0a41d1c22f2fd
diff --git a/payload_generator/payload_signer.cc b/payload_generator/payload_signer.cc
index 714b6a4..fa8c4ba 100644
--- a/payload_generator/payload_signer.cc
+++ b/payload_generator/payload_signer.cc
@@ -423,21 +423,27 @@
bool PayloadSigner::AddSignatureToPayload(
const string& payload_path,
- const vector<brillo::Blob>& signatures,
+ const vector<brillo::Blob>& payload_signatures,
+ const vector<brillo::Blob>& metadata_signatures,
const string& signed_payload_path,
uint64_t *out_metadata_size) {
// TODO(petkov): Reduce memory usage -- the payload is manipulated in memory.
// Loads the payload and adds the signature op to it.
- brillo::Blob signature_blob;
- TEST_AND_RETURN_FALSE(ConvertSignatureToProtobufBlob(signatures,
+ brillo::Blob signature_blob, metadata_signature_blob;
+ TEST_AND_RETURN_FALSE(ConvertSignatureToProtobufBlob(payload_signatures,
&signature_blob));
+ if (!metadata_signatures.empty()) {
+ TEST_AND_RETURN_FALSE(
+ ConvertSignatureToProtobufBlob(metadata_signatures,
+ &metadata_signature_blob));
+ }
brillo::Blob payload;
uint64_t signatures_offset;
uint32_t metadata_signature_size;
TEST_AND_RETURN_FALSE(AddSignatureBlobToPayload(payload_path,
signature_blob,
- brillo::Blob(),
+ metadata_signature_blob,
&payload,
out_metadata_size,
&metadata_signature_size,