Convert int to string for payload sizes

.. to handle larger values without overflowing.

Bug: 312749584
Test: m + atest

Change-Id: I25b46167d657835c565661837649841fafdd3a4f
diff --git a/payload_generator/payload_properties.cc b/payload_generator/payload_properties.cc
index bcf4fbd..d47c059 100644
--- a/payload_generator/payload_properties.cc
+++ b/payload_generator/payload_properties.cc
@@ -47,6 +47,10 @@
 // These are needed by the Nebraska and devserver.
 const char kPayloadPropertyJsonPayloadSize[] = "size";
 const char kPayloadPropertyJsonIsDelta[] = "is_delta";
+
+// These are JSON specific properties to handle 64-bit sizes (> 53-bits).
+const char kPayloadPropertyJsonMetadataSizeStr[] = "metadata_size_str";
+const char kPayloadPropertyJsonPayloadSizeStr[] = "size_str";
 }  // namespace
 
 PayloadProperties::PayloadProperties(const string& payload_path)
@@ -58,9 +62,13 @@
   base::DictionaryValue properties;
   properties.SetInteger(kPayloadPropertyJsonVersion, version_);
   properties.SetInteger(kPayloadPropertyJsonMetadataSize, metadata_size_);
+  properties.SetString(kPayloadPropertyJsonMetadataSizeStr,
+                       std::to_string(metadata_size_));
   properties.SetString(kPayloadPropertyJsonMetadataSignature,
                        metadata_signatures_);
   properties.SetInteger(kPayloadPropertyJsonPayloadSize, payload_size_);
+  properties.SetString(kPayloadPropertyJsonPayloadSizeStr,
+                       std::to_string(payload_size_));
   properties.SetString(kPayloadPropertyJsonPayloadHash, payload_hash_);
   properties.SetBoolean(kPayloadPropertyJsonIsDelta, is_delta_);
 
diff --git a/payload_generator/payload_properties.h b/payload_generator/payload_properties.h
index 846b181..9aeb5f8 100644
--- a/payload_generator/payload_properties.h
+++ b/payload_generator/payload_properties.h
@@ -52,11 +52,11 @@
   // format, this needs to be increased.
   int version_{2};
 
-  size_t metadata_size_;
+  uint64_t metadata_size_;
   std::string metadata_hash_;
   std::string metadata_signatures_;
 
-  size_t payload_size_;
+  uint64_t payload_size_;
   std::string payload_hash_;
 
   // Whether the payload is a delta (true) or full (false).
diff --git a/payload_generator/payload_properties_unittest.cc b/payload_generator/payload_properties_unittest.cc
index 0ff364f..f7ac743 100644
--- a/payload_generator/payload_properties_unittest.cc
+++ b/payload_generator/payload_properties_unittest.cc
@@ -105,8 +105,10 @@
       R"("is_delta":true,)"
       R"("metadata_signature":"",)"
       R"("metadata_size":165,)"
+      R"("metadata_size_str":"165",)"
       R"("sha256_hex":"cV7kfZBH3K0B6QJHxxykDh6b6x0WgVOmc63whPLOy7U=",)"
       R"("size":211,)"
+      R"("size_str":"211",)"
       R"("version":2)"
       "}";
   string json;