diff --git a/cmd/root.go b/cmd/root.go index 813bd9c41932a4c0a59b9f742c12fe071027f6d5..443f7042bb7b763192fdc0f84f0a3cd4d8d51aeb 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -682,7 +682,6 @@ func initE2e() *xxdk.E2e { // load the client baseClient, err := xxdk.LoadCmix(storeDir, pass, params) - if err != nil { jww.FATAL.Panicf("%+v", err) } @@ -690,9 +689,18 @@ func initE2e() *xxdk.E2e { authCbs = makeAuthCallbacks( viper.GetBool("unsafe-channel-creation")) - client, err := xxdk.Login(baseClient, authCbs, receptionIdentity) - if err != nil { - jww.FATAL.Panicf("%+v", err) + // Force LoginLegacy for precanned senderID + var client *xxdk.E2e + if isPrecanned := viper.GetUint("sendid") != 0; isPrecanned { + client, err = xxdk.LoginLegacy(baseClient, authCbs) + if err != nil { + jww.FATAL.Panicf("%+v", err) + } + } else { + client, err = xxdk.Login(baseClient, authCbs, receptionIdentity) + if err != nil { + jww.FATAL.Panicf("%+v", err) + } } if protoUser := viper.GetString("protoUserOut"); protoUser != "" { diff --git a/xxdk/identity.go b/xxdk/identity.go index 566ed4f19c2d2ba0c26676c2abcd42d81ff3fd49..46caef778129618a8a07a2ebc5ba036fc5500718 100644 --- a/xxdk/identity.go +++ b/xxdk/identity.go @@ -141,11 +141,15 @@ func (r ReceptionIdentity) DeepCopy() ReceptionIdentity { dhKeyCopy := make([]byte, len(r.DHKeyPrivate)) copy(dhKeyCopy, r.DHKeyPrivate) + + grpCopy := make([]byte, len(r.E2eGrp)) + copy(grpCopy, r.E2eGrp) return ReceptionIdentity{ ID: r.ID.DeepCopy(), RSAPrivatePem: r.RSAPrivatePem, Salt: saltCopy, DHKeyPrivate: dhKeyCopy, + E2eGrp: grpCopy, } }