func NewGregorMsgID() (gregor1.MsgID, error) { r, err := libkb.RandBytes(16) // TODO: Create a shared function for this. if err != nil { return nil, err } return gregor1.MsgID(r), nil }
func TestTrackWithTokenDismissesGregor(t *testing.T) { tc := SetupEngineTest(t, "track") defer tc.Cleanup() fu := CreateAndSignupFakeUser(tc, "track") dismisser := &FakeGregorDismisser{} tc.G.GregorDismisser = dismisser msgID := gregor1.MsgID("my_random_id") responsibleGregorItem := gregor1.ItemAndMetadata{ // All we need for this test is the msgID, to check for dismissal. Md_: &gregor1.Metadata{ MsgID_: msgID, }, } idUI := &FakeIdentifyUI{} username := "******" arg := &keybase1.Identify2Arg{ UserAssertion: username, NeedProofSet: true, } ctx := &Context{ LogUI: tc.G.UI.GetLogUI(), IdentifyUI: idUI, SecretUI: fu.NewSecretUI(), } eng := NewResolveThenIdentify2(tc.G, arg) eng.SetResponsibleGregorItem(&responsibleGregorItem) if err := RunEngine(eng, ctx); err != nil { tc.T.Fatal(err) } targ := TrackTokenArg{ Token: idUI.Token, Options: keybase1.TrackOptions{BypassConfirm: true}, } teng := NewTrackToken(&targ, tc.G) if err := RunEngine(teng, ctx); err != nil { tc.T.Fatal(err) } // Check that the dismissed ID matches what we defined above. if msgID.String() != dismisser.dismissedMsgID.String() { tc.T.Fatalf("Dismissed msgID (%s) != responsible msgID (%s)", msgID.String(), dismisser.dismissedMsgID.String()) } }
func (g *gregorHandler) DismissItem(id gregor.MsgID) error { if id == nil { return nil } var err error defer g.G().Trace(fmt.Sprintf("gregorHandler.DismissItem(%s)", id.String()), func() error { return err }, )() dismissal, err := g.templateMessage() if err != nil { return err } dismissal.Ibm_.StateUpdate_.Dismissal_ = &gregor1.Dismissal{ MsgIDs_: []gregor1.MsgID{gregor1.MsgID(id.Bytes())}, } incomingClient := gregor1.IncomingClient{Cli: g.cli} // TODO: Should the interface take a context from the caller? err = incomingClient.ConsumeMessage(context.TODO(), *dismissal) return err }
func rekeyBroadcast(tc libkb.TestContext, gUID gregor1.UID, h *gregorHandler, body string) { msgID := gregor1.MsgID("my_random_id") m := gregor1.Message{ Ibm_: &gregor1.InBandMessage{ StateUpdate_: &gregor1.StateUpdateMessage{ Md_: gregor1.Metadata{ MsgID_: msgID, Ctime_: gregor1.ToTime(tc.G.Clock().Now()), Uid_: gUID, }, Creation_: &gregor1.Item{ Category_: gregor1.Category("kbfs_tlf_rekey_needed"), Body_: gregor1.Body(body), }, }, }, } if err := h.BroadcastMessage(context.Background(), m); err != nil { tc.T.Fatal(err) } }