borg/src/borg/testsuite
Thomas Waldmann 1b6f928917
ro_type: typed repo objects, see #7670
writing: put type into repoobj metadata
reading: check wanted type against type we got

repoobj metadata is encrypted and authenticated.
repoobj data is encrypted and authenticated, also (separately).
encryption and decryption of both metadata and data get the
same "chunk ID" as AAD, so both are "bound" to that (same) ID.

a repo-side attacker can neither see cleartext metadata/data,
nor successfully tamper with it (AEAD decryption would fail).

also, a repo-side attacker could not replace a repoobj A with a
differently typed repoobj B without borg noticing:
- the metadata/data is cryptographically bound to its ID.
  authentication/decryption would fail on mismatch.
- the type check would fail.

thus, the problem (see CVEs in changelog) solved in borg 1 by the
manifest and archive TAMs is now already solved by the type check.
2023-09-24 20:10:50 +02:00
..
archiver ro_type: typed repo objects, see #7670 2023-09-24 20:10:50 +02:00
__init__.py fix F401 2023-07-26 01:23:37 +02:00
archive.py ro_type: typed repo objects, see #7670 2023-09-24 20:10:50 +02:00
benchmark.py fix F401 2023-07-26 01:23:37 +02:00
cache.py add_chunk: remove overwrite parameter 2023-09-23 00:10:35 +02:00
checksums.py
chunker.py
chunker_pytest.py fix test_buzhash_chunksize_distribution 2023-06-06 10:09:53 +02:00
chunker_slow.py removed BaseTestCase from chunker_slow.py 2023-07-26 14:59:45 -07:00
compress.py parameterized compression tests 2023-06-02 12:55:35 -07:00
crypto.py fix E501 2023-07-26 01:24:20 +02:00
efficient_collection_queue.py
file_integrity.py fix F401 2023-07-26 01:23:37 +02:00
hashindex.py fix F401 2023-07-26 01:23:37 +02:00
hashindex_pytest.py
helpers.py test_is_slow_msgpack: skip test on expected slow msgpack environments 2023-09-14 14:47:30 +02:00
item.py Sanitize paths during archive creation/extraction/... 2023-06-07 23:23:53 +02:00
key.py always implicitly require archive TAMs 2023-09-03 22:02:35 +02:00
locking.py fix E501 2023-07-26 01:24:20 +02:00
logger.py
lrucache.py replace `LRUCache` internals with `OrderedDict` 2023-06-10 20:57:32 +02:00
nanorst.py
patterns.py
platform.py use skipif_acls_not_working decorator for freebsd also 2023-08-27 05:07:56 +02:00
platform_darwin.py seperated platform tests into seperate modules 2023-07-27 15:38:21 -07:00
platform_freebsd.py use skipif_acls_not_working decorator for freebsd also 2023-08-27 05:07:56 +02:00
platform_linux.py linux: move ACL definitions to platform_linux test module 2023-08-27 05:06:17 +02:00
platform_posix.py seperated platform tests into seperate modules 2023-07-27 15:38:21 -07:00
remote.py ro_type: typed repo objects, see #7670 2023-09-24 20:10:50 +02:00
repoobj.py ro_type: typed repo objects, see #7670 2023-09-24 20:10:50 +02:00
repository.py Repo tests - conversion to pytest (#7626) 2023-07-11 01:40:51 +02:00
shellpattern.py
version.py Parameterize 'version' and 'item' tests 2023-06-04 14:38:22 -07:00
xattr.py Xattr.py unittest to pytest conversion (#7657) 2023-06-20 16:08:44 +02:00