Module rugged.lib.validate

Functions

def validate_keys() ‑> None
Expand source code
def validate_keys() -> None:
    """ Validate TUF repository keys. """
    key_validator = KeyValidator()
    try:
        key_validator.validate_config_keys()
        log.info("All expected keys are present.")
    except RuggedKeyError as e:
        log_exception(e)
        log.error("An expected key was not found. Check logs for details.")
        sys.exit(os.EX_DATAERR)
    try:
        key_validator.validate_storage_keys()
        log.info("Only expected keys are present.")
    except RuggedKeyError as e:
        log_exception(e)
        log.error("An unexpected key was found. Check logs for details.")
        sys.exit(os.EX_DATAERR)
    try:
        key_validator.validate_repo_keys()
        log.info("All keys in repository are valid.")
    except RuggedKeyError as e:
        log_exception(e)
        log.error("An invalid key was found in the repository. Check logs for details.")
        sys.exit(os.EX_DATAERR)

Validate TUF repository keys.

def validate_metadata() ‑> None
Expand source code
def validate_metadata() -> None:
    """ Validate TUF repository metadata. """
    metadata_validator = MetadataValidator()
    # The order that top-level metadata is loaded is important.
    role_validation_callbacks = {
        'root': 'validate_root',
        'timestamp': 'validate_timestamp',
        'snapshot': 'validate_snapshot',
        'targets': 'validate_targets',
    }
    if hashed_bins_is_enabled():
        role_validation_callbacks['bins'] = 'validate_hashed_bins'
    for role, callback in role_validation_callbacks.items():
        log.debug(f"Calling '{callback}()' to validate {role} metadata.")
        func = getattr(metadata_validator, callback)
        try:
            func()
            log.info(f"Metadata for the '{role}' role is valid.")
        except RuggedMetadataError:
            log.error(f"Metadata for the '{role}' role is not valid.")
            sys.exit(os.EX_DATAERR)

Validate TUF repository metadata.