Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transition to the newest version of TUF #561

Open
wants to merge 93 commits into
base: master
Choose a base branch
from

Conversation

renatav
Copy link
Collaborator

@renatav renatav commented Oct 29, 2024

Description (e.g. "Related to ...", etc.)

Closes #274

Also implemented/addressed:
Closes #501
Closes #555
Closes #560

Code review checklist (for code reviewer to complete)

  • Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR)
  • Title summarizes what is changing
  • Commit messages are meaningful (see this for details)
  • Tests have been included and/or updated, as appropriate
  • Docstrings have been included and/or updated, as appropriate
  • Changelog has been updated, as needed (see CHANGELOG.md)

lukpueh and others added 30 commits August 28, 2024 12:06
Remove unused pyopenssl

Signed-off-by: Lukas Puehringer <[email protected]>
Implements basic primitives, defined by the python-tuf Repository
abstraction, to read and edit metadata on disk, handling version and
expiry bumps, and signature creation, and facilitating snapshot and
timestamp creation.

And adds exemplary API methods that use these primitives while
preserving consistent repo states:
- create
- add_target_files
- add_keys

Can be tested with:
```
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 pytest --noconftest taf/tests/tuf/
```

More detailed usage docs + migration path TBD...

Signed-off-by: Lukas Puehringer <[email protected]>
The original design aimed at separating the concepts of delegation
(adding public keys) and signing (using private keys).

Since the MetadataRepository assumes that metadata can be signed
rightaway after edit (e.g. after having added a delegation), which in
turn requires private keys to be available, we might as well conflate
these two concepts.

The advantage is that the signer cache does not have to be managed
independently and is more likely to stay in sync with the delegations.

Signed-off-by: Lukas Puehringer <[email protected]>
This should really happen upstream (see linked issue)

Signed-off-by: Lukas Puehringer <[email protected]>
YkSigner provides a minimal compatibility layer over `taf.yubikey`
module functions for use with MetadataRepository.

Even though a yubikey signer implementation (HSMSigner) based on
pykcs11 is available in securesystemslib, YkSigner was added for the
following reasons:

- TAF requires rsa support for yubikeys, but HSMSigner only supports
  ecdsa. Adding rsa support to HSMSigner, or providing a custom
  pykcs11-based RSAHSMSigner is feasible, and seems desirable, but
  requires more effort than this YkSigner did.

- TAF provides a few additional features, like setting up a Yubikey,
  changing pins, etc., which will not be added to securesystemslib.
  This means the current Yubikey infrastructure based on yubikey-manager
  needs to be preserved for the time being. Thus it made sense to
  re-use the existing implementation for YkSigner.

- YkSigner show-cases the new Signer API and might be used as blue print
  for future Signer implementations in TAF.

This commit adds basic tests with fake and real Yubikey:

```
REAL_YK=1 PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 \
    pytest --noconftest  taf/tests/tuf/ taf/tests/tuf/test_yk.py -s
```

Signed-off-by: Lukas Puehringer <[email protected]>
This allows running previously added YkSigner tests, but breaks
other things, which need change anyway in the course of upgrading to
latest tuf/securesystemslib.

Signed-off-by: Lukas Puehringer <[email protected]>
Add alternative TUF metadata repo implementation (WIP)
@renatav renatav force-pushed the feature/tuf-repositoty branch from 05403cb to d3d7263 Compare November 29, 2024 11:21
@renatav renatav force-pushed the feature/tuf-repositoty branch from ebd033a to 3000095 Compare November 29, 2024 20:55
@renatav renatav force-pushed the feature/tuf-repositoty branch from 61919f0 to 385a0be Compare November 30, 2024 04:05
@renatav renatav force-pushed the feature/tuf-repositoty branch from 385a0be to ff146df Compare November 30, 2024 04:07
@renatav renatav changed the base branch from dev to master November 30, 2024 04:19
@renatav renatav changed the title Feature/tuf repositoty Transition to the newest version of TUF Nov 30, 2024
@renatav renatav self-assigned this Nov 30, 2024
@renatav renatav marked this pull request as ready for review November 30, 2024 04:50
@renatav renatav requested review from n-dusan and sale3 November 30, 2024 04:50
@renatav renatav force-pushed the feature/tuf-repositoty branch 2 times, most recently from 6ee2279 to ada9ead Compare December 4, 2024 20:52
@renatav renatav force-pushed the feature/tuf-repositoty branch from ada9ead to 6410f52 Compare December 4, 2024 21:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants