From c0af3601fb87e6c695d07f0af1fbec8dcfdb2f71 Mon Sep 17 00:00:00 2001 From: Hannu Nyman Date: Fri, 19 Aug 2016 10:59:52 +0300 Subject: [PATCH] luci-mod-admin-full: show also sha256 checksum for sysupgrade images Show also the sha256 checksum in addition to MD5 checksum to enable image verification also for builds with only sha256 checksums. If the 'sha256sum' command is not present in the system, the value remains empty. Note: The easiest way to get the 'sha256sum' command is to compile it into busybox. Signed-off-by: Hannu Nyman --- .../luci-mod-admin-full/luasrc/controller/admin/system.lua | 5 +++++ .../luci-mod-admin-full/luasrc/view/admin_system/upgrade.htm | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/luci-mod-admin-full/luasrc/controller/admin/system.lua b/modules/luci-mod-admin-full/luasrc/controller/admin/system.lua index fd6dda1c8..cf8cfb5d2 100644 --- a/modules/luci-mod-admin-full/luasrc/controller/admin/system.lua +++ b/modules/luci-mod-admin-full/luasrc/controller/admin/system.lua @@ -185,6 +185,10 @@ local function image_checksum(image) return (luci.sys.exec("md5sum %q" % image):match("^([^%s]+)")) end +local function image_sha256_checksum(image) + return (luci.sys.exec("sha256sum %q" % image):match("^([^%s]+)")) +end + local function supports_sysupgrade() return nixio.fs.access("/lib/upgrade/platform.sh") end @@ -268,6 +272,7 @@ function action_sysupgrade() if image_supported(image_tmp) then luci.template.render("admin_system/upgrade", { checksum = image_checksum(image_tmp), + sha256ch = image_sha256_checksum(image_tmp), storage = storage_size(), size = (fs.stat(image_tmp, "size") or 0), keep = (not not http.formvalue("keep")) diff --git a/modules/luci-mod-admin-full/luasrc/view/admin_system/upgrade.htm b/modules/luci-mod-admin-full/luasrc/view/admin_system/upgrade.htm index 5ca0398e1..279af575c 100644 --- a/modules/luci-mod-admin-full/luasrc/view/admin_system/upgrade.htm +++ b/modules/luci-mod-admin-full/luasrc/view/admin_system/upgrade.htm @@ -24,7 +24,8 @@
    -
  • <%:Checksum%>: <%=checksum%>
  • +
  • <%:Checksum MD5%>: <%=checksum%>
  • +
  • <%:Checksum SHA256%>: <%=sha256ch%>
  • <%:Size%>: <% local w = require "luci.tools.webadmin" write(w.byte_format(size)) -- 2.25.1