about summary refs log tree commit diff
path: root/pkgs/development/python-modules/telfhash
diff options
context:
space:
mode:
authorArmijn Hemel <armijn@tjaldur.nl>2021-05-12 19:32:08 +0200
committerCole Helbling <cole.e.helbling@outlook.com>2021-05-14 09:47:39 -0700
commitf13dbcd79cc59ab24239a167af39fb23f240e1fe (patch)
treefbbad8af03549c5a77fc00a6edd093225da48b04 /pkgs/development/python-modules/telfhash
parent2f06be9f99f56275951d7b3a3f642608e2f90fe7 (diff)
telfhash: add support for new TLSH hash format, which has been the
default since TLSH 4.0.0. Deprecate support for the old format.
Diffstat (limited to 'pkgs/development/python-modules/telfhash')
-rw-r--r--pkgs/development/python-modules/telfhash/default.nix2
-rw-r--r--pkgs/development/python-modules/telfhash/telfhash-new-tlsh-hash.patch30
2 files changed, 32 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/telfhash/default.nix b/pkgs/development/python-modules/telfhash/default.nix
index a7aca8866ed7d..ddb265bf033a5 100644
--- a/pkgs/development/python-modules/telfhash/default.nix
+++ b/pkgs/development/python-modules/telfhash/default.nix
@@ -17,6 +17,8 @@ buildPythonPackage {
     sha256 = "jNu6qm8Q/UyJVaCqwFOPX02xAR5DwvCK3PaH6Fvmakk=";
   };
 
+  patches = [ ./telfhash-new-tlsh-hash.patch ];
+
   # The tlsh library's name is just "tlsh"
   postPatch = ''
     substituteInPlace requirements.txt --replace "python-tlsh" "tlsh"
diff --git a/pkgs/development/python-modules/telfhash/telfhash-new-tlsh-hash.patch b/pkgs/development/python-modules/telfhash/telfhash-new-tlsh-hash.patch
new file mode 100644
index 0000000000000..3984a4c1e8102
--- /dev/null
+++ b/pkgs/development/python-modules/telfhash/telfhash-new-tlsh-hash.patch
@@ -0,0 +1,30 @@
+diff --git a/telfhash/grouping.py b/telfhash/grouping.py
+index c62f8d9..4ee9f0b 100644
+--- a/telfhash/grouping.py
++++ b/telfhash/grouping.py
+@@ -32,10 +32,10 @@ import tlsh
+ def get_combination(telfhash_data):
+ 
+     #
+-    # TLSH hash is 70 characters long. if the telfhash is not 70
++    # The new TLSH hash is 72 characters long. if the telfhash is not 72
+     # characters in length, exclude from the list
+     #
+-    files_list = [x for x in list(telfhash_data.keys()) if telfhash_data[x]["telfhash"] is not None and len(telfhash_data[x]["telfhash"]) == 70]
++    files_list = [x for x in list(telfhash_data.keys()) if telfhash_data[x]["telfhash"] is not None and len(telfhash_data[x]["telfhash"]) == 72]
+ 
+     #
+     # get the combination of all the possible pairs of filenames
+diff --git a/telfhash/telfhash.py b/telfhash/telfhash.py
+index f2bbd25..c6e346c 100755
+--- a/telfhash/telfhash.py
++++ b/telfhash/telfhash.py
+@@ -132,7 +132,7 @@ def get_hash(symbols_list):
+     symbol_string = ",".join(symbols_list)
+     encoded_symbol_string = symbol_string.encode("ascii")
+ 
+-    return tlsh.forcehash(encoded_symbol_string).lower()
++    return tlsh.forcehash(encoded_symbol_string)
+ 
+ 
+ def elf_get_imagebase(elf):