From ce648b7483e901376535a02b277fb357684bb4dc Mon Sep 17 00:00:00 2001 From: alessandrokonrad Date: Wed, 8 Feb 2023 10:36:26 +0100 Subject: [PATCH] Fixed schnorr and limiting it to 32 bytes messages for now --- crates/uplc/src/machine/runtime.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/uplc/src/machine/runtime.rs b/crates/uplc/src/machine/runtime.rs index 6325b24c..4ed70b22 100644 --- a/crates/uplc/src/machine/runtime.rs +++ b/crates/uplc/src/machine/runtime.rs @@ -1163,6 +1163,8 @@ fn verify_ecdsa(public_key: &[u8], message: &[u8], signature: &[u8]) -> Result Result, Error> { use secp256k1::{schnorr::Signature, Message, Secp256k1, XOnlyPublicKey}; @@ -1195,13 +1197,13 @@ fn verify_ecdsa(public_key: &[u8], message: &[u8], signature: &[u8]) -> Result Result, Error> { - use k256::schnorr::{self, signature::Verifier}; + use k256::schnorr::{self, signature::hazmat::PrehashVerifier}; let verifying_key = schnorr::VerifyingKey::from_bytes(public_key)?; let signature = schnorr::Signature::try_from(signature)?; - let valid = verifying_key.verify(message, &signature); + let valid = verifying_key.verify_prehash(message, &signature); Ok(Value::Con(Constant::Bool(valid.is_ok()).into()).into()) }