Skip to content

Commit

Permalink
adding taproot serialization
Browse files Browse the repository at this point in the history
  • Loading branch information
liangping committed Jun 26, 2024
1 parent 92bdda3 commit 09807ba
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions frost-core/src/signature.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 = <Self::Group as Group>::Field::serialize(signature.z());
/// Converts this signature to its byte serialization for taproot.
pub fn serialize_taproot(&self) -> Result<Vec<u8>, Error<C>> {
let R_bytes = <C::Group>::serialize(&self.R)?;
let z_bytes = <<C::Group as Group>::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())
}
}

Expand Down

0 comments on commit 09807ba

Please sign in to comment.