diff --git a/xxdk/precan.go b/xxdk/precan.go index 1144cbc40c5f061a56dc7d72b40134782209e61e..98edf51028937e17a0e555c7de1d91b60a3ff35b 100644 --- a/xxdk/precan.go +++ b/xxdk/precan.go @@ -61,9 +61,18 @@ func NewPrecannedClient(precannedID uint, defJSON, storageDir string, func (m *E2e) MakePrecannedAuthenticatedChannel(precannedID uint) ( contact.Contact, error) { - precan := m.GetReceptionIdentity().GetContact() + rng := m.GetRng().GetStream() + precanUserInfo := createPrecannedUser(precannedID, rng, m.GetStorage().GetE2EGroup()) + rng.Close() + precanRecipient, err := buildReceptionIdentity(precanUserInfo.ReceptionID, + precanUserInfo.ReceptionSalt, precanUserInfo.ReceptionRSA, + m.GetStorage().GetE2EGroup(), precanUserInfo.E2eDhPrivateKey) + if err != nil { + return contact.Contact{}, err + } + precanContact := precanRecipient.GetContact() - myID := binary.BigEndian.Uint64(m.GetStorage().GetReceptionID()[:]) + myID := binary.BigEndian.Uint64(m.GetReceptionIdentity().ID[:]) // Pick a variant based on if their ID is bigger than mine. myVariant := sidh.KeyVariantSidhA theirVariant := sidh.KeyVariant(sidh.KeyVariantSidhB) @@ -74,7 +83,7 @@ func (m *E2e) MakePrecannedAuthenticatedChannel(precannedID uint) ( prng1 := rand.New(rand.NewSource(int64(precannedID))) theirSIDHPrivKey := util.NewSIDHPrivateKey(theirVariant) theirSIDHPubKey := util.NewSIDHPublicKey(theirVariant) - err := theirSIDHPrivKey.Generate(prng1) + err = theirSIDHPrivKey.Generate(prng1) if err != nil { return contact.Contact{}, err } @@ -92,7 +101,7 @@ func (m *E2e) MakePrecannedAuthenticatedChannel(precannedID uint) ( // add the precanned user as a e2e contact // FIXME: these params need to be threaded through... sesParam := session.GetDefaultParams() - _, err = m.e2e.AddPartner(precan.ID, precan.DhPubKey, + _, err = m.e2e.AddPartner(precanContact.ID, precanContact.DhPubKey, m.e2e.GetHistoricalDHPrivkey(), theirSIDHPubKey, mySIDHPrivKey, sesParam, sesParam) @@ -100,5 +109,5 @@ func (m *E2e) MakePrecannedAuthenticatedChannel(precannedID uint) ( // the channel m.GetCmix().CheckInProgressMessages() - return precan, err + return precanContact, err }