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

Support crypto agility #277

Open
3 tasks
geonnave opened this issue May 21, 2024 · 2 comments
Open
3 tasks

Support crypto agility #277

geonnave opened this issue May 21, 2024 · 2 comments

Comments

@geonnave
Copy link
Collaborator

geonnave commented May 21, 2024

Right now the library only supports Cipher Suite 2: AES-CCM-16-64-128, SHA-256, 8, P-256, ES256, AES-CCM-16-64-128, SHA-256.

We should support more cipher suites, and also enable negotiation of cipher suites.

Some background

According to the spec...

  • Implementations MUST support cipher suites 2 and 3 (note that these only differ in the size of the MAC length)

  • Cipher suites 0-3, based on AES-CCM, are intended for constrained IoT where message overhead is a very important factor:

0. AES-CCM-16-64-128, SHA-256, 8, X25519, EdDSA, AES‑CCM‑16‑64‑128, SHA-256
1. AES-CCM-16-128-128, SHA‑256, 16, X25519, EdDSA, AES‑CCM‑16‑64‑128, SHA-256
2. AES-CCM-16-64-128, SHA-256, 8, P-256, ES256, AES-CCM-16-64-128, SHA-256
3. AES-CCM-16-128-128, SHA-256, 16, P-256, ES256, AES-CCM-16-64-128, SHA-256
  • Ciphers with ChaCha/Poly:
4. ChaCha20/Poly1305, SHA-256, 16, X25519, EdDSA, ChaCha20/Poly1305, SHA-256
5. ChaCha20/Poly1305, SHA-256, 16, P-256, ES256, ChaCha20/⁠Poly1305, SHA-256

Plan

  • support cipher suite 3
  • support cipher suite negotiation
  • support cipher suite 0 and/or 1
    • NOTE: requires modifying the crypto backend to support X25519 and EdDSA
@malishav
Copy link
Contributor

I agree on the plan outlined here! We should also discuss in parallel with this how to enable support for multiple authentication methods.

@geonnave
Copy link
Collaborator Author

support for multiple authentication methods.

Tracked in #278.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants