multi: add version to MuSig2 API, bump btcd/btcec to v2.3.2
With this commit we bump the github.com/btcd/btcec/v2 library to v2.3.2 which implements the MuSig2 BIP version v1.0.0rc2. With this the github.com/btcsuite/btcd/btcec/v2/schnorr/musig2 package becomes v1.0.0rc2 and the github.com/lightningnetwork/lnd/internal/musig2v040 stays at the old v0.4.0 version.
This commit is contained in:
10 files changed
+323
-39
No files matched your search
+74
-6
@@ -40,6 +40,19 @@ var (
|
||||
"CA66",
|
||||
))
|
||||
|
||||
testVector100Key1, _ = btcec.ParsePubKey(hexDecode(
|
||||
"02F9308A019258C31049344F85F89D5229B531C845836F99B08601F113BC" +
|
||||
"E036F9",
|
||||
))
|
||||
testVector100Key2, _ = btcec.ParsePubKey(hexDecode(
|
||||
"03DFF1D77F2A671C5F36183726DB2341BE58FEAE1DA2DECED843240F7B50" +
|
||||
"2BA659",
|
||||
))
|
||||
testVector100Key3, _ = btcec.ParsePubKey(hexDecode(
|
||||
"023590A94E768F8E1815C2F24B4D80A8E3149316C3518CE7B7AD338368D0" +
|
||||
"38CA66",
|
||||
))
|
||||
|
||||
bip86Tweak = &MuSig2Tweaks{TaprootBIP0086Tweak: true}
|
||||
)
|
||||
|
||||
@@ -48,6 +61,7 @@ func TestMuSig2CombineKeys(t *testing.T) {
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
version MuSig2Version
|
||||
keys []*btcec.PublicKey
|
||||
sortKeys bool
|
||||
tweak *MuSig2Tweaks
|
||||
@@ -55,16 +69,21 @@ func TestMuSig2CombineKeys(t *testing.T) {
|
||||
expectedFinalKey string
|
||||
expectedPreTweakKey string
|
||||
}{{
|
||||
name: "invalid version",
|
||||
version: 7,
|
||||
expectedErr: "unknown MuSig2 version: <7>",
|
||||
}, {
|
||||
name: "v0.4.0 two dummy keys BIP86",
|
||||
version: MuSig2Version040,
|
||||
keys: []*btcec.PublicKey{dummyPubKey1, dummyPubKey2},
|
||||
sortKeys: true,
|
||||
tweak: bip86Tweak,
|
||||
sortKeys: true, tweak: bip86Tweak,
|
||||
expectedFinalKey: "03b54fb320a8fc3589e86a1559c6aaa774fbab4e4d" +
|
||||
"9fbf31e2fd836b661ac6a132",
|
||||
expectedPreTweakKey: "0279c76a15dcf6786058a571e4022b78633e1bf" +
|
||||
"8a7a4ca440bcbbeeaea772228a2",
|
||||
}, {
|
||||
name: "v0.4.0 three dummy keys BIP86",
|
||||
name: "v0.4.0 three dummy keys BIP86",
|
||||
version: MuSig2Version040,
|
||||
keys: []*btcec.PublicKey{
|
||||
dummyPubKey1, dummyPubKey2, dummyPubKey3,
|
||||
},
|
||||
@@ -75,12 +94,13 @@ func TestMuSig2CombineKeys(t *testing.T) {
|
||||
expectedPreTweakKey: "03e615b8aad4ed10544537bc48b1d6600e15773" +
|
||||
"476a675c6cbba6808f21b1988e5",
|
||||
}, {
|
||||
name: "v0.4.0 three test vector keys BIP86",
|
||||
name: "v0.4.0 three test vector keys BIP86",
|
||||
version: MuSig2Version040,
|
||||
keys: []*btcec.PublicKey{
|
||||
testVector040Key1, testVector040Key2, testVector040Key3,
|
||||
},
|
||||
sortKeys: true,
|
||||
tweak: bip86Tweak,
|
||||
sortKeys: true,
|
||||
expectedFinalKey: "025b257b4e785d61157ef5303051f45184bd5cb47b" +
|
||||
"c4b4069ed4dd4536459cb83b",
|
||||
expectedPreTweakKey: "02d70cd69a2647f7390973df48cbfa2ccc407b8" +
|
||||
@@ -107,6 +127,54 @@ func TestMuSig2CombineKeys(t *testing.T) {
|
||||
"dfdb788b3735b76a55538179",
|
||||
expectedPreTweakKey: "03e5830140512195d74c8307e39637cbe5fb730" +
|
||||
"ebeab80ec514cf88a877ceeee0b",
|
||||
}, {
|
||||
name: "v1.0.0rc2 three dummy keys BIP86",
|
||||
version: MuSig2Version100RC2,
|
||||
keys: []*btcec.PublicKey{
|
||||
dummyPubKey1, dummyPubKey2, dummyPubKey3,
|
||||
},
|
||||
sortKeys: true,
|
||||
tweak: bip86Tweak,
|
||||
expectedFinalKey: "029d11a433e446276c88ee099cecfda1e4234dc486" +
|
||||
"49e2b07f9b159176731eb68a",
|
||||
expectedPreTweakKey: "03f0bacfef76086c519b6db216a252f1435336f" +
|
||||
"d23fc86cfb51f67056439c256d4",
|
||||
}, {
|
||||
name: "v1.0.0rc2 three test vector keys BIP86",
|
||||
version: MuSig2Version100RC2,
|
||||
keys: []*btcec.PublicKey{
|
||||
testVector100Key1, testVector100Key2, testVector100Key3,
|
||||
},
|
||||
sortKeys: false,
|
||||
tweak: bip86Tweak,
|
||||
expectedFinalKey: "03f79d14149ecd4bb74921865906a8e4f1333439a9" +
|
||||
"1b96610d72caa7495dcf2376",
|
||||
expectedPreTweakKey: "0290539eede565f5d054f32cc0c220126889ed1" +
|
||||
"e5d193baf15aef344fe59d4610c",
|
||||
}, {
|
||||
name: "v1.0.0rc2 three test vector keys BIP86 sorted",
|
||||
version: MuSig2Version100RC2,
|
||||
keys: []*btcec.PublicKey{
|
||||
testVector100Key1, testVector100Key2, testVector100Key3,
|
||||
},
|
||||
sortKeys: true,
|
||||
tweak: bip86Tweak,
|
||||
expectedFinalKey: "0379e6c3e628c9bfbce91de6b7fb28e2aec7713d37" +
|
||||
"7cf260ab599dcbc40e542312",
|
||||
expectedPreTweakKey: "03789d937bade6673538f3e28d8368dda4d0512" +
|
||||
"f94da44cf477a505716d26a1575",
|
||||
}, {
|
||||
name: "v1.0.0rc2 three test vector keys BIP86 reverse order",
|
||||
version: MuSig2Version100RC2,
|
||||
keys: []*btcec.PublicKey{
|
||||
testVector100Key3, testVector100Key2, testVector100Key1,
|
||||
},
|
||||
sortKeys: false,
|
||||
tweak: bip86Tweak,
|
||||
expectedFinalKey: "03d61d333ab8c53c330290c144f406ce0c0dc3564b" +
|
||||
"8e3dee6d1daa6288609bfc75",
|
||||
expectedPreTweakKey: "036204de8b083426dc6eaf9502d27024d53fc82" +
|
||||
"6bf7d2012148a0575435df54b2b",
|
||||
}}
|
||||
|
||||
for _, tc := range testCases {
|
||||
@@ -115,7 +183,7 @@ func TestMuSig2CombineKeys(t *testing.T) {
|
||||
tt.Parallel()
|
||||
|
||||
res, err := MuSig2CombineKeys(
|
||||
tc.keys, tc.sortKeys, tc.tweak,
|
||||
tc.version, tc.keys, tc.sortKeys, tc.tweak,
|
||||
)
|
||||
|
||||
if tc.expectedErr != "" {
|
||||
|
||||
Reference in new issue
Block a user