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 <mvrachev@vmware.com>
This commit is contained in:
Martin Vrachev 2021-04-28 13:01:41 +03:00
parent 54a535e4c3
commit 1ce94b95cb
2 changed files with 7 additions and 3 deletions

View file

@ -381,6 +381,11 @@ def test_metadata_root(self):
self.assertIn(keyid, root.signed.roles['root'].keyids)
self.assertIn(keyid, root.signed.keys)
# Try adding the same key again and assert its ignored.
pre_add_keyid = root.signed.roles['root'].keyids.copy()
root.signed.add_key('root', keyid, key_metadata)
self.assertEqual(pre_add_keyid, root.signed.roles['root'].keyids)
# Remove the key
root.signed.remove_key('root', keyid)

View file

@ -577,9 +577,8 @@ def add_key(
self, role: str, keyid: str, key_metadata: Mapping[str, Any]
) -> None:
"""Adds new key for 'role' and updates the key store."""
if keyid not in self.roles[role].keyids:
self.roles[role].keyids.add(keyid)
self.keys[keyid] = key_metadata
self.roles[role].keyids.add(keyid)
self.keys[keyid] = key_metadata
# Remove key for a role.
def remove_key(self, role: str, keyid: str) -> None: