Currently there's no way to catch the error when deserializing an invalid signature, because it uses `Signature::from` that panics: https://github.com/RustCrypto/signatures/blob/e478469cece36a1275d80f644448b7cf1aae97d1/ed25519/src/lib.rs#L544-L546