// Run starts the engine. func (e *Kex2Provisionee) Run(ctx *Context) error { e.G().Log.Debug("+ Kex2Provisionee.Run()") // check device struct: if len(e.device.Type) == 0 { return errors.New("provisionee device requires Type to be set") } if e.device.ID.IsNil() { return errors.New("provisionee device requires ID to be set") } // ctx is needed in some of the kex2 functions: e.ctx = ctx karg := kex2.KexBaseArg{ Ctx: context.TODO(), Mr: libkb.NewKexRouter(e.G()), DeviceID: e.device.ID, Secret: e.secret, SecretChannel: e.secretCh, Timeout: 5 * time.Minute, } parg := kex2.ProvisioneeArg{ KexBaseArg: karg, Provisionee: e, } err := kex2.RunProvisionee(parg) e.G().Log.Debug("- Kex2Provisionee.Run() -> %s", libkb.ErrToOk(err)) return err }
// Run starts the engine. func (e *Kex2Provisionee) Run(ctx *Context) error { // check device struct: if len(e.device.Type) == 0 { return errors.New("provisionee device requires Type to be set") } if e.device.ID.IsNil() { return errors.New("provisionee device requires ID to be set") } // ctx is needed in some of the kex2 functions: e.ctx = ctx if len(e.secret) == 0 { panic("empty secret") } karg := kex2.KexBaseArg{ Ctx: context.TODO(), Mr: libkb.NewKexRouter(e.G()), DeviceID: e.device.ID, Secret: e.secret, SecretChannel: e.secretCh, Timeout: 5 * time.Minute, } parg := kex2.ProvisioneeArg{ KexBaseArg: karg, Provisionee: e, } if err := kex2.RunProvisionee(parg); err != nil { return err } return nil }
// Run starts the engine. func (e *Kex2Provisionee) Run(ctx *Context) error { // check device struct: if len(e.device.Type) == 0 { return errors.New("provisionee device requires Type to be set") } if e.device.ID.IsNil() { return errors.New("provisionee device requires ID to be set") } // ctx is needed in some of the kex2 functions: e.ctx = ctx if e.ctx.LoginContext == nil { return errors.New("Kex2Provisionee needs LoginContext set in engine.Context") } if len(e.secret) == 0 { panic("empty secret") } var nctx context.Context nctx, e.kex2Cancel = context.WithCancel(ctx.GetNetContext()) defer e.kex2Cancel() karg := kex2.KexBaseArg{ Ctx: nctx, Mr: libkb.NewKexRouter(e.G()), DeviceID: e.device.ID, Secret: e.secret, SecretChannel: e.secretCh, Timeout: 5 * time.Minute, } parg := kex2.ProvisioneeArg{ KexBaseArg: karg, Provisionee: e, } if err := kex2.RunProvisionee(parg); err != nil { return err } return nil }