diff --git a/frost-core/src/signature.rs b/frost-core/src/signature.rs index 639bf2a3..a06ecc8e 100644 --- a/frost-core/src/signature.rs +++ b/frost-core/src/signature.rs @@ -76,14 +76,15 @@ where Ok(bytes) } - pub fn serialize_taproot(signature: &Signature) -> Self::SignatureSerialization { - let R_bytes = Self::Group::serialize(signature.R()); - let z_bytes = ::Field::serialize(signature.z()); + /// Converts this signature to its byte serialization for taproot. + pub fn serialize_taproot(&self) -> Result, Error> { + let R_bytes = ::serialize(&self.R)?; + let z_bytes = <::Field>::serialize(&self.z); let mut bytes = [0u8; 64]; - bytes[..32].copy_from_slice(&R_bytes[1..]); - bytes[32..].copy_from_slice(&z_bytes); - bytes + bytes[..32].copy_from_slice(&R_bytes.as_ref()[1..]); + bytes[32..].copy_from_slice(&z_bytes.as_ref()); + Ok(bytes.to_vec()) } }