autoupdate: Set the hash_sha256 in devserver (omaha) response

The new changes in update_engine requires the new hex based sha256 hash sent by
omaha to be checked. But, currently in devserver we only sent base64 ecndoed
sha256. This CL adds hash_sha256 in the package tag of the response by
calculating the hex based sha256 hash of the payload.

TEST=cros flash

Change-Id: I4449d90513db2dcd1424a6693ec7ce172135d689
Commit-Ready: Amin Hassani <>
Tested-by: Amin Hassani <>
Reviewed-by: Xixuan Wu <>
Reviewed-by: Don Garrett <>
(cherry picked from commit 9e2adaebc313a9d73b19519c69fe90f3c58e33d8)
Reviewed-by: Keith Haddow <>
Commit-Queue: Keith Haddow <>
Tested-by: Keith Haddow <>
diff --git a/ b/
index eb39412..23091e9 100644
--- a/
+++ b/
@@ -6,6 +6,8 @@
 from __future__ import print_function
+import base64
+import binascii
 import datetime
 import os
 import time
@@ -63,7 +65,7 @@
         <manifest version="999999.0.0">
             <package hash="%(sha1)s" name="%(filename)s" size="%(size)s"
-                     required="true"/>
+                     hash_sha256="%(hash_sha256)s" required="true"/>
             <action event="postinstall"
@@ -174,6 +176,8 @@
   response_values = GetCommonResponseValues()
   response_values['sha1'] = sha1
   response_values['sha256'] = sha256
+  # sha256 is base64 encoded, encode it to hex.
+  response_values['hash_sha256'] = binascii.hexlify(base64.b64decode(sha256))
   response_values['size'] = size
   response_values['url'] = url
   (codebase, filename) = os.path.split(url)