update_engine: Validate payload properties.

Add in unit tests to validate payload properties for JSON and KeyValue
string generation. The JSON properties string should have valid
corresponding "sha256_hex" based on the hash of the entire payload file.
The KeyValue properties string should have valid corresponding payload
and metadata hashes based on payload file size and metadata size
respectively.

BUG=None
TEST=unittests

Change-Id: I0399f420d8ee3dc1e4a103841046b91a0319cdb3
Reviewed-on: https://chromium-review.googlesource.com/1669812
Tested-by: Jae Hoon Kim <kimjae@chromium.org>
Commit-Ready: Jae Hoon Kim <kimjae@chromium.org>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
3 files changed
tree: f6519d07be1db848eba9bd41cdea90b8f405ce68
  1. binder_bindings/
  2. client-headers/
  3. client_library/
  4. common/
  5. dbus_bindings/
  6. fuzz/
  7. init/
  8. payload_consumer/
  9. payload_generator/
  10. sample_images/
  11. scripts/
  12. update_engine/
  13. update_manager/
  14. update_payload_key/
  15. .clang-format
  16. .gitignore
  17. Android.bp
  18. binder_service_android.cc
  19. binder_service_android.h
  20. boot_control_android.cc
  21. boot_control_android.h
  22. boot_control_android_unittest.cc
  23. boot_control_chromeos.cc
  24. boot_control_chromeos.h
  25. boot_control_chromeos_unittest.cc
  26. BUILD.gn
  27. certificate_checker.cc
  28. certificate_checker.h
  29. certificate_checker_unittest.cc
  30. chrome_browser_proxy_resolver.cc
  31. chrome_browser_proxy_resolver.h
  32. COMMIT-QUEUE.ini
  33. common_service.cc
  34. common_service.h
  35. common_service_unittest.cc
  36. connection_manager.cc
  37. connection_manager.h
  38. connection_manager_android.cc
  39. connection_manager_android.h
  40. connection_manager_interface.h
  41. connection_manager_unittest.cc
  42. connection_utils.cc
  43. connection_utils.h
  44. CPPLINT.cfg
  45. daemon.cc
  46. daemon.h
  47. daemon_state_android.cc
  48. daemon_state_android.h
  49. daemon_state_interface.h
  50. dbus_connection.cc
  51. dbus_connection.h
  52. dbus_service.cc
  53. dbus_service.h
  54. dbus_test_utils.h
  55. dlcservice_chromeos.cc
  56. dlcservice_chromeos.h
  57. dynamic_partition_control_android.cc
  58. dynamic_partition_control_android.h
  59. dynamic_partition_control_interface.h
  60. fake_file_writer.h
  61. fake_p2p_manager.h
  62. fake_p2p_manager_configuration.h
  63. fake_shill_proxy.cc
  64. fake_shill_proxy.h
  65. fake_system_state.cc
  66. fake_system_state.h
  67. generate_pc_file.sh
  68. hardware_android.cc
  69. hardware_android.h
  70. hardware_chromeos.cc
  71. hardware_chromeos.h
  72. hardware_chromeos_unittest.cc
  73. image_properties.h
  74. image_properties_android.cc
  75. image_properties_android_unittest.cc
  76. image_properties_chromeos.cc
  77. image_properties_chromeos_unittest.cc
  78. libcurl_http_fetcher.cc
  79. libcurl_http_fetcher.h
  80. local_coverage_rate
  81. main.cc
  82. metrics_constants.h
  83. metrics_reporter_android.cc
  84. metrics_reporter_android.h
  85. metrics_reporter_interface.h
  86. metrics_reporter_omaha.cc
  87. metrics_reporter_omaha.h
  88. metrics_reporter_omaha_unittest.cc
  89. metrics_reporter_stub.cc
  90. metrics_reporter_stub.h
  91. metrics_utils.cc
  92. metrics_utils.h
  93. metrics_utils_unittest.cc
  94. mock_boot_control_hal.h
  95. mock_certificate_checker.h
  96. mock_connection_manager.h
  97. mock_dynamic_partition_control.h
  98. mock_file_writer.h
  99. mock_metrics_reporter.h
  100. mock_omaha_request_params.h
  101. mock_p2p_manager.h
  102. mock_payload_state.h
  103. mock_power_manager.h
  104. mock_service_observer.h
  105. mock_update_attempter.h
  106. MODULE_LICENSE_APACHE2
  107. network_selector.h
  108. network_selector_android.cc
  109. network_selector_android.h
  110. network_selector_interface.h
  111. network_selector_stub.cc
  112. network_selector_stub.h
  113. NOTICE
  114. omaha_request_action.cc
  115. omaha_request_action.h
  116. omaha_request_action_fuzzer.cc
  117. omaha_request_action_unittest.cc
  118. omaha_request_builder_xml.cc
  119. omaha_request_builder_xml.h
  120. omaha_request_builder_xml_unittest.cc
  121. omaha_request_params.cc
  122. omaha_request_params.h
  123. omaha_request_params_unittest.cc
  124. omaha_response.h
  125. omaha_response_handler_action.cc
  126. omaha_response_handler_action.h
  127. omaha_response_handler_action_unittest.cc
  128. omaha_utils.cc
  129. omaha_utils.h
  130. omaha_utils_unittest.cc
  131. OWNERS
  132. p2p_manager.cc
  133. p2p_manager.h
  134. p2p_manager_unittest.cc
  135. parcelable_update_engine_status.cc
  136. parcelable_update_engine_status.h
  137. parcelable_update_engine_status_unittest.cc
  138. payload_state.cc
  139. payload_state.h
  140. payload_state_interface.h
  141. payload_state_unittest.cc
  142. power_manager_android.cc
  143. power_manager_android.h
  144. power_manager_chromeos.cc
  145. power_manager_chromeos.h
  146. power_manager_interface.h
  147. PRESUBMIT.cfg
  148. PREUPLOAD.cfg
  149. pylintrc
  150. real_system_state.cc
  151. real_system_state.h
  152. run_unittests
  153. sample_omaha_v3_response.xml
  154. service_delegate_android_interface.h
  155. service_observer_interface.h
  156. shill_proxy.cc
  157. shill_proxy.h
  158. shill_proxy_interface.h
  159. sideload_main.cc
  160. system_state.h
  161. tar_bunzip2.gni
  162. test_http_server.cc
  163. test_subprocess.cc
  164. testrunner.cc
  165. unittest_key.pem
  166. unittest_key2.pem
  167. update_attempter.cc
  168. update_attempter.h
  169. update_attempter_android.cc
  170. update_attempter_android.h
  171. update_attempter_android_unittest.cc
  172. update_attempter_unittest.cc
  173. update_boot_flags_action.cc
  174. update_boot_flags_action.h
  175. update_boot_flags_action_unittest.cc
  176. update_engine.conf
  177. update_engine.rc
  178. update_engine_client.cc
  179. update_engine_client_android.cc
  180. update_metadata.proto
  181. update_status_utils.cc
  182. update_status_utils.h
  183. UpdateEngine.conf