Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adjust to removals from securesystemslib #855

Merged
merged 1 commit into from
Sep 17, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion tests/test_developer_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ def test_create_new_project(self):
developer_tool.create_new_project(project_name, metadata_directory,
location_in_repository, targets_directory, project_key)

except (OSError, securesystemslib.exceptions.RepositoryError):
except (OSError, tuf.exceptions.RepositoryError):
pass

developer_tool.METADATA_DIRECTORY_NAME = valid_metadata_directory_name
Expand Down
30 changes: 15 additions & 15 deletions tests/test_keydb.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,12 +132,12 @@ def test_clear_keydb(self):
keyid = KEYS[0]['keyid']
repository_name = 'example_repository'
tuf.keydb.create_keydb(repository_name)
self.assertRaises(securesystemslib.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid, repository_name)
self.assertRaises(tuf.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid, repository_name)
tuf.keydb.add_key(rsakey, keyid, repository_name)
self.assertEqual(rsakey, tuf.keydb.get_key(keyid, repository_name))

tuf.keydb.clear_keydb(repository_name)
self.assertRaises(securesystemslib.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid, repository_name)
self.assertRaises(tuf.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid, repository_name)

# Remove 'repository_name' from the key database to revert it back to its
# original, default state (i.e., only the 'default' repository exists).
Expand Down Expand Up @@ -169,7 +169,7 @@ def test_get_key(self):

# Test condition using a 'keyid' that has not been added yet.
keyid3 = KEYS[2]['keyid']
self.assertRaises(securesystemslib.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid3)
self.assertRaises(tuf.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid3)

# Test condition for a key added to a non-default repository.
repository_name = 'example_repository'
Expand All @@ -183,7 +183,7 @@ def test_get_key(self):

# Verify that 'rsakey3' is added to the expected repository name.
# If not supplied, the 'default' repository name is searched.
self.assertRaises(securesystemslib.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid3)
self.assertRaises(tuf.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid3)
self.assertEqual(rsakey3, tuf.keydb.get_key(keyid3, repository_name))

# Remove the 'example_repository' so that other test functions have access
Expand Down Expand Up @@ -231,15 +231,15 @@ def test_add_key(self):
# Test conditions using keyids that have already been added.
tuf.keydb.add_key(rsakey, keyid)
tuf.keydb.add_key(rsakey2, keyid2)
self.assertRaises(securesystemslib.exceptions.KeyAlreadyExistsError, tuf.keydb.add_key, rsakey)
self.assertRaises(securesystemslib.exceptions.KeyAlreadyExistsError, tuf.keydb.add_key, rsakey2)
self.assertRaises(tuf.exceptions.KeyAlreadyExistsError, tuf.keydb.add_key, rsakey)
self.assertRaises(tuf.exceptions.KeyAlreadyExistsError, tuf.keydb.add_key, rsakey2)

# Test condition for key added to the keydb of a non-default repository.
repository_name = 'example_repository'
tuf.keydb.create_keydb(repository_name)
self.assertRaises(securesystemslib.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid3, repository_name)
self.assertRaises(tuf.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid3, repository_name)
tuf.keydb.add_key(rsakey3, keyid3, repository_name)
self.assertRaises(securesystemslib.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid3)
self.assertRaises(tuf.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid3)
self.assertEqual(rsakey3, tuf.keydb.get_key(keyid3, repository_name))

# Test condition for key added to the keydb of a non-existent repository.
Expand Down Expand Up @@ -268,22 +268,22 @@ def test_remove_key(self):
self.assertEqual(None, tuf.keydb.remove_key(keyid2))

# Ensure the keys were actually removed.
self.assertRaises(securesystemslib.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid)
self.assertRaises(securesystemslib.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid2)
self.assertRaises(tuf.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid)
self.assertRaises(tuf.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid2)

# Test for 'keyid' not in keydb.
self.assertRaises(securesystemslib.exceptions.UnknownKeyError, tuf.keydb.remove_key, keyid)
self.assertRaises(tuf.exceptions.UnknownKeyError, tuf.keydb.remove_key, keyid)

# Test condition for unknown key argument.
self.assertRaises(securesystemslib.exceptions.UnknownKeyError, tuf.keydb.remove_key, '1')
self.assertRaises(tuf.exceptions.UnknownKeyError, tuf.keydb.remove_key, '1')

# Test condition for removal of keys from a non-default repository.
repository_name = 'example_repository'
tuf.keydb.create_keydb(repository_name)
tuf.keydb.add_key(rsakey, keyid, repository_name)
self.assertRaises(securesystemslib.exceptions.InvalidNameError, tuf.keydb.remove_key, keyid, 'non-existent')
tuf.keydb.remove_key(keyid, repository_name)
self.assertRaises(securesystemslib.exceptions.UnknownKeyError, tuf.keydb.remove_key, keyid, repository_name)
self.assertRaises(tuf.exceptions.UnknownKeyError, tuf.keydb.remove_key, keyid, repository_name)

# Reset the keydb so that subsequent tests have access to the original,
# default keydb.
Expand Down Expand Up @@ -390,8 +390,8 @@ def test_create_keydb_from_root_metadata(self):
# Ensure only 'keyid2' was added to the keydb database. 'keyid' and
# 'keyid3' should not be stored.
self.assertEqual(rsakey2, tuf.keydb.get_key(keyid2))
self.assertRaises(securesystemslib.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid)
self.assertRaises(securesystemslib.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid3)
self.assertRaises(tuf.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid)
self.assertRaises(tuf.exceptions.UnknownKeyError, tuf.keydb.get_key, keyid3)
rsakey3['keytype'] = 'rsa'


Expand Down
6 changes: 3 additions & 3 deletions tests/test_mix_and_match_attack.py
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ def test_with_tuf(self):
self.repository_updater.targets_of_role('role1')

# Verify that the specific
# 'securesystemslib.exceptions.BadVersionNumberError' exception is raised by
# 'tuf.exceptions.BadVersionNumberError' exception is raised by
# each mirror.
except tuf.exceptions.NoWorkingMirrorError as exception:
for mirror_url, mirror_error in six.iteritems(exception.mirror_errors):
Expand All @@ -249,8 +249,8 @@ def test_with_tuf(self):

# Verify that 'role1.json' is the culprit.
self.assertEqual(url_file.replace('\\', '/'), mirror_url)
self.assertTrue(isinstance(mirror_error,
securesystemslib.exceptions.BadVersionNumberError))
self.assertTrue(isinstance(
mirror_error, tuf.exceptions.BadVersionNumberError))

else:
self.fail('TUF did not prevent a mix-and-match attack.')
Expand Down
6 changes: 3 additions & 3 deletions tests/test_repository_lib.py
Original file line number Diff line number Diff line change
Expand Up @@ -866,7 +866,7 @@ def test_create_tuf_client_directory(self):


