crypto: Add `impl Verifier for PublicKey`

Add `impl Verifier<Signature> for PublicKey`, to allow using the popular
trait from the `signature` crate in verification codepaths.
This commit is contained in:
Fintan Halpenny 2026-03-03 15:20:15 +00:00 committed by Lorenz Leutgeb
parent 01c60388db
commit 768ecf56ba
1 changed files with 8 additions and 0 deletions

View File

@ -174,6 +174,14 @@ impl TryFrom<String> for Signature {
)] )]
pub struct PublicKey(pub ed25519::PublicKey); pub struct PublicKey(pub ed25519::PublicKey);
impl signature::Verifier<Signature> for PublicKey {
fn verify(&self, msg: &[u8], signature: &Signature) -> Result<(), signature::Error> {
self.0
.verify(msg, signature)
.map_err(signature::Error::from_source)
}
}
#[cfg(feature = "cyphernet")] #[cfg(feature = "cyphernet")]
impl cyphernet::display::MultiDisplay<cyphernet::display::Encoding> for PublicKey { impl cyphernet::display::MultiDisplay<cyphernet::display::Encoding> for PublicKey {
type Display = String; type Display = String;