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

[WIP] Add PQC support to the Proton branch #231

Draft
wants to merge 32 commits into
base: Proton
Choose a base branch
from
Draft

[WIP] Add PQC support to the Proton branch #231

wants to merge 32 commits into from

Commits on Aug 28, 2024

  1. Update GitHub workflow branches

    twiss authored and lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    29bcd2a View commit details
    Browse the repository at this point in the history
  2. Add support for automatic forwarding (#54)

    larabr authored and lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    bd59a91 View commit details
    Browse the repository at this point in the history
  3. openpgp: Add support for symmetric subkeys (#74)

    It is sometimes useful to encrypt data under some symmetric key.
    While this was possible to do using passphrase-derived keys, there was
    no support for long-term storage of the keys that was used to encrypt
    the key packets.
    
    To solve this, a new type of key is introduced. This key will hold a
    symmetric key, and will be used for both encryption and decryption of
    data. Specifically, as with asymmetric keys, the actual data will be
    encrypted using a session key, generated ad-hoc for these data.
    Then, instead of using a public key to encrypt the session key, the
    persistent symmetric key will be used instead, to produce a, so to say,
    Key Encrypted Key Packet.
    
    Conversly, instead of using a private key to decrypt the session key,
    the same symmetric key will be used. Then, the decrypted session key
    can be used to decrypt the data packet, as usual.
    
    As with the case of AEAD keys, it is sometimes useful to "sign"
    data with a persistent, symmetric key.
    
    This key holds a symmetric key, which can be used for both signing and
    verifying the integrity of data. While not strictly needed, the
    signature process will first generate a digest of the data-to-be-signed,
    and then the key will be used to sign the digest, using an HMAC
    construction.
    
    For technical reasons, related to this implenetation of the openpgp
    protocol, the secret key material is also stored in the newly defined
    public key types. Future contributors must take note of this, and not
    export or serialize that key in a way that it will be publicly availabe.
    
    Since symmetric keys do not have a public and private part, there is no
    point serializing the internal "public key" structures. Thus, symmetric
    keys are skipped when serialing the public part of a keyring.
    Mandragorian authored and lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    783ef59 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    37452a3 View commit details
    Browse the repository at this point in the history
  5. Rename branch to Proton

    wussler authored and lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    febcea6 View commit details
    Browse the repository at this point in the history
  6. Add full forwarding support

    wussler authored and lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    c2b7cfe View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    197f38d View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    c7c4f36 View commit details
    Browse the repository at this point in the history
  9. Resign keys and relax flag requirements

    wussler authored and lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    34e4fe1 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    d86ac43 View commit details
    Browse the repository at this point in the history
  11. Use fingerprints instead of KeyIDs

    wussler authored and lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    3a0e6ac View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    53b20e9 View commit details
    Browse the repository at this point in the history
  13. feat: Add forwarding to v2 api

    lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    5a964bd View commit details
    Browse the repository at this point in the history
  14. fix: Address warnings

    lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    a7a9cdc View commit details
    Browse the repository at this point in the history
  15. feat: Add symmetric keys to v2

    lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    972ccd8 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    66300b5 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    8815d5b View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    e7d584c View commit details
    Browse the repository at this point in the history
  19. Fix HMAC generation (#204)

    Generate an AEAD subkey when requesting an HMAC primary key.
    wussler authored and lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    e68b818 View commit details
    Browse the repository at this point in the history
  20. Full PQC support (+12 squashed commits)

    Squashed commits:
    Update KDF to use SHA3-256
    [5ff62f7] WIP: bump to draft-ietf-openpgp-pqc-01
    [3949477] Import CIRCL fork with ML-KEM and ML-DSA
    [5033a18] Update implementation from draft v1 to v3
    - Remove v6 binding for PQC KEMs
    - Update KDF
    - Update reference comments
    - Rename SPHINCS+ to SLH-DSA
    - Rename Dilithium to ML-DSA
    - Rename Kyber to ML-KEM
    - Add vectors generated with RNP
    - Fix misc bugs and improve tests
    [c53e2e3] Add benchmarking
    [d832873] Add read-write tests
    [8254a42] Bind PQC packets to v6
    [21f33d3] Change testdata for Kyber keys and prepare for v6 PKESK
    [fa295de] Change domain separation
    [c5bc3c1] Add SPHINCS+ signature support
    [603ced6] Add references and clean code
    [9b26049] Prefer PQ keys
    [6e5ec9c] Add hybrid Kyber + ECDH, Dilithium + EC/EdDSA support
    wussler authored and lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    d537e95 View commit details
    Browse the repository at this point in the history
  21. Adapt PQC to the v2 API

    lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    11bb422 View commit details
    Browse the repository at this point in the history
  22. Remove sphincs PQC logic

    lubux committed Aug 28, 2024
    Configuration menu
    Copy the full SHA
    bd63291 View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2024

  1. Configuration menu
    Copy the full SHA
    f8daf26 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b68ddfb View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bce1652 View commit details
    Browse the repository at this point in the history
  4. Update links to PQC draft-rfc

    lubux committed Sep 12, 2024
    Configuration menu
    Copy the full SHA
    972f2c6 View commit details
    Browse the repository at this point in the history
  5. feat: Update to latest circle version

    - Update to Fips compliant algorithms
    lubux committed Sep 12, 2024
    Configuration menu
    Copy the full SHA
    28c613e View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    820b6b5 View commit details
    Browse the repository at this point in the history

Commits on Sep 24, 2024

  1. Configuration menu
    Copy the full SHA
    a993e70 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2e3a702 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8be8c23 View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2024

  1. feat: Integrate review feedback

    lubux committed Sep 27, 2024
    Configuration menu
    Copy the full SHA
    e9782f8 View commit details
    Browse the repository at this point in the history