1// Copyright 2015 Keybase, Inc. All rights reserved. Use of 2// this source code is governed by the included BSD license. 3 4package kex2 5 6import ( 7 "errors" 8 "net" 9 "time" 10 11 keybase1 "github.com/keybase/client/go/protocol/keybase1" 12 "github.com/keybase/go-framed-msgpack-rpc/rpc" 13 "golang.org/x/net/context" 14) 15 16type LogContext interface { 17 Debug(format string, args ...interface{}) 18} 19 20type baseDevice struct { 21 conn net.Conn //nolint 22 xp rpc.Transporter //nolint 23 deviceID DeviceID //nolint 24 start chan struct{} 25 canceled bool //nolint 26} 27 28// KexBaseArg are arguments common to both Provisioner and Provisionee 29type KexBaseArg struct { 30 Ctx context.Context 31 LogCtx LogContext 32 Mr MessageRouter 33 Secret Secret 34 DeviceID keybase1.DeviceID // For now, this deviceID is different from the one in the transport 35 SecretChannel <-chan Secret 36 Timeout time.Duration 37} 38 39// ErrCanceled is returned if Kex is canceled by the caller via the Context argument 40var ErrCanceled = errors.New("kex canceled by caller") 41