fix: do not panic when validating events with malformed pubkeys

This commit is contained in:
Greg Heartsfield 2022-01-29 13:19:34 -06:00
parent 6ca3e3ffea
commit 6502f7dcd7

View File

@ -148,9 +148,13 @@ impl Event {
let sig = schnorr::Signature::from_str(&self.sig).unwrap(); let sig = schnorr::Signature::from_str(&self.sig).unwrap();
if let Ok(msg) = secp256k1::Message::from_slice(digest.as_ref()) { if let Ok(msg) = secp256k1::Message::from_slice(digest.as_ref()) {
let pubkey = XOnlyPublicKey::from_str(&self.pubkey).unwrap(); if let Ok(pubkey) = XOnlyPublicKey::from_str(&self.pubkey) {
let verify = SECP.verify_schnorr(&sig, &msg, &pubkey); let verify = SECP.verify_schnorr(&sig, &msg, &pubkey);
matches!(verify, Ok(())) matches!(verify, Ok(()))
} else {
info!("Client sent malformed pubkey");
false
}
} else { } else {
warn!("Error converting digest to secp256k1 message"); warn!("Error converting digest to secp256k1 message");
false false