Common keytypes collection

Open
#194 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
42/100
Issue type
Documentation
Clarity
Mostly clear
Activity status
Quiet

Research direction

Start by reviewing the existing specification-defined keytypes, the tuf-conformance project, and the proposed TAP, including the linked securesystemslib definitions. Determine where the established and candidate lists should live and how the established list would be tested; done means the lists, criteria, and conformance coverage are documented.

Written by the indexing model from the issue text.

Description

The specification actively does not require implementations to support specific keytypes, and only recommends supporting three specific keytypes. This is understandable but creates a situation where

  • understanding which keytypes are supported by which implementations is difficult: this makes integrating TUF more difficult
  • compatibility mistakes are easy to make when new keytypes are added or existing ones are modified (this has already happened several times)

There should be a list of keytypes that are either "recommended" (or in other words already commonly supported or clearly getting there), or "candidates" (keytypes that are either still experimental or have not been commonly supported yet). At least the former list should be tested in tuf-conformance. Even the former list should probably not be integrated into the spec. The lists don't need to live in a TAP either but I'm filing an issue here to say that a TAP could be a possible path forward.

Initial "Established Keytypes" proposal

As a starting point I would suggest this as the "Established Keytypes":

  • ecdsa: ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521
  • ed25519: ed25519
  • rsa: rsassa-pss-sha256, rsassa-pss-sha384, rsassa-pss-sha512, rsa-pkcs1v15-sha256, rsa-pkcs1v15-sha384, rsa-pkcs1v15-sha512

These are the spec defined keytypes with slightly expanded scheme options.

Candidate Keytypes

I'd like this list to document the keytypes that are not yet commonly supported but have potential to develop. The bar to add things to this list should be quite low -- the idea is to point other developers to already existing keytype definitions if they are considering adding new experimental ones to their implementations

  • sigstore: Fulcio
  • sphincs: sphincs-shake-128s
  • mldsa
    • No implementation exists but Sigstore project is currently evaluating PQC options
    • It's noteworthy that TUF use case would likely benefit from also having the prehashed algorithm variant (to enable signing with cloud KMS and harware keys) but those are lagging behind the pure variant
Dominant language
No language data
Stars
37
Forks
23
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from theupdateframework/taps

All issues in theupdateframework/taps

Similar issues

More Cryptography issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.