Commit graph

24 commits

Author SHA1 Message Date
Jussi Kukkonen
8ed4414946 Fix incorrect targetpath comparison on Windows
fnmatch() will do case-normalization if the OS expects it:
we do not want this as
* the path is more a URL than a file path
* results need to not change based on OS

Fix the result on Windows by using fnmatchcase()

Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2026-04-21 12:27:16 +03:00
Jussi Kukkonen
7ecb67d83e api: make the zip() usage clearer
We manually enforce matching lengths but there's no harm in doing this
too.

Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2026-01-08 13:15:37 +02:00
Jussi Kukkonen
0785c78b33 Make linter happy after python upgrade
Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2026-01-08 13:08:53 +02:00
Jussi Kukkonen
8513f46c2b Bump minimum Python version to 3.10
We could just stop testing with 3.9... but I think this will lead to
unintentionally breaking 3.9 anyway sooner or later.

Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2026-01-08 13:08:47 +02:00
Jussi Kukkonen
88cc98420e lint fixes
Fixes for ruff 0.12
* Tweak some annotations
* Add __hash__() implementations to api classes: These really should be
  hashable
* My use of "super().__hash__()" is not very optimized but avoids some
  repetition

Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2025-06-24 11:02:09 +03:00
Lukas Puehringer
75e83b36d0 docs: Remove reference to securesystemslib hash
Default hash sha256 is now defined locally.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2025-03-19 11:29:36 +01:00
Lukas Puehringer
535a18918b Refactor hash helpers
Consolidate interface of bytes hash and file hash helpers.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2025-03-19 10:07:58 +01:00
Lukas Puehringer
866409ffe9 Port securesystemslib.hash module
securesystemslib.hash is a small wrapper around hashlib, which serves
two main purposes:
* provide helper function to hash a file
* translate custom hash algorithm name "blake2b-256" to "blake2b" with
  (digest_size=32).

In preparation for the removal of securesystemslib.hash, this patch ports
above behavior to tuf and uses the builtin hashlib directly where
possible.

related secure-systems-lab/securesystemslib#943

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2025-03-18 16:39:46 +01:00
Jussi Kukkonen
5b2c041da0 lint: Fixes from new ruff
The noqa comment was added manually to avoid
  A005 Module `json` shadows a Python standard-library module

Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2025-01-14 10:40:21 +02:00
Jussi Kukkonen
687d4557ad Revert "refactor to use dict union, instead of unpacking"
This reverts commit eb6d82f324.

The change itself was fine but since the code is otherwise compatible
with python 3.8, let's revert this to be compatible for one more
release.

Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2024-11-29 12:51:35 +02:00
Jussi Kukkonen
1d81a04707 Use __future.annotations module
This allows using some more nice annotations from 3.10
while still being compatible with even Python 3.8.

These are all annotation changes, should not modify any functionality.

Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2024-11-29 12:41:09 +02:00
NicholasTanz
eb6d82f324 refactor to use dict union, instead of unpacking
Signed-off-by: NicholasTanz <nicholastanzillo@gmail.com>
2024-11-03 23:30:09 -05:00
NicholasTanz
5c71f4f062 update python annotations
Signed-off-by: NicholasTanz <nicholastanzillo@gmail.com>
2024-11-03 23:21:23 -05:00
Jussi Kukkonen
80882dbe7d lint: Enable flake8-annotations
Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2024-05-06 09:19:19 +03:00
Jussi Kukkonen
7e52190bf0 lint: Enable flake8-pyi
"object" is slightly more informative than "Any" as annotation

Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2024-05-06 09:19:19 +03:00
Jussi Kukkonen
981788bca2 lint: Enable flake8-pie
Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2024-05-06 09:19:19 +03:00
E3E
52601e2bd8 add RUF and BLE rulesets; ignore some broad exceptions (BLE001) and RUF012
Signed-off-by: E3E <ntanzill@purdue.edu>
2024-04-21 01:37:40 -04:00
Lukas Pühringer
e1b52e7fd8
Merge pull request #2580 from theupdateframework/dependabot/pip/test-and-lint-dependencies-c17666fe2e
build(deps): bump the test-and-lint-dependencies group with 1 update
2024-03-12 09:40:40 +01:00
Jussi Kukkonen
27cc46f61d Metadata API: Refactor strptime call
This makes flake8-datetimez happier but has no effect on the result:

    DTZ007 The use of `datetime.datetime.strptime()` without %z must be
    followed by `.replace(tzinfo=)` or `.astimezone()

Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2024-03-08 14:59:04 +02:00
Jussi Kukkonen
884cae9660 lint: Update formatting for ruff 3.x
Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2024-03-07 10:05:36 +02:00
Jussi Kukkonen
de9633dab7 Metadata API: convenience tweak to expires setter
Practically were changing API if we start requiring that
expires is non-naive because this no longer works:

    metadata.signed.expires = datetime(3000,1,1)

We can make this work without API breaks though:
* it the input is naive, just use UTC
* if the input is not naive or UTC, raise

Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2024-02-29 15:36:54 +02:00
Jussi Kukkonen
c2edd30669 Metadata API: Make sure Signed.expires is UTC
* Most importantly use strftime() to serialize the datetime
* Force the timezone as UTC when deserializing

Signed-off-by: Jussi Kukkonen <jkukkonen@google.com>
2024-02-29 15:34:36 +02:00
Nurgaleev_Mansur_908
53ac05d5d3 change utcnow() to now(timezone.utc)
Signed-off-by: Nurgaleev_Mansur_908 <mansur0158@gmail.com>
2024-02-27 21:57:46 +03:00
Lukas Puehringer
22b2726413 Metadata API: move inner classes to internal module
Allows to simultanously use those classes in different container /
signature wrapper APIs, e.g. Metadata API and Envelope API (DSSE).

All moved classes are imported into tuf.api.metadata scope for
backwards-compatibility.

Signed-off-by: Lukas Puehringer <lukas.puehringer@nyu.edu>
2024-02-21 16:20:55 +01:00