-
Notifications
You must be signed in to change notification settings - Fork 50
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
Revise public key metadata format #308
Comments
related: #587 |
It's hard to tell when to mark this issue as resolved, but I would say that the public key metadata format has been revised. Realistically, there won't be many changes, given that past changes have been quite disruptive for users. The good news is that the implementation is way better decoupled from the public key metadata format these days, which makes all of this easier to address. I suggest to fix remaining concerns above all in docs, for which we have more reasonably scoped tickets. See inline...
done
The
The concerns about redundancy and semantic correctness of keytype/scheme pairs are still valid, however, changing the existing values is not worth the effort (see all the issues related to the ecdsa keytype change).
The exact
Private keys are now separated (
The
done
Removed from GPGKey, see |
Description of issue or feature request:
#251 discusses various consistency concerns related to securesystemslib (TUF/in-toto) cryptographic keys.
This is an attempt to carve (and flesh) out only those concerns related to the format of public keys as they appear in TUF/in-toto metadata, with the goal of a clear specification likely as part (or appendix) of the new signing-spec and its reference implementation in
securesystemslib
.Below in 'Current behavior' is an exhaustive list of available values for public keys as currently implemented in
securesystemslib
. This includes rsa, ecdsa, ed25519 and spx (WIP #169) keys generated withsecuresystemslib
, plus keys exported from a GnuPG keyring usingsecuresystemslib.gpg
or from a cryptographic token (e.g. HSM) usingsecuresystemslib.hsm
(WIP #229).Related concerns and calls for action are listed further below in 'Expected behavior'.
Current behavior:
Public key container (mandatory fields)
'keyid'
gpg
keys only)Note that 'keyid' is not part of the public key metadata format according to in-toto/TUF specifications and tuf reference implementation, but it is included in the in-toto reference implementation (see #251 PR description).
'keytype'
'scheme'
'type'
(
gpg
keys only, instead of 'keytype')'method'
(
gpg
keys only, instead of 'scheme')'hashes'
(
gpg
keys only, instead of 'scheme')'keyval'
'public'
X.509 SubjectPublicKeyInfo PEM string (RFC5280)
32 bytes ascii hex key data (RFC8032)
64 bytes key data (SPHINCS+-SHAKE256)
gpg
(RFC4880)gpg
(RFC4880)gpg
(RFC4880)'private'
(NOTE: The 'private' portion is not directly relevant for this issue, as it must not be included in TUF/in-toto metadata. For the sake of completeness we still list the private key values that are currently kept internally in
securesystemslib
).PKCS#1/TraditionalOpenSSL PEM string (RFC8017)
32 bytes ascii hex key data (RFC8032)
128 bytes key data (SPHINCS+-SHAKE256)**
Optional fields
Expected behavior:
'keyid'
Consolidate 'keytype', 'type', 'scheme', 'method', 'hashes' fields and values
'keyval'
optional fields
The text was updated successfully, but these errors were encountered: