python-tuf/tests
Martin Vrachev 7d926720d1 ng client: support for prefix_targets_with_hash
Add support for prefixing targets with their hashes when downloading or
using HASH.FILENAME.EXT as target names.
The introduction of prefix_targets_with_hash was necessary, because
there are use cases like Warehouse where you could use
consistent_snapshot, but without adding a hash prefix to your targets.

When prefix_targets_with_hash is set to True, target files conforming
the format HASH.FILENAME.EXT will be downloaded from the server, but
they will be saved on the client side without their hash prefixes or
FILENAME.EXT.
This makes sure the client won't understand the usage of
prefix_targets_with_hash.

Still, if you want to use HASH.FILENAME.EXT as target names when
downloading, then additionally you need to provide consistent_snapshot
set to True in your root.json. The reason is that the specification uses
consistent_snapshot for the same purpose:
"If consistent snapshots are not used (see § 6.2 Consistent snapshots),
then the filename used to download the target file is of the fixed form
FILENAME.EXT (e.g., foobar.tar.gz). Otherwise, the filename is of the
form HASH.FILENAME.EXT
(e.g., c14aeb4ac9f4a8fc0d83d12482b9197452f6adf3eb710e3b1e2b79e8d14cb681.foobar.tar.gz),
where HASH is one of the hashes of the targets file listed in the
targets metadata file found earlier in step § 5.6 Update the targets role.
In either case, the client MUST write the file to non-volatile
storage as FILENAME.EXT."

The same behavior of using two flags is used in the legacy code when
calling tuf.client.updater.download_target() in a repository using
prefix_targets_with_hash and consistent_snapshot.

See chapter 5.7.3:
https://theupdateframework.github.io/specification/latest/index.html#fetch-target
By default, prefix_targets_with_hash is set to true to make it easier
to the user to provide uniquely identifiable targets file names by
using consistent_snapshot set to True.

Signed-off-by: Martin Vrachev <mvrachev@vmware.com>
2021-08-16 16:54:42 +03:00
..
repository_data updated docs and comments 2021-07-14 10:37:08 +03:00
ssl_certs Test: add https test with expired server certificate 2018-09-26 14:15:36 -04:00
.coveragerc Move omit to run section in .coveragerc 2019-07-11 14:32:49 +02:00
__init__.py Support ISO 8601, vendor iso8601, clean codebase. 2014-04-19 14:27:53 -04:00
aggregate_tests.py Remove future module #1297 2021-04-11 11:37:45 +02:00
fast_server_exit.py Add tests for tests/utils.py 2020-11-13 14:01:57 +02:00
simple_https_server.py Remove future module #1297 2021-04-11 11:37:45 +02:00
simple_server.py Remove future module #1297 2021-04-11 11:37:45 +02:00
slow_retrieval_server.py Remove future module #1297 2021-04-11 11:37:45 +02:00
test_api.py Metadata API: add Metadata.to_bytes() 2021-07-15 15:38:14 +03:00
test_arbitrary_package_attack.py tests: Remove temp directories after other cleanup 2021-04-12 11:55:37 +03:00
test_developer_tool.py Make "utils" import more definite 2020-11-23 22:17:31 +02:00
test_download.py tests: Kill processes before deleting temp files 2021-04-12 11:55:37 +03:00
test_endless_data_attack.py tests: Remove temp directories after other cleanup 2021-04-12 11:55:37 +03:00
test_extraneous_dependencies_attack.py tests: Remove temp directories after other cleanup 2021-04-12 11:55:37 +03:00
test_fetcher.py tests: Kill processes before deleting temp files 2021-04-12 11:55:37 +03:00
test_formats.py Remove future module #1297 2021-04-11 11:37:45 +02:00
test_indefinite_freeze_attack.py tests: Remove temp directories after other cleanup 2021-04-12 11:55:37 +03:00
test_key_revocation_integration.py tests: Remove temp directories after other cleanup 2021-04-12 11:55:37 +03:00
test_keydb.py Remove future module #1297 2021-04-11 11:37:45 +02:00
test_log.py Remove use of six 2021-04-09 14:07:44 +03:00
test_metadata_serialization.py Raise if none of paths and path_hash_prefixes is set 2021-08-10 09:02:37 +03:00
test_mirrors.py Remove future module #1297 2021-04-11 11:37:45 +02:00
test_mix_and_match_attack.py tests: Remove temp directories after other cleanup 2021-04-12 11:55:37 +03:00
test_multiple_repositories_integration.py tests: Fix the order of rmdir and process kill 2021-04-12 11:55:31 +03:00
test_replay_attack.py tests: Remove temp directories after other cleanup 2021-04-12 11:55:37 +03:00
test_repository_lib.py Remove future module #1297 2021-04-11 11:37:45 +02:00
test_repository_tool.py Remove future module #1297 2021-04-11 11:37:45 +02:00
test_roledb.py Remove future module #1297 2021-04-11 11:37:45 +02:00
test_root_versioning_integration.py Remove future module #1297 2021-04-11 11:37:45 +02:00
test_sig.py Remove future module #1297 2021-04-11 11:37:45 +02:00
test_slow_retrieval_attack.py tests: Fix the order of rmdir and process kill 2021-04-12 11:55:31 +03:00
test_trusted_metadata_set.py Rename MetadataBundle to TrustedMetadataSet 2021-07-05 10:45:19 +03:00
test_tutorial.py updated docs and comments 2021-07-14 10:37:08 +03:00
test_unittest_toolbox.py Remove future module #1297 2021-04-11 11:37:45 +02:00
test_updater.py tests: Remove temp directories after other cleanup 2021-04-12 11:55:37 +03:00
test_updater_ng.py ng client: support for prefix_targets_with_hash 2021-08-16 16:54:42 +03:00
test_updater_root_rotation_integration.py Add a test for the 'ecdsa' key type 2021-06-21 16:32:49 +03:00
test_utils.py tests: remove some Python 2 specific tests 2021-03-03 09:38:36 +00:00
utils.py tests: Use current python interpreter for sub tests 2021-04-12 23:34:31 +02:00