Skip to content

Conversation

@thehoul
Copy link
Collaborator

@thehoul thehoul commented Jan 19, 2026

Remake of #3 since it was closed when it's target branch was deleted

@thehoul thehoul self-assigned this Jan 19, 2026
Comment on lines 632 to 683
func TestEncryptedDeal_Serialization(t *testing.T) {
nbV3 := 3
nbV4 := 7
nbVerifiers := nbV3 + nbV4
threshold := pedersenv3.MinimumT(nbVerifiers)

// Generate all the public/secret keys
_, publicKeys := genPubSecKeys(nbV3, nbV4)

var dealer VersionlessDealer

// Create the dealer
secret, _ := genPairV3()
dealer, _, err := genDealerV3(publicKeys, threshold, secret)
require.NoError(t, err)

// 1. dispatch deal
deals, err := dealer.(*DealerV3).EncryptedDeals()

// Encode the deals to bytes
dealsBytes := make([][]byte, len(deals))
for i, deal := range deals {
fixedDeal := FromEncryptedDeal(deal)
dealBytes, err := protobuf.Encode(fixedDeal)
require.NoError(t, err)
dealsBytes[i] = dealBytes
}

// Decode the deals to V3
for i, deal := range dealsBytes {
dealV3 := &V3EncryptedDeal{}
err := protobuf.Decode(deal, dealV3)
require.NoError(t, err)
dealOg := deals[i]
require.Equal(t, dealOg.DHKey, dealV3.DHKey)
require.Equal(t, dealOg.Nonce, dealV3.Nonce)
require.Equal(t, dealOg.Cipher, dealV3.Cipher)
require.Equal(t, dealOg.Signature, dealV3.Signature)
}

// Decode the deals to V4
for i, deal := range dealsBytes {
dealV4 := &pedersenv4.EncryptedDeal{}
err := protobuf.Decode(deal, dealV4)
require.NoError(t, err)
dealOg := deals[i]
require.Equal(t, dealOg.DHKey, dealV4.DHKey)
require.Equal(t, dealOg.Cipher, dealV4.Cipher)
require.Equal(t, dealOg.Signature, dealV4.Signature)
}

}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants