mirror of
https://github.com/theupdateframework/python-tuf
synced 2026-05-24 10:08:28 +00:00
Remove tuf.Error exception raised in create_keydb_from_root_metadata()
To simplify the addition of keys to keydb, add all of the valid keyids to keydb in the for loop instead of adding the default keyid separately
This commit is contained in:
parent
876ced3279
commit
ae4bbfdbfc
2 changed files with 9 additions and 12 deletions
|
|
@ -311,16 +311,15 @@ def test_create_keydb_from_root_metadata(self):
|
|||
consistent_snapshot = False
|
||||
expires = '1985-10-21T01:21:00Z'
|
||||
compression_algorithms = ['gz']
|
||||
|
||||
|
||||
root_metadata = tuf.formats.RootFile.make_metadata(version,
|
||||
expires,
|
||||
keydict, roledict,
|
||||
consistent_snapshot,
|
||||
compression_algorithms)
|
||||
self.assertEqual(None, tuf.keydb.create_keydb_from_root_metadata(root_metadata))
|
||||
|
||||
tuf.keydb.create_keydb_from_root_metadata(root_metadata)
|
||||
|
||||
|
||||
# Ensure 'keyid' and 'keyid2' were added to the keydb database.
|
||||
self.assertEqual(rsakey, tuf.keydb.get_key(keyid))
|
||||
self.assertEqual(rsakey2, tuf.keydb.get_key(keyid2))
|
||||
|
|
|
|||
16
tuf/keydb.py
16
tuf/keydb.py
|
|
@ -113,25 +113,23 @@ def create_keydb_from_root_metadata(root_metadata, repository_name='default'):
|
|||
if key_metadata['keytype'] in _SUPPORTED_KEY_TYPES:
|
||||
# 'key_metadata' is stored in 'KEY_SCHEMA' format. Call
|
||||
# create_from_metadata_format() to get the key in 'RSAKEY_SCHEMA'
|
||||
# format, which is the format expected by 'add_key()'.
|
||||
# format, which is the format expected by 'add_key()'. Note:
|
||||
# The 'keyids' returned by format_metadata_to_key() include keyids in
|
||||
# addition to the default keyid listed in 'key_dict'. The additional
|
||||
# keyids are generated according to tuf.conf.REPOSITORY_HASH_ALGORITHMS.
|
||||
key_dict, keyids = tuf.keys.format_metadata_to_key(key_metadata)
|
||||
|
||||
|
||||
try:
|
||||
add_key(key_dict, keyid_in_root_metadata, repository_name)
|
||||
for keyid in keyids:
|
||||
key_dict['keyid'] = keyid
|
||||
add_key(key_dict, keyid=None, repository_name=repository_name)
|
||||
|
||||
# Although keyid duplicates should *not* occur (unique dict keys), log a
|
||||
# warning and continue.
|
||||
# warning and continue. Howerver, 'key_dict' may have already been
|
||||
# adding to the keydb elsewhere.
|
||||
except tuf.KeyAlreadyExistsError as e: # pragma: no cover
|
||||
logger.warning(e)
|
||||
continue
|
||||
|
||||
# 'tuf.Error' raised if keyid does not match the keyid of 'rsakey_dict'.
|
||||
except tuf.Error as e:
|
||||
logger.error(e)
|
||||
continue
|
||||
|
||||
else:
|
||||
logger.warning('Root Metadata file contains a key with an invalid keytype.')
|
||||
|
|
|
|||
Loading…
Reference in a new issue