Skip to content

Commit 68b76d3

Browse files
committed
keyid: verify adding an existing key is ignored
Verify that adding an already existing key to keyid for a particular role in Root won't create duplicate key. Signed-off-by: Martin Vrachev <[email protected]>
1 parent 54a535e commit 68b76d3

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

tests/test_api.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,11 @@ def test_metadata_root(self):
381381
self.assertIn(keyid, root.signed.roles['root'].keyids)
382382
self.assertIn(keyid, root.signed.keys)
383383

384+
# Try adding the same key again and assert its ignored.
385+
pre_add_keyid = root.signed.roles['root'].keyids
386+
root.signed.add_key('root', keyid, key_metadata)
387+
self.assertEqual(pre_add_keyid, root.signed.roles['root'].keyids)
388+
384389
# Remove the key
385390
root.signed.remove_key('root', keyid)
386391

tuf/api/metadata.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -577,9 +577,8 @@ def add_key(
577577
self, role: str, keyid: str, key_metadata: Mapping[str, Any]
578578
) -> None:
579579
"""Adds new key for 'role' and updates the key store."""
580-
if keyid not in self.roles[role].keyids:
581-
self.roles[role].keyids.add(keyid)
582-
self.keys[keyid] = key_metadata
580+
self.roles[role].keyids.add(keyid)
581+
self.keys[keyid] = key_metadata
583582

584583
# Remove key for a role.
585584
def remove_key(self, role: str, keyid: str) -> None:

0 commit comments

Comments
 (0)