From 5e6a3d2f2c374d6beb12e832f99dec8e20568ef6 Mon Sep 17 00:00:00 2001 From: Jake Taylor <jake@elixxir.io> Date: Thu, 14 Jul 2022 17:16:03 -0500 Subject: [PATCH] fix cmd idgen to properly handle existing session files --- cmd/backup.go | 27 +++++++++++---------------- cmd/init.go | 47 +++++++++++++++++++++++------------------------ cmd/precan.go | 25 ++++++++++++------------- cmd/proto.go | 26 +++++++++++++------------- 4 files changed, 59 insertions(+), 66 deletions(-) diff --git a/cmd/backup.go b/cmd/backup.go index faabf1666..7f95a2210 100644 --- a/cmd/backup.go +++ b/cmd/backup.go @@ -30,7 +30,8 @@ func loadOrInitBackup(backupPath string, backupPass string, password []byte, sto // create a new client if none exist var net *xxdk.Cmix var identity xxdk.ReceptionIdentity - if _, err := os.Stat(storeDir); errors.Is(err, fs.ErrNotExist) { + _, err := os.Stat(storeDir) + if errors.Is(err, fs.ErrNotExist) { // Initialize from scratch ndfJson, err := ioutil.ReadFile(viper.GetString("ndf")) if err != nil { @@ -73,12 +74,16 @@ func loadOrInitBackup(backupPath string, backupPass string, password []byte, sto backupIdListPath, err) } } + } + // Initialize from storage + net, err = xxdk.LoadCmix(storeDir, password, cmixParams) + if err != nil { + jww.FATAL.Panicf("%+v", err) + } - net, err = xxdk.LoadCmix(storeDir, password, cmixParams) - if err != nil { - jww.FATAL.Panicf("%+v", err) - } - + // Load or initialize xxdk.ReceptionIdentity storage + identity, err = xxdk.LoadReceptionIdentity(identityStorageKey, net) + if err != nil { identity, err = xxdk.MakeLegacyReceptionIdentity(net) if err != nil { jww.FATAL.Panicf("%+v", err) @@ -88,16 +93,6 @@ func loadOrInitBackup(backupPath string, backupPass string, password []byte, sto if err != nil { jww.FATAL.Panicf("%+v", err) } - } else { - // Initialize from storage - net, err = xxdk.LoadCmix(storeDir, password, cmixParams) - if err != nil { - jww.FATAL.Panicf("%+v", err) - } - identity, err = xxdk.LoadReceptionIdentity(identityStorageKey, net) - if err != nil { - jww.FATAL.Panicf("%+v", err) - } } messenger, err := xxdk.Login(net, authCbs, identity, e2eParams) diff --git a/cmd/init.go b/cmd/init.go index a126e95e9..13932847b 100644 --- a/cmd/init.go +++ b/cmd/init.go @@ -80,7 +80,8 @@ func loadOrInitMessenger(forceLegacy bool, password []byte, storeDir, regCode st // create a new client if none exist var net *xxdk.Cmix var identity xxdk.ReceptionIdentity - if _, err := os.Stat(storeDir); errors.Is(err, fs.ErrNotExist) { + _, err := os.Stat(storeDir) + if errors.Is(err, fs.ErrNotExist) { // Initialize from scratch ndfJson, err := ioutil.ReadFile(viper.GetString("ndf")) if err != nil { @@ -88,11 +89,20 @@ func loadOrInitMessenger(forceLegacy bool, password []byte, storeDir, regCode st } err = xxdk.NewCmix(string(ndfJson), storeDir, password, regCode) - net, err = xxdk.LoadCmix(storeDir, password, cmixParams) if err != nil { jww.FATAL.Panicf("%+v", err) } + } + + // Initialize from storage + net, err = xxdk.LoadCmix(storeDir, password, cmixParams) + if err != nil { + jww.FATAL.Panicf("%+v", err) + } + // Load or initialize xxdk.ReceptionIdentity storage + identity, err = xxdk.LoadReceptionIdentity(identityStorageKey, net) + if err != nil { if forceLegacy { jww.INFO.Printf("Forcing legacy sender") identity, err = xxdk.MakeLegacyReceptionIdentity(net) @@ -107,16 +117,6 @@ func loadOrInitMessenger(forceLegacy bool, password []byte, storeDir, regCode st if err != nil { jww.FATAL.Panicf("%+v", err) } - } else { - // Initialize from storage - net, err = xxdk.LoadCmix(storeDir, password, cmixParams) - if err != nil { - jww.FATAL.Panicf("%+v", err) - } - identity, err = xxdk.LoadReceptionIdentity(identityStorageKey, net) - if err != nil { - jww.FATAL.Panicf("%+v", err) - } } messenger, err := xxdk.Login(net, authCbs, identity, e2eParams) @@ -135,7 +135,8 @@ func loadOrInitVanity(password []byte, storeDir, regCode, userIdPrefix string, // create a new client if none exist var net *xxdk.Cmix var identity xxdk.ReceptionIdentity - if _, err := os.Stat(storeDir); errors.Is(err, fs.ErrNotExist) { + _, err := os.Stat(storeDir) + if errors.Is(err, fs.ErrNotExist) { // Initialize from scratch ndfJson, err := ioutil.ReadFile(viper.GetString("ndf")) if err != nil { @@ -144,11 +145,19 @@ func loadOrInitVanity(password []byte, storeDir, regCode, userIdPrefix string, err = xxdk.NewVanityClient(string(ndfJson), storeDir, password, regCode, userIdPrefix) - net, err = xxdk.LoadCmix(storeDir, password, cmixParams) if err != nil { jww.FATAL.Panicf("%+v", err) } + } + // Initialize from storage + net, err = xxdk.LoadCmix(storeDir, password, cmixParams) + if err != nil { + jww.FATAL.Panicf("%+v", err) + } + // Load or initialize xxdk.ReceptionIdentity storage + identity, err = xxdk.LoadReceptionIdentity(identityStorageKey, net) + if err != nil { identity, err = xxdk.MakeLegacyReceptionIdentity(net) if err != nil { jww.FATAL.Panicf("%+v", err) @@ -158,16 +167,6 @@ func loadOrInitVanity(password []byte, storeDir, regCode, userIdPrefix string, if err != nil { jww.FATAL.Panicf("%+v", err) } - } else { - // Initialize from storage - net, err = xxdk.LoadCmix(storeDir, password, cmixParams) - if err != nil { - jww.FATAL.Panicf("%+v", err) - } - identity, err = xxdk.LoadReceptionIdentity(identityStorageKey, net) - if err != nil { - jww.FATAL.Panicf("%+v", err) - } } messenger, err := xxdk.Login(net, authCbs, identity, e2eParams) diff --git a/cmd/precan.go b/cmd/precan.go index dded07723..c0b7dcb5b 100644 --- a/cmd/precan.go +++ b/cmd/precan.go @@ -30,7 +30,8 @@ func loadOrInitPrecan(precanId uint, password []byte, storeDir string, // create a new client if none exist var net *xxdk.Cmix var identity xxdk.ReceptionIdentity - if _, err := os.Stat(storeDir); errors.Is(err, fs.ErrNotExist) { + _, err := os.Stat(storeDir) + if errors.Is(err, fs.ErrNotExist) { // Initialize from scratch ndfJson, err := ioutil.ReadFile(viper.GetString("ndf")) if err != nil { @@ -38,30 +39,28 @@ func loadOrInitPrecan(precanId uint, password []byte, storeDir string, } err = xxdk.NewPrecannedClient(precanId, string(ndfJson), storeDir, password) - net, err = xxdk.LoadCmix(storeDir, password, cmixParams) if err != nil { jww.FATAL.Panicf("%+v", err) } + } + // Initialize from storage + net, err = xxdk.LoadCmix(storeDir, password, cmixParams) + if err != nil { + jww.FATAL.Panicf("%+v", err) + } + // Load or initialize xxdk.ReceptionIdentity storage + identity, err = xxdk.LoadReceptionIdentity(identityStorageKey, net) + if err != nil { identity, err = xxdk.MakeLegacyReceptionIdentity(net) if err != nil { - return nil + jww.FATAL.Panicf("%+v", err) } err = xxdk.StoreReceptionIdentity(identityStorageKey, identity, net) if err != nil { jww.FATAL.Panicf("%+v", err) } - } else { - // Initialize from storage - net, err = xxdk.LoadCmix(storeDir, password, cmixParams) - if err != nil { - jww.FATAL.Panicf("%+v", err) - } - identity, err = xxdk.LoadReceptionIdentity(identityStorageKey, net) - if err != nil { - jww.FATAL.Panicf("%+v", err) - } } messenger, err := xxdk.Login(net, authCbs, identity, e2eParams) diff --git a/cmd/proto.go b/cmd/proto.go index bdb5b0855..9fb2b9835 100644 --- a/cmd/proto.go +++ b/cmd/proto.go @@ -28,7 +28,8 @@ func loadOrInitProto(protoUserPath string, password []byte, storeDir string, // create a new client if none exist var net *xxdk.Cmix var identity xxdk.ReceptionIdentity - if _, err := os.Stat(storeDir); errors.Is(err, fs.ErrNotExist) { + _, err := os.Stat(storeDir) + if errors.Is(err, fs.ErrNotExist) { // Initialize from scratch ndfJson, err := ioutil.ReadFile(viper.GetString("ndf")) if err != nil { @@ -48,31 +49,30 @@ func loadOrInitProto(protoUserPath string, password []byte, storeDir string, err = xxdk.NewProtoClient_Unsafe(string(ndfJson), storeDir, password, protoUser) - net, err = xxdk.LoadCmix(storeDir, password, cmixParams) if err != nil { jww.FATAL.Panicf("%+v", err) } + } + // Initialize from storage + net, err = xxdk.LoadCmix(storeDir, password, cmixParams) + if err != nil { + jww.FATAL.Panicf("%+v", err) + } + // Load or initialize xxdk.ReceptionIdentity storage + identity, err = xxdk.LoadReceptionIdentity(identityStorageKey, net) + if err != nil { identity, err = xxdk.MakeLegacyReceptionIdentity(net) if err != nil { - return nil + jww.FATAL.Panicf("%+v", err) } err = xxdk.StoreReceptionIdentity(identityStorageKey, identity, net) if err != nil { jww.FATAL.Panicf("%+v", err) } - } else { - // Initialize from storage - net, err = xxdk.LoadCmix(storeDir, password, cmixParams) - if err != nil { - jww.FATAL.Panicf("%+v", err) - } - identity, err = xxdk.LoadReceptionIdentity(identityStorageKey, net) - if err != nil { - jww.FATAL.Panicf("%+v", err) - } } + messenger, err := xxdk.Login(net, authCbs, identity, e2eParams) if err != nil { jww.FATAL.Panicf("%+v", err) -- GitLab