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?
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 dependenciesX25519
andEd25519
added as available algorithmsI'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:
NotSupported
errors