Skip to content

Commit 2045e6a

Browse files
committed
WIP add protection against snapshot preimage attack
TODO fix client Signed-off-by: Marina Moore <mnm678@gmail.com>
1 parent a0019c6 commit 2045e6a

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

tuf/client/updater.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1915,7 +1915,7 @@ def verify_merkle_path(self, metadata_role, version=None, merkle_root=None):
19151915
json_contents = securesystemslib.formats.encode_canonical(contents)
19161916
digest_object = securesystemslib.hash.digest()
19171917
digest_object.update((json_contents).encode('utf-8'))
1918-
node_hash = digest_object.hexdigest()
1918+
node_hash = "a" + digest_object.hexdigest()
19191919

19201920
# For each hash in the merkle_path, determine if the current node is
19211921
# a left of a right node using the path_directions, then combine
@@ -1941,7 +1941,7 @@ def verify_merkle_path(self, metadata_role, version=None, merkle_root=None):
19411941
# The current node is a right node
19421942
digest_object = securesystemslib.hash.digest()
19431943
digest_object.update((merkle_path[i] + node_hash).encode('utf-8'))
1944-
node_hash = digest_object.hexdigest()
1944+
node_hash = "b" + digest_object.hexdigest()
19451945

19461946
# Does the result match the merkle root?
19471947
if node_hash != merkle_root:

tuf/repository_lib.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1604,7 +1604,7 @@ def __init__(self, left, right):
16041604

16051605
digest_object.update((left.digest + right.digest).encode('utf-8'))
16061606

1607-
self.digest = digest_object.hexdigest()
1607+
self.digest = "a" + digest_object.hexdigest()
16081608

16091609

16101610

@@ -1638,7 +1638,7 @@ def __init__(self, name, contents, digest=None):
16381638
json_contents = securesystemslib.formats.encode_canonical(contents)
16391639

16401640
digest_object.update(json_contents.encode('utf-8'))
1641-
self.digest = digest_object.hexdigest()
1641+
self.digest = "b" + digest_object.hexdigest()
16421642

16431643
def is_leaf(self):
16441644
return True

0 commit comments

Comments
 (0)