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

Add curve 25519 support #577

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open

Conversation

dlubawy
Copy link

@dlubawy dlubawy commented Jul 17, 2024

Yubico added support for curve 25519 in the PIV applet since firmware '5.7.X'. This support has already been added to yubico-piv-tool, but it is lacking in this Rust library. This PR is an attempt to keep the libraries aligned on functionality. Changes made are as described:

  • curve25519-dalek crates added as dependencies
  • X25519 and Ed25519 added as available algorithms
  • Updated the integration tests to include an ED25519 signature check
    • Tests did not seem to work well for me (constant poisoned mutex issue) so I made some modifications but can revert these if necessary
    • Wise to double check these work as intended

I'm open to any feedback. This is my first real go at production Rust code so criticism is welcome/needed for me to learn.

Additional items to maybe consider:

  • I'm not sure how this will impact anyone using firmware older than '5.7.X'
    • Might want to add a check on that and throw NotSupported errors
    • Otherwise, take an approach where firmware version is tied to release version?

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.

1 participant