Skip to content
Snippets Groups Projects
Commit 7b23b159 authored by Jake Taylor's avatar Jake Taylor
Browse files

fix precan crash

parent c43cc429
Branches
Tags
3 merge requests!510Release,!267Make BuildReceptionIdentity public, and make backup restore function return a...,!263Hotfix/refactor cmd
...@@ -61,9 +61,18 @@ func NewPrecannedClient(precannedID uint, defJSON, storageDir string, ...@@ -61,9 +61,18 @@ func NewPrecannedClient(precannedID uint, defJSON, storageDir string,
func (m *E2e) MakePrecannedAuthenticatedChannel(precannedID uint) ( func (m *E2e) MakePrecannedAuthenticatedChannel(precannedID uint) (
contact.Contact, error) { 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. // Pick a variant based on if their ID is bigger than mine.
myVariant := sidh.KeyVariantSidhA myVariant := sidh.KeyVariantSidhA
theirVariant := sidh.KeyVariant(sidh.KeyVariantSidhB) theirVariant := sidh.KeyVariant(sidh.KeyVariantSidhB)
...@@ -74,7 +83,7 @@ func (m *E2e) MakePrecannedAuthenticatedChannel(precannedID uint) ( ...@@ -74,7 +83,7 @@ func (m *E2e) MakePrecannedAuthenticatedChannel(precannedID uint) (
prng1 := rand.New(rand.NewSource(int64(precannedID))) prng1 := rand.New(rand.NewSource(int64(precannedID)))
theirSIDHPrivKey := util.NewSIDHPrivateKey(theirVariant) theirSIDHPrivKey := util.NewSIDHPrivateKey(theirVariant)
theirSIDHPubKey := util.NewSIDHPublicKey(theirVariant) theirSIDHPubKey := util.NewSIDHPublicKey(theirVariant)
err := theirSIDHPrivKey.Generate(prng1) err = theirSIDHPrivKey.Generate(prng1)
if err != nil { if err != nil {
return contact.Contact{}, err return contact.Contact{}, err
} }
...@@ -92,7 +101,7 @@ func (m *E2e) MakePrecannedAuthenticatedChannel(precannedID uint) ( ...@@ -92,7 +101,7 @@ func (m *E2e) MakePrecannedAuthenticatedChannel(precannedID uint) (
// add the precanned user as a e2e contact // add the precanned user as a e2e contact
// FIXME: these params need to be threaded through... // FIXME: these params need to be threaded through...
sesParam := session.GetDefaultParams() sesParam := session.GetDefaultParams()
_, err = m.e2e.AddPartner(precan.ID, precan.DhPubKey, _, err = m.e2e.AddPartner(precanContact.ID, precanContact.DhPubKey,
m.e2e.GetHistoricalDHPrivkey(), theirSIDHPubKey, m.e2e.GetHistoricalDHPrivkey(), theirSIDHPubKey,
mySIDHPrivKey, sesParam, sesParam) mySIDHPrivKey, sesParam, sesParam)
...@@ -100,5 +109,5 @@ func (m *E2e) MakePrecannedAuthenticatedChannel(precannedID uint) ( ...@@ -100,5 +109,5 @@ func (m *E2e) MakePrecannedAuthenticatedChannel(precannedID uint) (
// the channel // the channel
m.GetCmix().CheckInProgressMessages() m.GetCmix().CheckInProgressMessages()
return precan, err return precanContact, err
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment