1// Copyright 2015 Keybase, Inc. All rights reserved. Use of
2// this source code is governed by the included BSD license.
3
4package engine
5
6import (
7	"sync"
8
9	"github.com/keybase/client/go/libkb"
10	keybase1 "github.com/keybase/client/go/protocol/keybase1"
11)
12
13type LoopbackIdentifyUI struct {
14	libkb.Contextified
15	sync.Mutex
16	trackBreaksP **keybase1.IdentifyTrackBreaks
17}
18
19var _ libkb.IdentifyUI = (*LoopbackIdentifyUI)(nil)
20
21func NewLoopbackIdentifyUI(g *libkb.GlobalContext, tb **keybase1.IdentifyTrackBreaks) *LoopbackIdentifyUI {
22	return &LoopbackIdentifyUI{
23		Contextified: libkb.NewContextified(g),
24		trackBreaksP: tb,
25	}
26}
27
28func (b *LoopbackIdentifyUI) Start(m libkb.MetaContext, s string, r keybase1.IdentifyReason, f bool) error {
29	return nil
30}
31
32func (b *LoopbackIdentifyUI) trackBreaks() *keybase1.IdentifyTrackBreaks {
33	if *b.trackBreaksP == nil {
34		*b.trackBreaksP = &keybase1.IdentifyTrackBreaks{}
35	}
36	return *b.trackBreaksP
37}
38
39func (b *LoopbackIdentifyUI) FinishWebProofCheck(m libkb.MetaContext, p keybase1.RemoteProof, l keybase1.LinkCheckResult) error {
40	b.Lock()
41	defer b.Unlock()
42	if l.BreaksTracking {
43		tb := b.trackBreaks()
44		tb.Proofs = append(tb.Proofs, keybase1.IdentifyProofBreak{
45			RemoteProof: p,
46			Lcr:         l,
47		})
48	}
49	return nil
50}
51
52func (b *LoopbackIdentifyUI) FinishSocialProofCheck(m libkb.MetaContext, p keybase1.RemoteProof, l keybase1.LinkCheckResult) error {
53	return b.FinishWebProofCheck(m, p, l)
54}
55
56func (b *LoopbackIdentifyUI) Confirm(m libkb.MetaContext, o *keybase1.IdentifyOutcome) (keybase1.ConfirmResult, error) {
57	return keybase1.ConfirmResult{}, nil
58}
59
60func (b *LoopbackIdentifyUI) DisplayCryptocurrency(m libkb.MetaContext, c keybase1.Cryptocurrency) error {
61	return nil
62}
63
64func (b *LoopbackIdentifyUI) DisplayStellarAccount(libkb.MetaContext, keybase1.StellarAccount) error {
65	return nil
66}
67
68func (b *LoopbackIdentifyUI) DisplayKey(m libkb.MetaContext, k keybase1.IdentifyKey) error {
69	b.Lock()
70	defer b.Unlock()
71	if k.BreaksTracking {
72		tb := b.trackBreaks()
73		tb.Keys = append(tb.Keys, k)
74	}
75	return nil
76}
77
78func (b *LoopbackIdentifyUI) ReportLastTrack(m libkb.MetaContext, s *keybase1.TrackSummary) error {
79	return nil
80}
81
82func (b *LoopbackIdentifyUI) LaunchNetworkChecks(m libkb.MetaContext, i *keybase1.Identity, u *keybase1.User) error {
83	return nil
84}
85
86func (b *LoopbackIdentifyUI) DisplayTrackStatement(m libkb.MetaContext, s string) error {
87	return nil
88}
89
90func (b *LoopbackIdentifyUI) DisplayUserCard(m libkb.MetaContext, c keybase1.UserCard) error {
91	return nil
92}
93
94func (b *LoopbackIdentifyUI) ReportTrackToken(m libkb.MetaContext, t keybase1.TrackToken) error {
95	return nil
96}
97
98func (b *LoopbackIdentifyUI) Cancel(m libkb.MetaContext) error {
99	return nil
100}
101
102func (b *LoopbackIdentifyUI) Finish(m libkb.MetaContext) error {
103	return nil
104}
105
106func (b *LoopbackIdentifyUI) DisplayTLFCreateWithInvite(m libkb.MetaContext, d keybase1.DisplayTLFCreateWithInviteArg) error {
107	return nil
108}
109
110func (b *LoopbackIdentifyUI) Dismiss(m libkb.MetaContext, s string, r keybase1.DismissReason) error {
111	return nil
112}
113