defuse_webauthn/
ed25519.rs

1pub use defuse_crypto::{Ed25519PublicKey, Ed25519Signature};
2
3/// [COSE EdDSA (-8) algorithm](https://www.iana.org/assignments/cose/cose.xhtml#algorithms):
4/// ed25519 curve
5#[derive(Debug, Clone)]
6pub struct Ed25519;
7
8#[cfg(feature = "near-contract")]
9impl crate::Algorithm for Ed25519 {
10    type PublicKey = Ed25519PublicKey;
11    type Signature = Ed25519Signature;
12
13    #[inline]
14    fn verify(msg: &[u8], public_key: &Self::PublicKey, signature: &Self::Signature) -> bool {
15        use defuse_crypto::VerifiableCurve;
16        defuse_crypto::Ed25519::verify(&signature.0, msg, &public_key.0).is_some()
17    }
18}