# Test invalid argument (i.e., client directory already exists.)
self.assertRaises(securesystemslib.exceptions.RepositoryError,
self.assertRaises(tuf.exceptions.RepositoryError,
repo_lib.create_tuf_client_directory, repository_directory,
client_directory)

Expand All @@ -882,7 +882,7 @@ def test_create_tuf_client_directory(self):
# Creation of the '/' directory is forbidden on all supported OSs. The '/'
# argument to create_tuf_client_directory should cause it to re-raise a
# non-errno.EEXIST exception.
self.assertRaises((OSError, securesystemslib.exceptions.RepositoryError),
self.assertRaises((OSError, tuf.exceptions.RepositoryError),
repo_lib.create_tuf_client_directory, repository_directory, '/')

# Restore the metadata directory name in repo_lib.
Expand Down Expand Up @@ -1035,7 +1035,7 @@ def test__load_top_level_metadata(self):

# Remove the required Root file and verify that an exception is raised.
os.remove(os.path.join(metadata_directory, 'root.json'))
self.assertRaises(securesystemslib.exceptions.RepositoryError,
self.assertRaises(tuf.exceptions.RepositoryError,
repo_lib._load_top_level_metadata, repository, filenames,
repository_name)

Expand Down
8 changes: 4 additions & 4 deletions tests/test_repository_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ def test_writeall(self):
repository.status()

# Verify that status() does not raise
# 'securesystemslib.exceptions.InsufficientKeysError' if a top-level role
# 'tuf.exceptions.InsufficientKeysError' if a top-level role
# does not contain a threshold of keys.
targets_roleinfo = tuf.roledb.get_roleinfo('targets', repository_name)
old_threshold = targets_roleinfo['threshold']
Expand All @@ -266,7 +266,7 @@ def test_writeall(self):
repository_name=repository_name)

# Verify that status() does not raise
# 'securesystemslib.exceptions.InsufficientKeysError' if a delegated role
# 'tuf.exceptions.InsufficientKeysError' if a delegated role
# does not contain a threshold of keys.
role1_roleinfo = tuf.roledb.get_roleinfo('role1', repository_name)
old_role1_threshold = role1_roleinfo['threshold']
Expand Down Expand Up @@ -971,7 +971,7 @@ def test_call(self):
self.assertTrue(isinstance(targets_object('role1'), repo_tool.Targets))

# Test invalid (i.e., non-delegated) rolename argument.
self.assertRaises(securesystemslib.exceptions.UnknownRoleError, targets_object, 'unknown_role')
self.assertRaises(tuf.exceptions.UnknownRoleError, targets_object, 'unknown_role')

# Test improperly formatted argument.
self.assertRaises(securesystemslib.exceptions.FormatError, targets_object, 1)
Expand Down Expand Up @@ -1741,7 +1741,7 @@ def test_load_repository(self):
root_filepath = os.path.join(repository_directory,
repo_tool.METADATA_STAGED_DIRECTORY_NAME, 'root.json')
os.remove(root_filepath)
self.assertRaises(securesystemslib.exceptions.RepositoryError,
self.assertRaises(tuf.exceptions.RepositoryError,
repo_tool.load_repository, repository_directory)


Expand Down
6 changes: 3 additions & 3 deletions tests/test_updater.py
Original file line number Diff line number Diff line change
Expand Up @@ -719,23 +719,23 @@ def test_3__update_metadata(self):

except tuf.exceptions.NoWorkingMirrorError as e:
for mirror_error in six.itervalues(e.mirror_errors):
assert isinstance(mirror_error, securesystemslib.exceptions.BadVersionNumberError)
assert isinstance(mirror_error, tuf.exceptions.BadVersionNumberError)

else:
self.fail(
'Expected a NoWorkingMirrorError composed of BadVersionNumberErrors')

# Verify that the specific exception raised is correct for the previous
# case. The version number is checked, so the specific error in
# this case should be 'securesystemslib.exceptions.BadVersionNumberError'.
# this case should be 'tuf.exceptions.BadVersionNumberError'.
try:
self.repository_updater._update_metadata('targets',
DEFAULT_TARGETS_FILELENGTH,
88)

except tuf.exceptions.NoWorkingMirrorError as e:
for mirror_error in six.itervalues(e.mirror_errors):
assert isinstance(mirror_error, securesystemslib.exceptions.BadVersionNumberError)
assert isinstance(mirror_error, tuf.exceptions.BadVersionNumberError)

else:
self.fail(
Expand Down
4 changes: 2 additions & 2 deletions tuf/client/updater.py
Original file line number Diff line number Diff line change
Expand Up @@ -963,7 +963,7 @@ def _import_delegations(self, parent_role):
key['keyid'] = key_id
tuf.keydb.add_key(key, keyid=None, repository_name=self.repository_name)

except securesystemslib.exceptions.KeyAlreadyExistsError:
except tuf.exceptions.KeyAlreadyExistsError:
pass

except (securesystemslib.exceptions.FormatError, securesystemslib.exceptions.Error):
Expand Down Expand Up @@ -1530,7 +1530,7 @@ def _get_metadata_file(self, metadata_role, remote_filename,
# Verify that the downloaded version matches the version expected by
# the caller.
if version_downloaded != expected_version:
raise securesystemslib.exceptions.BadVersionNumberError('Downloaded'
raise tuf.exceptions.BadVersionNumberError('Downloaded'
' version number: ' + repr(version_downloaded) + '. Version'
' number MUST be: ' + repr(expected_version))

Expand Down
6 changes: 3 additions & 3 deletions tuf/developer_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ def status(self):
try:
_check_role_keys(delegated_role, self.repository_name)

except securesystemslib.exceptions.InsufficientKeysError:
except tuf.exceptions.InsufficientKeysError:
insufficient_keys.append(delegated_role)
continue

Expand Down Expand Up @@ -380,7 +380,7 @@ def status(self):
try:
_check_role_keys(self.rolename, self.repository_name)

except securesystemslib.exceptions.InsufficientKeysError as e:
except tuf.exceptions.InsufficientKeysError as e:
logger.info(str(e))
return

Expand Down Expand Up @@ -944,7 +944,7 @@ def load_project(project_directory, prefix='', new_targets_location=None,
try:
tuf.keydb.add_key(key_object, repository_name=repository_name)

except securesystemslib.exceptions.KeyAlreadyExistsError:
except tuf.exceptions.KeyAlreadyExistsError:
pass

for role in metadata_object['delegations']['roles']:
Expand Down
14 changes: 7 additions & 7 deletions tuf/keydb.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ def create_keydb_from_root_metadata(root_metadata, repository_name='default'):
# Although keyid duplicates should *not* occur (unique dict keys), log a
# warning and continue. Howerver, 'key_dict' may have already been
# adding to the keydb elsewhere.
except securesystemslib.exceptions.KeyAlreadyExistsError as e: # pragma: no cover
except tuf.exceptions.KeyAlreadyExistsError as e: # pragma: no cover
logger.warning(e)
continue

Expand Down Expand Up @@ -256,7 +256,7 @@ def add_key(key_dict, keyid=None, repository_name='default'):

securesystemslib.exceptions.Error, if 'keyid' does not match the keyid for 'rsakey_dict'.

securesystemslib.exceptions.KeyAlreadyExistsError, if 'rsakey_dict' is found in the key database.
tuf.exceptions.KeyAlreadyExistsError, if 'rsakey_dict' is found in the key database.

securesystemslib.exceptions.InvalidNameError, if 'repository_name' does not exist in the key
database.
Expand Down Expand Up @@ -295,7 +295,7 @@ def add_key(key_dict, keyid=None, repository_name='default'):
# available in the key database before returning.
keyid = key_dict['keyid']
if keyid in _keydb_dict[repository_name]:
raise securesystemslib.exceptions.KeyAlreadyExistsError('Key: ' + keyid)
raise tuf.exceptions.KeyAlreadyExistsError('Key: ' + keyid)

_keydb_dict[repository_name][keyid] = copy.deepcopy(key_dict)

Expand All @@ -320,7 +320,7 @@ def get_key(keyid, repository_name='default'):
<Exceptions>
securesystemslib.exceptions.FormatError, if the arguments do not have the correct format.

securesystemslib.exceptions.UnknownKeyError, if 'keyid' is not found in the keydb database.
tuf.exceptions.UnknownKeyError, if 'keyid' is not found in the keydb database.

securesystemslib.exceptions.InvalidNameError, if 'repository_name' does not exist in the key
database.
Expand Down Expand Up @@ -351,7 +351,7 @@ def get_key(keyid, repository_name='default'):
return copy.deepcopy(_keydb_dict[repository_name][keyid])

except KeyError:
raise securesystemslib.exceptions.UnknownKeyError('Key: ' + keyid)
raise tuf.exceptions.UnknownKeyError('Key: ' + keyid)



Expand All @@ -374,7 +374,7 @@ def remove_key(keyid, repository_name='default'):
<Exceptions>
securesystemslib.exceptions.FormatError, if the arguments do not have the correct format.

securesystemslib.exceptions.UnknownKeyError, if 'keyid' is not found in key database.
tuf.exceptions.UnknownKeyError, if 'keyid' is not found in key database.

securesystemslib.exceptions.InvalidNameError, if 'repository_name' does not exist in the key
database.
Expand Down Expand Up @@ -404,7 +404,7 @@ def remove_key(keyid, repository_name='default'):
del _keydb_dict[repository_name][keyid]

else:
raise securesystemslib.exceptions.UnknownKeyError('Key: ' + keyid)
raise tuf.exceptions.UnknownKeyError('Key: ' + keyid)



Expand Down
Loading