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

Draft: update V5 keys, signatures, SKESK and SEIPD to the latest draft of the specification #1505

Closed
wants to merge 20 commits into from

Conversation

twiss
Copy link
Member

@twiss twiss commented Mar 3, 2022

This fixes part of #1442.

Store key flags, features and preferences in a direct-key signature
instead of user ID signatures, for V5 keys.
The AEAD Encrypted Data packet has been removed from the draft
in favor of version 2 of the Sym. Encrypted Integrity Protected
Data packet. It also has a new feature flag to match.
This flag has been removed from the draft specification.
Also, set it as the preferred AEAD algorithm.
This subpacket replaces both symmetric algorithm preferences and
AEAD algorithm preferences when AEAD is supported, by providing
sets of preferred symmetric and AEAD algorithm pairs.

We still keep the symmetric algorithm preferences in case AEAD is
not supported.
Chrome's Web Crypto implementation doesn't support it, and it
seems unnecessary to list it when AES-256 is available.
This field was removed from the draft specification.
In unencrypted v5 secret key packets, don't include the count of
the optional fields, as per the updated crypto refresh.
Since they are always absent, the count is not needed.
This has been changed in the crypto refresh.
Key flags, expiration time, algorithm preferences, et cetera, are now
read from the direct-key signature instead of the primary User ID
binding signature for V5 keys.

This also requires a direct-key signature to be present for V5 keys.
The crypto refresh says that we MUST NOT reject messages where the
CRC24 checksum is incorrect. So, we remove the check for it.

Also, remove the checksumRequired config.
The latest crypto refresh specifies an HKDF step to be used for
deriving the key to encrypt the session key with.

It also specifies two additional length fields.
@twiss twiss changed the title Draft: update V5 keys and signatures to the latest draft of the specification Draft: update V5 keys, signatures, SKESK and SEIPD to the latest draft of the specification Dec 15, 2022
@twiss
Copy link
Member Author

twiss commented Apr 3, 2023

Replaced by #1630.

@twiss twiss closed this Apr 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant