[bitbake-devel] [PATCH] data/siggen: Switch md5 -> sha256

Richard Purdie richard.purdie at linuxfoundation.org
Mon Dec 17 17:16:45 UTC 2018


Similarly to the codeparser change, change to sha256 hashes due to worries
over collisions. The main impact of this change is slightly slower parsing
time as well as longer sstate file names.

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 lib/bb/data.py       | 2 +-
 lib/bb/data_smart.py | 2 +-
 lib/bb/siggen.py     | 6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/lib/bb/data.py b/lib/bb/data.py
index 6bcfcf46cc..29c2388038 100644
--- a/lib/bb/data.py
+++ b/lib/bb/data.py
@@ -436,7 +436,7 @@ def generate_dependency_hash(tasklist, gendeps, lookupcache, whitelist, fn):
             if var is not None:
                 data = data + str(var)
         k = fn + "." + task
-        basehash[k] = hashlib.md5(data.encode("utf-8")).hexdigest()
+        basehash[k] = hashlib.sha256(data.encode("utf-8")).hexdigest()
         taskdeps[task] = alldeps
 
     return taskdeps, basehash
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index c342adaa0a..1f45cd975d 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -1074,4 +1074,4 @@ class DataSmart(MutableMapping):
                     data.update({i:value})
 
         data_str = str([(k, data[k]) for k in sorted(data.keys())])
-        return hashlib.md5(data_str.encode("utf-8")).hexdigest()
+        return hashlib.sha256(data_str.encode("utf-8")).hexdigest()
diff --git a/lib/bb/siggen.py b/lib/bb/siggen.py
index ab6df7603c..24697f5bc8 100644
--- a/lib/bb/siggen.py
+++ b/lib/bb/siggen.py
@@ -213,7 +213,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
             self.taints[k] = taint
             logger.warning("%s is tainted from a forced run" % k)
 
-        h = hashlib.md5(data.encode("utf-8")).hexdigest()
+        h = hashlib.sha256(data.encode("utf-8")).hexdigest()
         self.taskhash[k] = h
         #d.setVar("BB_TASKHASH_task-%s" % task, taskhash[task])
         return h
@@ -647,7 +647,7 @@ def calc_basehash(sigdata):
         if val is not None:
             basedata = basedata + str(val)
 
-    return hashlib.md5(basedata.encode("utf-8")).hexdigest()
+    return hashlib.sha256(basedata.encode("utf-8")).hexdigest()
 
 def calc_taskhash(sigdata):
     data = sigdata['basehash']
@@ -665,7 +665,7 @@ def calc_taskhash(sigdata):
         else:
             data = data + sigdata['taint']
 
-    return hashlib.md5(data.encode("utf-8")).hexdigest()
+    return hashlib.sha256(data.encode("utf-8")).hexdigest()
 
 
 def dump_sigfile(a):
-- 
2.19.1



More information about the bitbake-devel mailing list