Skip to content

Commit c9238b9

Browse files
committed
zkp: Add Musig2 module
1 parent 4612c71 commit c9238b9

File tree

3 files changed

+1200
-0
lines changed

3 files changed

+1200
-0
lines changed

src/lib.rs

+24
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,22 @@ pub enum Error {
118118
CannotCreateWhitelistSignature,
119119
/// The given whitelist signature doesn't correctly prove inclusion in the whitelist.
120120
InvalidWhitelistProof,
121+
/// Cannot establish Musig pre-session
122+
InvalidMusigPreSession,
123+
/// Invalid tweak to Musig public key
124+
InvalidMusigTweak,
125+
/// Cannot establish a Musig session
126+
InvalidMusigSession,
127+
/// Invalid Musig public nonces
128+
CannotGenMusigNonce,
129+
/// Invalid Musig public nonce
130+
InvalidMusigPubNonce,
131+
/// Invalid Musig aggregated nonce
132+
InvalidMusigAggNonce,
133+
/// Invalid Musig partial signature
134+
InvalidMusigPartSig,
135+
/// Cannot extract Musig secret adaptor
136+
InvalidMusigExtract,
121137
}
122138

123139
// Passthrough Debug to Display, since errors should be user-visible
@@ -145,6 +161,14 @@ impl fmt::Display for Error {
145161
Error::InvalidWhitelistProof => {
146162
"given whitelist signature doesn't correctly prove inclusion in the whitelist"
147163
}
164+
Error::InvalidMusigPreSession => "failed to create Musig pre-session",
165+
Error::InvalidMusigTweak => "malformed Musig tweak",
166+
Error::InvalidMusigSession => "failed to create a Musig session",
167+
Error::CannotGenMusigNonce => "failed to create a Musig nonce pair",
168+
Error::InvalidMusigPubNonce => "malformed Musig public nonce(s)",
169+
Error::InvalidMusigAggNonce => "malformed Musig aggregated nonce",
170+
Error::InvalidMusigPartSig => "malformed Musig partial signature",
171+
Error::InvalidMusigExtract => "failed to extract Musig secret adaptor",
148172
};
149173

150174
f.write_str(str)

src/zkp/mod.rs

+4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
mod ecdsa_adaptor;
22
mod generator;
33
#[cfg(feature = "std")]
4+
mod musig;
5+
#[cfg(feature = "std")]
46
mod pedersen;
57
#[cfg(feature = "std")]
68
mod rangeproof;
@@ -12,6 +14,8 @@ mod whitelist;
1214
pub use self::ecdsa_adaptor::*;
1315
pub use self::generator::*;
1416
#[cfg(feature = "std")]
17+
pub use self::musig::*;
18+
#[cfg(feature = "std")]
1519
pub use self::pedersen::*;
1620
#[cfg(feature = "std")]
1721
pub use self::rangeproof::*;

0 commit comments

Comments
 (0)