chat

package
v2.5.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 7, 2018 License: BSD-3-Clause, BSD-3-Clause Imports: 58 Imported by: 0

Documentation

Index

Constants

View Source
const CurrentMessageBoxedVersion = chat1.MessageBoxedVersion_V2

Variables

View Source
var ActiveIntervalAfterSend = 30 * 24 * time.Hour
View Source
var ErrChatServerTimeout = errors.New("timeout calling chat server")
View Source
var ErrDuplicateConnection = errors.New("error calling chat server")
View Source
var ErrKeyServerTimeout = errors.New("timeout calling into key server")
View Source
var InitialAssumedActiveInterval = 24 * time.Hour

All devices are presumed active for the first 24 hours. See comment below.

Functions

func BackgroundContext added in v1.0.19

func BackgroundContext(sourceCtx context.Context, g *globals.Context) context.Context

func Context added in v1.0.19

func CtxAddLogTags added in v1.0.19

func CtxAddLogTags(ctx context.Context, env appTypeSource) context.Context

func CtxAddRateLimit

func CtxAddRateLimit(ctx context.Context, rl []chat1.RateLimit)

func CtxIdentifyNotifier added in v1.0.19

func CtxIdentifyNotifier(ctx context.Context) types.IdentifyNotifier

func CtxModifyIdentifyNotifier added in v1.0.42

func CtxModifyIdentifyNotifier(ctx context.Context, notifier types.IdentifyNotifier) context.Context

func CtxRateLimits

func CtxRateLimits(ctx context.Context) (res []chat1.RateLimit)

func CtxTrace added in v1.0.27

func CtxTrace(ctx context.Context) (string, bool)

func CtxUPAKFinder added in v1.0.42

func CtxUPAKFinder(ctx context.Context, g *globals.Context) types.UPAKFinder

func CurrentUID added in v1.0.27

func CurrentUID(g *globals.Context) (keybase1.UID, error)

func FindConversations added in v1.0.27

func FindConversations(ctx context.Context, g *globals.Context, debugger utils.DebugLabeler,
	useLocalData bool, ri func() chat1.RemoteInterface, uid gregor1.UID, tlfName string,
	topicType chat1.TopicType,
	membersTypeIn chat1.ConversationMembersType, vis keybase1.TLFVisibility, topicName string,
	oneChatPerTLF *bool) (res []chat1.ConversationLocal, err error)

func GetInboxQueryNameInfo added in v1.0.27

func GetInboxQueryNameInfo(ctx context.Context, g *globals.Context,
	lquery *chat1.GetInboxLocalQuery) (*types.NameInfoUntrusted, error)

func GetLastSendTime added in v1.0.39

func GetLastSendTime(ctx context.Context, g *globals.Context, log utils.DebugLabeler) time.Time

Returns the zero time if there is no recorded last send time (either because the device has never sent a message, or because it hasn't sent one since we started recording).

func GetMessages

func GetMessages(ctx context.Context, g *globals.Context, uid gregor1.UID, convID chat1.ConversationID,
	msgIDs []chat1.MessageID, resolveSupersedes bool) ([]chat1.MessageUnboxed, error)

func GetTopicNameState added in v1.0.27

func GetTopicNameState(ctx context.Context, g *globals.Context, debugger utils.DebugLabeler,
	convs []chat1.ConversationLocal,
	uid gregor1.UID, tlfID chat1.TLFID, topicType chat1.TopicType,
	membersType chat1.ConversationMembersType) (res chat1.TopicNameState, err error)

func GetUnverifiedConv added in v1.0.27

func GetUnverifiedConv(ctx context.Context, g *globals.Context, uid gregor1.UID,
	convID chat1.ConversationID, useLocalData bool) (chat1.Conversation, error)

func GetVerifiedConv

func GetVerifiedConv(ctx context.Context, g *globals.Context, uid gregor1.UID,
	convID chat1.ConversationID, useLocalData bool) (res chat1.ConversationLocal, err error)

func IdentifyMode added in v1.0.19

func IdentifyMode(ctx context.Context) (ib keybase1.TLFIdentifyBehavior, breaks *[]keybase1.TLFIdentifyFailure, ok bool)

func IdentifyModeCtx added in v1.0.22

func JoinConversation added in v1.0.27

func JoinConversation(ctx context.Context, g *globals.Context, debugger utils.DebugLabeler,
	ri func() chat1.RemoteInterface, uid gregor1.UID, convID chat1.ConversationID) (err error)

func LeaveConversation added in v1.0.27

func LeaveConversation(ctx context.Context, g *globals.Context, debugger utils.DebugLabeler,
	ri func() chat1.RemoteInterface, uid gregor1.UID, convID chat1.ConversationID) (err error)

func NewConversation added in v1.0.27

func NewConversation(ctx context.Context, g *globals.Context, uid gregor1.UID, tlfName string,
	topicName *string, topicType chat1.TopicType, membersType chat1.ConversationMembersType,
	vis keybase1.TLFVisibility, ri func() chat1.RemoteInterface) (chat1.ConversationLocal, error)

func NewConversationSource

func NewConversationSource(g *globals.Context, typ string, boxer *Boxer, storage *storage.Storage,
	ri func() chat1.RemoteInterface) types.ConversationSource

func NewInboxSource added in v1.0.19

func NewInboxSource(g *globals.Context, typ string, ri func() chat1.RemoteInterface) types.InboxSource

func PresentConversationLocalWithFetchRetry

func PresentConversationLocalWithFetchRetry(ctx context.Context, g *globals.Context,
	uid gregor1.UID, conv chat1.ConversationLocal) (res *chat1.InboxUIItem)

func PreviewConversation added in v1.0.34

func PreviewConversation(ctx context.Context, g *globals.Context, debugger utils.DebugLabeler,
	ri func() chat1.RemoteInterface, uid gregor1.UID, convID chat1.ConversationID) (err error)

func RecentConversationParticipants added in v1.0.27

func RecentConversationParticipants(ctx context.Context, g *globals.Context, myUID gregor1.UID) ([]gregor1.UID, error)

func RecordChatSend added in v1.0.39

func RecordChatSend(ctx context.Context, g *globals.Context, log utils.DebugLabeler)

func TouchFirstChatActiveQueryTime added in v1.0.39

func TouchFirstChatActiveQueryTime(ctx context.Context, g *globals.Context, log utils.DebugLabeler) time.Time

If no first query time is found in the local db, this function writes the current time.

Types

type AttachmentHTTPSrv added in v1.0.48

type AttachmentHTTPSrv struct {
	sync.Mutex
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewAttachmentHTTPSrv added in v1.0.48

func NewAttachmentHTTPSrv(g *globals.Context, fetcher types.AttachmentFetcher, ri func() chat1.RemoteInterface) *AttachmentHTTPSrv

func (*AttachmentHTTPSrv) GetAttachmentFetcher added in v1.0.48

func (r *AttachmentHTTPSrv) GetAttachmentFetcher() types.AttachmentFetcher

func (*AttachmentHTTPSrv) GetPendingPreviewURL

func (r *AttachmentHTTPSrv) GetPendingPreviewURL(ctx context.Context, outboxID chat1.OutboxID) string

func (*AttachmentHTTPSrv) GetURL added in v1.0.48

func (r *AttachmentHTTPSrv) GetURL(ctx context.Context, convID chat1.ConversationID, msgID chat1.MessageID,
	preview bool) string

func (*AttachmentHTTPSrv) Sign added in v1.0.48

func (r *AttachmentHTTPSrv) Sign(payload []byte) ([]byte, error)

Sign implements github.com/keybase/go/chat/s3.Signer interface.

type AttachmentUploadError

type AttachmentUploadError struct {
	Msg string
}

func NewAttachmentUploadError

func NewAttachmentUploadError(msg string) AttachmentUploadError

func (AttachmentUploadError) Error

func (e AttachmentUploadError) Error() string

type BackgroundConvLoader added in v1.0.27

type BackgroundConvLoader struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

func NewBackgroundConvLoader added in v1.0.27

func NewBackgroundConvLoader(g *globals.Context) *BackgroundConvLoader

func (*BackgroundConvLoader) Queue added in v1.0.27

func (*BackgroundConvLoader) Resume added in v1.0.46

func (b *BackgroundConvLoader) Resume(ctx context.Context) bool

func (*BackgroundConvLoader) Start added in v1.0.27

func (b *BackgroundConvLoader) Start(ctx context.Context, uid gregor1.UID)

func (*BackgroundConvLoader) Stop added in v1.0.27

func (b *BackgroundConvLoader) Stop(ctx context.Context) chan struct{}

func (*BackgroundConvLoader) Suspend added in v1.0.46

func (b *BackgroundConvLoader) Suspend(ctx context.Context) (canceled bool)

type BackgroundEphemeralPurger

type BackgroundEphemeralPurger struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewBackgroundEphemeralPurger

func NewBackgroundEphemeralPurger(g *globals.Context, storage *storage.Storage) *BackgroundEphemeralPurger

func (*BackgroundEphemeralPurger) Queue

func (*BackgroundEphemeralPurger) SetClock

func (b *BackgroundEphemeralPurger) SetClock(clock clockwork.Clock)

func (*BackgroundEphemeralPurger) Start

func (*BackgroundEphemeralPurger) Stop

func (b *BackgroundEphemeralPurger) Stop(ctx context.Context) chan struct{}

type BlockingLocalizer added in v1.0.19

type BlockingLocalizer struct {
	globals.Contextified
	// contains filtered or unexported fields
}

func NewBlockingLocalizer added in v1.0.19

func NewBlockingLocalizer(g *globals.Context) *BlockingLocalizer

func (*BlockingLocalizer) Localize added in v1.0.19

func (b *BlockingLocalizer) Localize(ctx context.Context, uid gregor1.UID, inbox types.Inbox) (res []chat1.ConversationLocal, err error)

func (*BlockingLocalizer) Name added in v1.0.19

func (b *BlockingLocalizer) Name() string

func (*BlockingLocalizer) SetOffline added in v1.0.19

func (b *BlockingLocalizer) SetOffline()

type BlockingSender added in v1.0.19

type BlockingSender struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewBlockingSender added in v1.0.19

func NewBlockingSender(g *globals.Context, boxer *Boxer, getRi func() chat1.RemoteInterface) *BlockingSender

func (*BlockingSender) Prepare added in v1.0.19

Prepare a message to be sent. Returns (boxedMessage, pendingAssetDeletes, error)

func (*BlockingSender) Send added in v1.0.19

func (s *BlockingSender) Send(ctx context.Context, convID chat1.ConversationID,
	msg chat1.MessagePlaintext, clientPrev chat1.MessageID, outboxID *chat1.OutboxID) (obid chat1.OutboxID, boxed *chat1.MessageBoxed, err error)

func (*BlockingSender) SetClock

func (s *BlockingSender) SetClock(clock clockwork.Clock)

func (*BlockingSender) Sign added in v1.0.19

func (s *BlockingSender) Sign(payload []byte) ([]byte, error)

Sign implements github.com/keybase/go/chat/s3.Signer interface.

type BodyHashInvalid added in v1.0.19

type BodyHashInvalid struct{}

func (BodyHashInvalid) Error added in v1.0.19

func (e BodyHashInvalid) Error() string

type Boxer

type Boxer struct {
	utils.DebugLabeler
	globals.Contextified
	// contains filtered or unexported fields
}

func NewBoxer

func NewBoxer(g *globals.Context) *Boxer

func (*Boxer) BoxMessage

func (b *Boxer) BoxMessage(ctx context.Context, msg chat1.MessagePlaintext,
	membersType chat1.ConversationMembersType,
	signingKeyPair libkb.NaclSigningKeyPair) (res *chat1.MessageBoxed, err error)

BoxMessage encrypts a keybase1.MessagePlaintext into a chat1.MessageBoxed. It finds the most recent key for the TLF.

func (*Boxer) CompareTlfNames added in v1.0.21

func (b *Boxer) CompareTlfNames(ctx context.Context, tlfName1, tlfName2 string,
	conv chat1.Conversation, tlfPublic bool) (bool, error)

func (*Boxer) SetClock added in v1.0.48

func (b *Boxer) SetClock(clock clockwork.Clock)

func (*Boxer) UnboxMessage

func (b *Boxer) UnboxMessage(ctx context.Context, boxed chat1.MessageBoxed, conv types.UnboxConversationInfo) (m chat1.MessageUnboxed, uberr UnboxingError)

UnboxMessage unboxes a chat1.MessageBoxed into a chat1.MessageUnboxed. It finds the appropriate keybase1.CryptKey, decrypts the message, and verifies several things:

  • The message's signature is valid.
  • (TODO) The signing KID was valid when the signature was made.
  • (TODO) The signing KID belongs to the sending device.
  • (TODO) The sending device belongs to the sender. [Note that we do currently check the KID -> UID relationship, independent of the device ID.]
  • (TODO) The sender has write permission in the TLF.
  • (TODO) The TLF name, public flag, and finalized info resolve to the TLF ID.
  • The conversation ID derives from the ConversationIDTriple.
  • The body hash is not a replay from another message we know about.
  • The prev pointers are consistent with other messages we know about.
  • (TODO) The prev pointers are not absurdly ancient.
  • The ClientHeader provided with the BoxedMessage matches the one we decrypt.

The first return value is unusable if the err != nil. Returns (_, err) for non-permanent errors, and (MessageUnboxedError, nil) for permanent errors. Permanent errors can be cached and must be treated as a value to deal with, whereas temporary errors are transient failures.

func (*Boxer) UnboxMessages

func (b *Boxer) UnboxMessages(ctx context.Context, boxed []chat1.MessageBoxed, conv types.UnboxConversationInfo) (unboxed []chat1.MessageUnboxed, err error)

func (*Boxer) UnboxThread

func (b *Boxer) UnboxThread(ctx context.Context, boxed chat1.ThreadViewBoxed, conv types.UnboxConversationInfo) (thread chat1.ThreadView, err error)

unboxThread transforms a chat1.ThreadViewBoxed to a keybase1.ThreadView.

func (*Boxer) ValidSenderKey added in v1.0.19

func (b *Boxer) ValidSenderKey(ctx context.Context, sender gregor1.UID, key []byte, ctime gregor1.Time) (found, validAtCTime bool, revoked *gregor1.Time, unboxErr UnboxingError)

ValidSenderKey checks that the key was active for sender at ctime. This trusts the server for ctime, so a colluding server could use a revoked key and this check erroneously pass. But (revoked != nil) if the key was ever revoked, so that is irrespective of ctime. Returns (validAtCtime, revoked, err)

type BoxingCryptKeysError added in v1.0.19

type BoxingCryptKeysError struct {
	Err error
}

func NewBoxingCryptKeysError added in v1.0.19

func NewBoxingCryptKeysError(err error) BoxingCryptKeysError

func (BoxingCryptKeysError) Error added in v1.0.19

func (e BoxingCryptKeysError) Error() string

func (BoxingCryptKeysError) Inner added in v1.0.19

func (e BoxingCryptKeysError) Inner() error

func (BoxingCryptKeysError) IsImmediateFail added in v1.0.19

func (e BoxingCryptKeysError) IsImmediateFail() (chat1.OutboxErrorType, bool)

type BoxingError added in v1.0.19

type BoxingError struct {
	Msg  string
	Perm bool
}

func NewBoxingError added in v1.0.19

func NewBoxingError(msg string, perm bool) BoxingError

func (BoxingError) Error added in v1.0.19

func (e BoxingError) Error() string

func (BoxingError) IsImmediateFail added in v1.0.19

func (e BoxingError) IsImmediateFail() (chat1.OutboxErrorType, bool)

type ByMsgID added in v1.0.19

type ByMsgID []chat1.MessageUnboxed

func (ByMsgID) Len added in v1.0.19

func (m ByMsgID) Len() int

func (ByMsgID) Less added in v1.0.19

func (m ByMsgID) Less(i, j int) bool

func (ByMsgID) Swap added in v1.0.19

func (m ByMsgID) Swap(i, j int)

type CachingAttachmentFetcher added in v1.0.48

type CachingAttachmentFetcher struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewCachingAttachmentFetcher added in v1.0.48

func NewCachingAttachmentFetcher(g *globals.Context, store attachmentRemoteStore, size int) *CachingAttachmentFetcher

func (*CachingAttachmentFetcher) DeleteAssets

func (c *CachingAttachmentFetcher) DeleteAssets(ctx context.Context,
	convID chat1.ConversationID, assets []chat1.Asset, ri func() chat1.RemoteInterface, signer s3.Signer) (err error)

func (*CachingAttachmentFetcher) FetchAttachment added in v1.0.48

func (c *CachingAttachmentFetcher) FetchAttachment(ctx context.Context, w io.Writer,
	convID chat1.ConversationID, asset chat1.Asset, ri func() chat1.RemoteInterface, signer s3.Signer,
	progress types.ProgressReporter) (err error)

func (*CachingAttachmentFetcher) IsAssetLocal

func (c *CachingAttachmentFetcher) IsAssetLocal(ctx context.Context, asset chat1.Asset) (found bool, err error)

func (*CachingAttachmentFetcher) PutUploadedAsset

func (c *CachingAttachmentFetcher) PutUploadedAsset(ctx context.Context, filename string, asset chat1.Asset) (err error)

type CachingIdentifyNotifier added in v1.0.42

type CachingIdentifyNotifier struct {
	globals.Contextified
	utils.DebugLabeler

	sync.RWMutex
	// contains filtered or unexported fields
}

func NewCachingIdentifyNotifier added in v1.0.42

func NewCachingIdentifyNotifier(g *globals.Context) *CachingIdentifyNotifier

func (*CachingIdentifyNotifier) Reset added in v1.0.42

func (i *CachingIdentifyNotifier) Reset()

func (*CachingIdentifyNotifier) ResetOnGUIConnect added in v1.0.42

func (i *CachingIdentifyNotifier) ResetOnGUIConnect()

func (*CachingIdentifyNotifier) Send added in v1.0.42

type CachingTeamChannelSource added in v1.0.34

type CachingTeamChannelSource struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

func NewCachingTeamChannelSource added in v1.0.34

func NewCachingTeamChannelSource(g *globals.Context, ri func() chat1.RemoteInterface) *CachingTeamChannelSource

func (*CachingTeamChannelSource) ChannelsChanged added in v1.0.34

func (c *CachingTeamChannelSource) ChannelsChanged(ctx context.Context, teamID chat1.TLFID)

func (*CachingTeamChannelSource) Connected added in v1.0.34

func (c *CachingTeamChannelSource) Connected(ctx context.Context)

func (*CachingTeamChannelSource) Disconnected added in v1.0.34

func (c *CachingTeamChannelSource) Disconnected(ctx context.Context)

func (*CachingTeamChannelSource) GetChannelTopicName added in v1.0.42

func (c *CachingTeamChannelSource) GetChannelTopicName(ctx context.Context, uid gregor1.UID, tlfID chat1.TLFID,
	topicType chat1.TopicType, convID chat1.ConversationID) (topicName string, err error)

func (*CachingTeamChannelSource) GetChannelsFull added in v1.0.34

func (c *CachingTeamChannelSource) GetChannelsFull(ctx context.Context, uid gregor1.UID, teamID chat1.TLFID,
	topicType chat1.TopicType) (res []chat1.ConversationLocal, err error)

func (*CachingTeamChannelSource) GetChannelsTopicName added in v1.0.34

func (c *CachingTeamChannelSource) GetChannelsTopicName(ctx context.Context, uid gregor1.UID,
	teamID chat1.TLFID, topicType chat1.TopicType) (res []chat1.ChannelNameMention, err error)

func (*CachingTeamChannelSource) IsOffline added in v1.0.34

func (c *CachingTeamChannelSource) IsOffline(ctx context.Context) bool

type CachingUPAKFinder added in v1.0.42

type CachingUPAKFinder struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewCachingUPAKFinder added in v1.0.42

func NewCachingUPAKFinder(g *globals.Context) *CachingUPAKFinder

func (*CachingUPAKFinder) CheckKIDForUID added in v1.0.42

func (u *CachingUPAKFinder) CheckKIDForUID(ctx context.Context, uid keybase1.UID, kid keybase1.KID) (found bool, revokedAt *keybase1.KeybaseTime, deleted bool, err error)

func (*CachingUPAKFinder) LookupUsernameAndDevice added in v1.0.42

func (u *CachingUPAKFinder) LookupUsernameAndDevice(ctx context.Context, uid keybase1.UID, deviceID keybase1.DeviceID) (username libkb.NormalizedUsername, deviceName string, deviceType string, err error)

type ChatThreadConsistencyError added in v1.0.19

type ChatThreadConsistencyError interface {
	error
	Code() ConsistencyErrorCode
}

func CheckPrevPointersAndGetUnpreved

func CheckPrevPointersAndGetUnpreved(thread *chat1.ThreadView) (newPrevsForRegular, newPrevsForExploding []chat1.MessagePreviousPointer, err ChatThreadConsistencyError)

Ingest a ThreadView, check several invariants, and produce a list of prev pointers to not-yet-pointed-to messages. Check several invariants at the same time: 1. No two messages have the same ID. 2. All prev pointers point to messages with lesser IDs. 3. All prev pointers to a message agree on that message's header hash. 4. For all messages we have locally, the hashes pointing to them are actually correct. TODO: All of this should happen in the cache instead of here all at once.

func NewChatThreadConsistencyError added in v1.0.19

func NewChatThreadConsistencyError(code ConsistencyErrorCode, msg string, formatArgs ...interface{}) ChatThreadConsistencyError

type ConsistencyErrorCode added in v1.0.19

type ConsistencyErrorCode int
const (
	DuplicateID ConsistencyErrorCode = iota
	OutOfOrderID
	InconsistentHash
	IncorrectHash
)

type ConversationRetry added in v1.0.27

type ConversationRetry struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewConversationRetry added in v1.0.27

func NewConversationRetry(g *globals.Context, convID chat1.ConversationID, tlfID *chat1.TLFID, kind FetchType) *ConversationRetry

func (*ConversationRetry) Fix added in v1.0.27

func (c *ConversationRetry) Fix(ctx context.Context, uid gregor1.UID) error

func (*ConversationRetry) RekeyFixable added in v1.0.31

func (c *ConversationRetry) RekeyFixable(ctx context.Context, tlfID chat1.TLFID) bool

func (*ConversationRetry) SendStale added in v1.0.27

func (c *ConversationRetry) SendStale(ctx context.Context, uid gregor1.UID)

func (*ConversationRetry) String added in v1.0.27

func (c *ConversationRetry) String() string

type Deliverer added in v1.0.19

type Deliverer struct {
	globals.Contextified
	sync.Mutex
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewDeliverer added in v1.0.19

func NewDeliverer(g *globals.Context, sender types.Sender) *Deliverer

func (*Deliverer) ActiveDeliveries

func (s *Deliverer) ActiveDeliveries(ctx context.Context) (res []chat1.ConversationID, err error)

func (*Deliverer) Connected added in v1.0.19

func (s *Deliverer) Connected(ctx context.Context)

func (*Deliverer) Disconnected added in v1.0.19

func (s *Deliverer) Disconnected(ctx context.Context)

func (*Deliverer) ForceDeliverLoop added in v1.0.19

func (s *Deliverer) ForceDeliverLoop(ctx context.Context)

func (*Deliverer) IsDelivering

func (s *Deliverer) IsDelivering() bool

func (*Deliverer) IsOffline added in v1.0.19

func (s *Deliverer) IsOffline(ctx context.Context) bool

func (*Deliverer) NextFailure

func (s *Deliverer) NextFailure() (chan []chat1.OutboxRecord, func())

func (*Deliverer) Queue added in v1.0.19

func (s *Deliverer) Queue(ctx context.Context, convID chat1.ConversationID, msg chat1.MessagePlaintext,
	outboxID *chat1.OutboxID,
	identifyBehavior keybase1.TLFIdentifyBehavior) (obr chat1.OutboxRecord, err error)

func (*Deliverer) SetClock added in v1.0.19

func (s *Deliverer) SetClock(clock clockwork.Clock)

func (*Deliverer) SetSender added in v1.0.19

func (s *Deliverer) SetSender(sender types.Sender)

func (*Deliverer) Start added in v1.0.19

func (s *Deliverer) Start(ctx context.Context, uid gregor1.UID)

func (*Deliverer) Stop added in v1.0.19

func (s *Deliverer) Stop(ctx context.Context) chan struct{}

type DelivererInfoError added in v1.0.19

type DelivererInfoError interface {
	IsImmediateFail() (chat1.OutboxErrorType, bool)
}

type DummyIdentifyNotifier added in v1.0.42

type DummyIdentifyNotifier struct{}

func (DummyIdentifyNotifier) Reset added in v1.0.42

func (d DummyIdentifyNotifier) Reset()

func (DummyIdentifyNotifier) ResetOnGUIConnect added in v1.0.42

func (d DummyIdentifyNotifier) ResetOnGUIConnect()

func (DummyIdentifyNotifier) Send added in v1.0.42

type DuplicateTopicNameError added in v1.0.27

type DuplicateTopicNameError struct {
	TopicName string
}

func (DuplicateTopicNameError) Error added in v1.0.27

func (e DuplicateTopicNameError) Error() string

type EphemeralUnboxingError

type EphemeralUnboxingError struct {
	// contains filtered or unexported fields
}

func NewEphemeralUnboxingError

func NewEphemeralUnboxingError(inner error) EphemeralUnboxingError

func (EphemeralUnboxingError) Error

func (e EphemeralUnboxingError) Error() string

func (EphemeralUnboxingError) InternalError

func (e EphemeralUnboxingError) InternalError() string

type FetchRetrier added in v1.0.22

type FetchRetrier struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

FetchRetrier is responsible for tracking any nonblock fetch failures, and retrying them automatically.

func NewFetchRetrier added in v1.0.22

func NewFetchRetrier(g *globals.Context) *FetchRetrier

func (*FetchRetrier) Connected added in v1.0.22

func (f *FetchRetrier) Connected(ctx context.Context)

Connected is called when a connection to the chat server is established, and forces a pass over the retry queue

func (*FetchRetrier) Disconnected added in v1.0.22

func (f *FetchRetrier) Disconnected(ctx context.Context)

Disconnected is called when we lose connection to the chat server, and pauses attempts on the retry queue.

func (*FetchRetrier) Failure added in v1.0.22

func (f *FetchRetrier) Failure(ctx context.Context, uid gregor1.UID, desc types.RetryDescription) (err error)

Failure indicates a failure of type kind has happened when loading a conversation.

func (*FetchRetrier) Force added in v1.0.22

func (f *FetchRetrier) Force(ctx context.Context)

Force forces a run of the retry loop.

func (*FetchRetrier) IsOffline added in v1.0.22

func (f *FetchRetrier) IsOffline(ctx context.Context) bool

IsOffline returns if the module thinks we are connected to the chat server.

func (*FetchRetrier) Rekey added in v1.0.31

func (f *FetchRetrier) Rekey(ctx context.Context, name string, membersType chat1.ConversationMembersType,
	public bool)

func (*FetchRetrier) SetClock added in v1.0.22

func (f *FetchRetrier) SetClock(clock clockwork.Clock)

SetClock sets a custom clock for testing.

func (*FetchRetrier) Start added in v1.0.22

func (f *FetchRetrier) Start(ctx context.Context, uid gregor1.UID)

func (*FetchRetrier) Stop added in v1.0.22

func (f *FetchRetrier) Stop(ctx context.Context) chan struct{}

func (*FetchRetrier) Success added in v1.0.22

func (f *FetchRetrier) Success(ctx context.Context, uid gregor1.UID, desc types.RetryDescription) (err error)

Success indicates a success of type kind loading a conversation. This effectively removes that conversation from the retry queue.

type FetchType added in v1.0.27

type FetchType int
const (
	InboxLoad FetchType = iota
	ThreadLoad
	FullInboxLoad
)

type FullInboxRetry added in v1.0.27

type FullInboxRetry struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewFullInboxRetry added in v1.0.27

func NewFullInboxRetry(g *globals.Context, query *chat1.GetInboxLocalQuery, p *chat1.Pagination) FullInboxRetry

func (FullInboxRetry) Fix added in v1.0.27

func (f FullInboxRetry) Fix(ctx context.Context, uid gregor1.UID) error

func (FullInboxRetry) RekeyFixable added in v1.0.31

func (f FullInboxRetry) RekeyFixable(ctx context.Context, tlfID chat1.TLFID) bool

func (FullInboxRetry) SendStale added in v1.0.27

func (f FullInboxRetry) SendStale(ctx context.Context, uid gregor1.UID)

func (FullInboxRetry) String added in v1.0.27

func (f FullInboxRetry) String() string

type HeaderMismatchError added in v1.0.19

type HeaderMismatchError struct {
	Field string
}

func NewHeaderMismatchError added in v1.0.19

func NewHeaderMismatchError(field string) HeaderMismatchError

func (HeaderMismatchError) Error added in v1.0.19

func (e HeaderMismatchError) Error() string

type Helper added in v1.0.34

type Helper struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewHelper added in v1.0.34

func NewHelper(g *globals.Context, ri func() chat1.RemoteInterface) *Helper

func (*Helper) AckMobileNotificationSuccess

func (h *Helper) AckMobileNotificationSuccess(ctx context.Context, pushIDs []string)

func (*Helper) FindConversations added in v1.0.40

func (h *Helper) FindConversations(ctx context.Context, useLocalData bool, name string, topicName *string,
	topicType chat1.TopicType, membersType chat1.ConversationMembersType, vis keybase1.TLFVisibility) ([]chat1.ConversationLocal, error)

func (*Helper) FindConversationsByID added in v1.0.40

func (h *Helper) FindConversationsByID(ctx context.Context, convIDs []chat1.ConversationID) ([]chat1.ConversationLocal, error)

func (*Helper) GetChannelTopicName added in v1.0.42

func (h *Helper) GetChannelTopicName(ctx context.Context, teamID keybase1.TeamID,
	topicType chat1.TopicType, convID chat1.ConversationID) (topicName string, err error)

GetChannelTopicName gets the name of a team channel even if it's not in the inbox.

func (*Helper) GetMessages added in v1.0.48

func (h *Helper) GetMessages(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID,
	msgIDs []chat1.MessageID, resolveSupersedes bool) ([]chat1.MessageUnboxed, error)

func (*Helper) SendMsgByID added in v1.0.34

func (h *Helper) SendMsgByID(ctx context.Context, convID chat1.ConversationID,
	trip chat1.ConversationIDTriple, tlfName string, body chat1.MessageBody, msgType chat1.MessageType) error

func (*Helper) SendMsgByIDNonblock added in v1.0.34

func (h *Helper) SendMsgByIDNonblock(ctx context.Context, convID chat1.ConversationID,
	trip chat1.ConversationIDTriple, tlfName string, body chat1.MessageBody, msgType chat1.MessageType) error

func (*Helper) SendMsgByName added in v1.0.34

func (h *Helper) SendMsgByName(ctx context.Context, name string, topicName *string,
	membersType chat1.ConversationMembersType, ident keybase1.TLFIdentifyBehavior, body chat1.MessageBody,
	msgType chat1.MessageType) error

func (*Helper) SendMsgByNameNonblock added in v1.0.34

func (h *Helper) SendMsgByNameNonblock(ctx context.Context, name string, topicName *string,
	membersType chat1.ConversationMembersType, ident keybase1.TLFIdentifyBehavior, body chat1.MessageBody,
	msgType chat1.MessageType) error

func (*Helper) SendTextByID added in v1.0.34

func (h *Helper) SendTextByID(ctx context.Context, convID chat1.ConversationID,
	trip chat1.ConversationIDTriple, tlfName string, text string) error

func (*Helper) SendTextByIDNonblock added in v1.0.34

func (h *Helper) SendTextByIDNonblock(ctx context.Context, convID chat1.ConversationID,
	trip chat1.ConversationIDTriple, tlfName string, text string) error

func (*Helper) SendTextByName added in v1.0.34

func (h *Helper) SendTextByName(ctx context.Context, name string, topicName *string,
	membersType chat1.ConversationMembersType, ident keybase1.TLFIdentifyBehavior, text string) error

func (*Helper) SendTextByNameNonblock added in v1.0.34

func (h *Helper) SendTextByNameNonblock(ctx context.Context, name string, topicName *string,
	membersType chat1.ConversationMembersType, ident keybase1.TLFIdentifyBehavior, text string) error

func (*Helper) UnboxMobilePushNotification

func (h *Helper) UnboxMobilePushNotification(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, membersType chat1.ConversationMembersType, payload string) (res string, err error)

func (*Helper) UpgradeKBFSToImpteam added in v1.0.46

func (h *Helper) UpgradeKBFSToImpteam(ctx context.Context, tlfName string, tlfID chat1.TLFID, public bool) (err error)

type HybridConversationSource

type HybridConversationSource struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewHybridConversationSource

func NewHybridConversationSource(g *globals.Context, b *Boxer, storage *storage.Storage,
	ri func() chat1.RemoteInterface) *HybridConversationSource

func (*HybridConversationSource) AcquireConversationLock added in v1.0.48

func (s *HybridConversationSource) AcquireConversationLock(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID) error

func (*HybridConversationSource) Clear

func (*HybridConversationSource) ClearFromDelete added in v1.0.48

func (s *HybridConversationSource) ClearFromDelete(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, deleteID chat1.MessageID) bool

ClearFromDelete clears the current cache if there is a delete that we don't know about and returns true to the caller if it schedules a background loader job

func (HybridConversationSource) DeleteAssets

func (s HybridConversationSource) DeleteAssets(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, assets []chat1.Asset)

DeleteAssets implements github.com/keybase/go/chat/storage/storage.AssetDeleter interface.

func (*HybridConversationSource) EphemeralPurge

func (s *HybridConversationSource) EphemeralPurge(ctx context.Context, convID chat1.ConversationID, uid gregor1.UID, purgeInfo *chat1.EphemeralPurgeInfo) (newPurgeInfo *chat1.EphemeralPurgeInfo, explodedMsgs []chat1.MessageUnboxed, err error)

func (*HybridConversationSource) Expunge added in v1.0.43

func (s *HybridConversationSource) Expunge(ctx context.Context,
	convID chat1.ConversationID, uid gregor1.UID, expunge chat1.Expunge) (err error)

Expunge from storage and maybe notify the gui of staleness

func (*HybridConversationSource) GetMessages added in v1.0.19

func (*HybridConversationSource) GetMessagesWithRemotes added in v1.0.19

func (s *HybridConversationSource) GetMessagesWithRemotes(ctx context.Context,
	conv chat1.Conversation, uid gregor1.UID, msgs []chat1.MessageBoxed) ([]chat1.MessageUnboxed, error)

func (*HybridConversationSource) Pull

func (*HybridConversationSource) PullLocalOnly added in v1.0.19

func (s *HybridConversationSource) PullLocalOnly(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, query *chat1.GetThreadQuery, pagination *chat1.Pagination, maxPlaceholders int) (tv chat1.ThreadView, err error)

func (*HybridConversationSource) Push

func (s *HybridConversationSource) Push(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, msg chat1.MessageBoxed) (decmsg chat1.MessageUnboxed, continuousUpdate bool, err error)

func (*HybridConversationSource) PushUnboxed added in v1.0.48

func (s *HybridConversationSource) PushUnboxed(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, msg chat1.MessageUnboxed) (continuousUpdate bool, err error)

func (*HybridConversationSource) ReleaseConversationLock added in v1.0.48

func (s *HybridConversationSource) ReleaseConversationLock(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID)

func (HybridConversationSource) SetRemoteInterface added in v1.0.19

func (s HybridConversationSource) SetRemoteInterface(ri func() chat1.RemoteInterface)

func (HybridConversationSource) Sign

func (s HybridConversationSource) Sign(payload []byte) ([]byte, error)

Sign implements github.com/keybase/go/chat/s3.Signer interface.

func (HybridConversationSource) TransformSupersedes added in v1.0.19

func (s HybridConversationSource) TransformSupersedes(ctx context.Context,
	unboxInfo types.UnboxConversationInfo, uid gregor1.UID, msgs []chat1.MessageUnboxed) ([]chat1.MessageUnboxed, error)

type HybridInboxSource added in v1.0.19

type HybridInboxSource struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewHybridInboxSource added in v1.0.19

func NewHybridInboxSource(g *globals.Context,
	getChatInterface func() chat1.RemoteInterface) *HybridInboxSource

func (HybridInboxSource) Connected added in v1.0.19

func (s HybridInboxSource) Connected(ctx context.Context)

func (HybridInboxSource) Disconnected added in v1.0.19

func (s HybridInboxSource) Disconnected(ctx context.Context)

func (*HybridInboxSource) Expunge added in v1.0.43

func (HybridInboxSource) GetInboxQueryLocalToRemote added in v1.0.27

func (b HybridInboxSource) GetInboxQueryLocalToRemote(ctx context.Context,
	lquery *chat1.GetInboxLocalQuery) (rquery *chat1.GetInboxQuery, info *types.NameInfoUntrusted, err error)

func (HybridInboxSource) IsMember added in v1.0.27

func (b HybridInboxSource) IsMember(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID) (bool, error)

func (HybridInboxSource) IsOffline added in v1.0.19

func (s HybridInboxSource) IsOffline(ctx context.Context) bool

func (*HybridInboxSource) MembershipUpdate added in v1.0.27

func (s *HybridInboxSource) MembershipUpdate(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	joined []chat1.ConversationMember, removed []chat1.ConversationMember, resets []chat1.ConversationMember,
	previews []chat1.ConversationID) (res types.MembershipUpdateRes, err error)

func (*HybridInboxSource) NewConversation added in v1.0.19

func (s *HybridInboxSource) NewConversation(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	conv chat1.Conversation) (err error)

func (*HybridInboxSource) NewMessage added in v1.0.19

func (*HybridInboxSource) Read added in v1.0.19

func (s *HybridInboxSource) Read(ctx context.Context, uid gregor1.UID,
	localizer types.ChatLocalizer, useLocalData bool, query *chat1.GetInboxLocalQuery,
	p *chat1.Pagination) (inbox types.Inbox, err error)

func (*HybridInboxSource) ReadMessage added in v1.0.19

func (s *HybridInboxSource) ReadMessage(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convID chat1.ConversationID, msgID chat1.MessageID) (conv *chat1.ConversationLocal, err error)

func (*HybridInboxSource) ReadUnverified added in v1.0.19

func (s *HybridInboxSource) ReadUnverified(ctx context.Context, uid gregor1.UID, useLocalData bool,
	query *chat1.GetInboxQuery, p *chat1.Pagination) (res types.Inbox, err error)

func (*HybridInboxSource) SetAppNotificationSettings added in v1.0.27

func (s *HybridInboxSource) SetAppNotificationSettings(ctx context.Context, uid gregor1.UID,
	vers chat1.InboxVers, convID chat1.ConversationID, settings chat1.ConversationNotificationInfo) (conv *chat1.ConversationLocal, err error)

func (*HybridInboxSource) SetConvRetention added in v1.0.41

func (s *HybridInboxSource) SetConvRetention(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convID chat1.ConversationID, policy chat1.RetentionPolicy) (res *chat1.ConversationLocal, err error)

func (*HybridInboxSource) SetConvSettings

func (s *HybridInboxSource) SetConvSettings(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convID chat1.ConversationID, convSettings *chat1.ConversationSettings) (res *chat1.ConversationLocal, err error)

func (HybridInboxSource) SetRemoteInterface added in v1.0.19

func (b HybridInboxSource) SetRemoteInterface(ri func() chat1.RemoteInterface)

func (*HybridInboxSource) SetStatus added in v1.0.19

func (*HybridInboxSource) SetTeamRetention added in v1.0.41

func (s *HybridInboxSource) SetTeamRetention(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	teamID keybase1.TeamID, policy chat1.RetentionPolicy) (convs []chat1.ConversationLocal, err error)

func (*HybridInboxSource) TeamTypeChanged added in v1.0.30

func (s *HybridInboxSource) TeamTypeChanged(ctx context.Context, uid gregor1.UID,
	vers chat1.InboxVers, convID chat1.ConversationID, teamType chat1.TeamType) (conv *chat1.ConversationLocal, err error)

func (*HybridInboxSource) TlfFinalize added in v1.0.19

func (s *HybridInboxSource) TlfFinalize(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convIDs []chat1.ConversationID, finalizeInfo chat1.ConversationFinalizeInfo) (convs []chat1.ConversationLocal, err error)

func (*HybridInboxSource) UpgradeKBFSToImpteam added in v1.0.41

func (s *HybridInboxSource) UpgradeKBFSToImpteam(ctx context.Context, uid gregor1.UID,
	vers chat1.InboxVers, convID chat1.ConversationID) (conv *chat1.ConversationLocal, err error)

type IdentifyChangedHandler added in v1.0.19

type IdentifyChangedHandler struct {
	globals.Contextified
	utils.DebugLabeler
}

func NewIdentifyChangedHandler added in v1.0.19

func NewIdentifyChangedHandler(g *globals.Context) *IdentifyChangedHandler

func (*IdentifyChangedHandler) BackgroundIdentifyChanged added in v1.0.19

func (h *IdentifyChangedHandler) BackgroundIdentifyChanged(ctx context.Context, job engine.IdentifyJob)

func (*IdentifyChangedHandler) HandleUserChanged added in v1.0.19

func (h *IdentifyChangedHandler) HandleUserChanged(uid keybase1.UID) (err error)

type ImplicitTeamsNameInfoSource added in v1.0.29

type ImplicitTeamsNameInfoSource struct {
	globals.Contextified
	utils.DebugLabeler
	*NameIdentifier
	// contains filtered or unexported fields
}

func NewImplicitTeamsNameInfoSource added in v1.0.29

func NewImplicitTeamsNameInfoSource(g *globals.Context, lookupUpgraded bool) *ImplicitTeamsNameInfoSource

func (*ImplicitTeamsNameInfoSource) DecryptionKeys added in v1.0.42

func (t *ImplicitTeamsNameInfoSource) DecryptionKeys(ctx context.Context, name string, teamID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool,
	keyGeneration int, kbfsEncrypted bool) (res *types.NameInfo, err error)

func (*ImplicitTeamsNameInfoSource) EncryptionKeys added in v1.0.42

func (t *ImplicitTeamsNameInfoSource) EncryptionKeys(ctx context.Context, name string, teamID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (res *types.NameInfo, err error)

func (*ImplicitTeamsNameInfoSource) EphemeralDecryptionKey added in v1.0.48

func (t *ImplicitTeamsNameInfoSource) EphemeralDecryptionKey(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool,
	generation keybase1.EkGeneration) (teamEK keybase1.TeamEk, err error)

func (*ImplicitTeamsNameInfoSource) EphemeralEncryptionKey added in v1.0.48

func (t *ImplicitTeamsNameInfoSource) EphemeralEncryptionKey(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (teamEK keybase1.TeamEk, err error)

func (*ImplicitTeamsNameInfoSource) Lookup added in v1.0.29

func (t *ImplicitTeamsNameInfoSource) Lookup(ctx context.Context, name string, public bool) (res *types.NameInfo, err error)

func (*ImplicitTeamsNameInfoSource) LookupUntrusted

func (t *ImplicitTeamsNameInfoSource) LookupUntrusted(ctx context.Context, name string, public bool) (res *types.NameInfoUntrusted, err error)

func (*ImplicitTeamsNameInfoSource) ShouldPairwiseMAC

func (t *ImplicitTeamsNameInfoSource) ShouldPairwiseMAC(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (bool, []keybase1.KID, error)

type ImpteamUpgradeBadteamError added in v1.0.46

type ImpteamUpgradeBadteamError struct {
	Msg string
}

func (ImpteamUpgradeBadteamError) Error added in v1.0.46

type InternalError

type InternalError interface {
	// verbose error info for debugging but not user display
	InternalError() string
}

type InvalidMACError

type InvalidMACError struct{}

func NewInvalidMACError

func NewInvalidMACError() InvalidMACError

func (InvalidMACError) Error

func (e InvalidMACError) Error() string

type KBFSNameInfoSource added in v1.0.27

type KBFSNameInfoSource struct {
	globals.Contextified
	utils.DebugLabeler
	*NameIdentifier
}

func NewKBFSNameInfoSource added in v1.0.27

func NewKBFSNameInfoSource(g *globals.Context) *KBFSNameInfoSource

func (*KBFSNameInfoSource) CompleteAndCanonicalizePrivateTlfName added in v1.0.27

func (t *KBFSNameInfoSource) CompleteAndCanonicalizePrivateTlfName(ctx context.Context, tlfName string) (res keybase1.CanonicalTLFNameAndIDWithBreaks, err error)

func (*KBFSNameInfoSource) CryptKeys added in v1.0.27

func (t *KBFSNameInfoSource) CryptKeys(ctx context.Context, tlfName string) (res keybase1.GetTLFCryptKeysRes, ferr error)

func (*KBFSNameInfoSource) DecryptionKeys added in v1.0.42

func (t *KBFSNameInfoSource) DecryptionKeys(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool,
	keyGeneration int, kbfsEncrypted bool) (*types.NameInfo, error)

func (*KBFSNameInfoSource) EncryptionKeys added in v1.0.42

func (t *KBFSNameInfoSource) EncryptionKeys(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (*types.NameInfo, error)

func (*KBFSNameInfoSource) EphemeralDecryptionKey added in v1.0.48

func (t *KBFSNameInfoSource) EphemeralDecryptionKey(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool,
	generation keybase1.EkGeneration) (teamEK keybase1.TeamEk, err error)

func (*KBFSNameInfoSource) EphemeralEncryptionKey added in v1.0.48

func (t *KBFSNameInfoSource) EphemeralEncryptionKey(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (teamEK keybase1.TeamEk, err error)

func (*KBFSNameInfoSource) Lookup added in v1.0.27

func (t *KBFSNameInfoSource) Lookup(ctx context.Context, tlfName string, public bool) (res *types.NameInfo, err error)

func (*KBFSNameInfoSource) LookupUntrusted

func (t *KBFSNameInfoSource) LookupUntrusted(ctx context.Context, name string, public bool) (res *types.NameInfoUntrusted, err error)

func (*KBFSNameInfoSource) PublicCanonicalTLFNameAndID added in v1.0.27

func (t *KBFSNameInfoSource) PublicCanonicalTLFNameAndID(ctx context.Context, tlfName string) (res keybase1.CanonicalTLFNameAndIDWithBreaks, ferr error)

func (*KBFSNameInfoSource) ShouldPairwiseMAC

func (t *KBFSNameInfoSource) ShouldPairwiseMAC(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (bool, []keybase1.KID, error)

type KeyFinder

type KeyFinder interface {
	FindUntrusted(ctx context.Context, name string, membersType chat1.ConversationMembersType, public bool) (*types.NameInfoUntrusted, error)
	Find(ctx context.Context, name string, membersType chat1.ConversationMembersType, public bool) (*types.NameInfo, error)
	FindForEncryption(ctx context.Context, tlfName string, teamID chat1.TLFID,
		membersType chat1.ConversationMembersType, public bool) (*types.NameInfo, error)
	FindForDecryption(ctx context.Context, tlfName string, teamID chat1.TLFID,
		membersType chat1.ConversationMembersType, public bool, keyGeneration int,
		kbfsEncrypted bool) (*types.NameInfo, error)
	EphemeralKeyForEncryption(ctx context.Context, tlfName string, teamID chat1.TLFID,
		membersType chat1.ConversationMembersType, public bool) (keybase1.TeamEk, error)
	EphemeralKeyForDecryption(ctx context.Context, tlfName string, teamID chat1.TLFID,
		membersType chat1.ConversationMembersType, public bool, generation keybase1.EkGeneration) (keybase1.TeamEk, error)
	ShouldPairwiseMAC(ctx context.Context, tlfName string, teamID chat1.TLFID,
		membersType chat1.ConversationMembersType, public bool) (bool, []keybase1.KID, error)
	Reset()
	SetNameInfoSourceOverride(types.NameInfoSource)
}

KeyFinder remembers results from previous calls to CryptKeys().

func CtxKeyFinder added in v1.0.19

func CtxKeyFinder(ctx context.Context, g *globals.Context) KeyFinder

func NewKeyFinder

func NewKeyFinder(g *globals.Context) KeyFinder

NewKeyFinder creates a KeyFinder.

type KeyFinderImpl

type KeyFinderImpl struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

func (*KeyFinderImpl) EphemeralKeyForDecryption added in v1.0.48

func (k *KeyFinderImpl) EphemeralKeyForDecryption(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, generation keybase1.EkGeneration) (keybase1.TeamEk, error)

func (*KeyFinderImpl) EphemeralKeyForEncryption added in v1.0.48

func (k *KeyFinderImpl) EphemeralKeyForEncryption(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (ek keybase1.TeamEk, err error)

func (*KeyFinderImpl) Find

func (k *KeyFinderImpl) Find(ctx context.Context, name string,
	membersType chat1.ConversationMembersType, public bool) (res *types.NameInfo, err error)

Find finds keybase1.TLFCryptKeys for tlfName, checking for existing results.

func (*KeyFinderImpl) FindForDecryption added in v1.0.27

func (k *KeyFinderImpl) FindForDecryption(ctx context.Context,
	tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool,
	keyGeneration int, kbfsEncrypted bool) (res *types.NameInfo, err error)

FindForDecryption ignores tlfName or teamID based on membersType.

func (*KeyFinderImpl) FindForEncryption added in v1.0.27

func (k *KeyFinderImpl) FindForEncryption(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (res *types.NameInfo, err error)

FindForEncryption finds keys up-to-date enough for encrypting. Ignores tlfName or teamID based on membersType.

func (*KeyFinderImpl) FindUntrusted

func (k *KeyFinderImpl) FindUntrusted(ctx context.Context, name string, membersType chat1.ConversationMembersType,
	public bool) (res *types.NameInfoUntrusted, err error)

func (*KeyFinderImpl) Reset added in v1.0.42

func (k *KeyFinderImpl) Reset()

func (*KeyFinderImpl) SetNameInfoSourceOverride added in v1.0.27

func (k *KeyFinderImpl) SetNameInfoSourceOverride(ni types.NameInfoSource)

func (*KeyFinderImpl) ShouldPairwiseMAC

func (k *KeyFinderImpl) ShouldPairwiseMAC(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (bool, []keybase1.KID, error)

type NameIdentifier added in v1.0.29

type NameIdentifier struct {
	globals.Contextified
	utils.DebugLabeler
}

func NewNameIdentifier added in v1.0.29

func NewNameIdentifier(g *globals.Context) *NameIdentifier

func (*NameIdentifier) Identify added in v1.0.29

func (t *NameIdentifier) Identify(ctx context.Context, names []string, private bool,
	getTLFID func() keybase1.TLFID, getCanonicalName func() keybase1.CanonicalTlfName) (res []keybase1.TLFIdentifyFailure, err error)

type NonblockInboxResult added in v1.0.19

type NonblockInboxResult struct {
	Conv     chat1.Conversation
	Err      *chat1.ConversationErrorLocal
	ConvRes  *chat1.ConversationLocal
	InboxRes *types.Inbox
}

type NonblockingLocalizer added in v1.0.19

type NonblockingLocalizer struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewNonblockingLocalizer added in v1.0.19

func NewNonblockingLocalizer(g *globals.Context, localizeCb chan NonblockInboxResult,
	maxUnbox *int) *NonblockingLocalizer

func (*NonblockingLocalizer) Localize added in v1.0.19

func (b *NonblockingLocalizer) Localize(ctx context.Context, uid gregor1.UID, inbox types.Inbox) (res []chat1.ConversationLocal, err error)

func (*NonblockingLocalizer) Name added in v1.0.19

func (b *NonblockingLocalizer) Name() string

func (*NonblockingLocalizer) SetOffline added in v1.0.19

func (b *NonblockingLocalizer) SetOffline()

type NonblockingSender added in v1.0.19

type NonblockingSender struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewNonblockingSender added in v1.0.19

func NewNonblockingSender(g *globals.Context, sender types.Sender) *NonblockingSender

func (*NonblockingSender) Prepare added in v1.0.19

func (*NonblockingSender) Send added in v1.0.19

type NotAuthenticatedForThisDeviceError

type NotAuthenticatedForThisDeviceError struct{}

func NewNotAuthenticatedForThisDeviceError

func NewNotAuthenticatedForThisDeviceError() NotAuthenticatedForThisDeviceError

func (NotAuthenticatedForThisDeviceError) Error

type NotifyRouterActivityRouter

type NotifyRouterActivityRouter struct {
	utils.DebugLabeler
	globals.Contextified
	sync.Mutex
	// contains filtered or unexported fields
}

func NewNotifyRouterActivityRouter

func NewNotifyRouterActivityRouter(g *globals.Context) *NotifyRouterActivityRouter

func (*NotifyRouterActivityRouter) Activity

func (n *NotifyRouterActivityRouter) Activity(ctx context.Context, uid gregor1.UID, topicType chat1.TopicType,
	activity *chat1.ChatActivity, source chat1.ChatActivitySource)

func (*NotifyRouterActivityRouter) AttachmentUploadProgress

func (n *NotifyRouterActivityRouter) AttachmentUploadProgress(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, outboxID chat1.OutboxID, bytesComplete, bytesTotal int64)

func (*NotifyRouterActivityRouter) AttachmentUploadStart

func (n *NotifyRouterActivityRouter) AttachmentUploadStart(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, outboxID chat1.OutboxID)

func (*NotifyRouterActivityRouter) InboxStale

func (n *NotifyRouterActivityRouter) InboxStale(ctx context.Context, uid gregor1.UID)

func (*NotifyRouterActivityRouter) InboxSyncStarted

func (n *NotifyRouterActivityRouter) InboxSyncStarted(ctx context.Context, uid gregor1.UID)

func (*NotifyRouterActivityRouter) InboxSynced

func (n *NotifyRouterActivityRouter) InboxSynced(ctx context.Context, uid gregor1.UID, topicType chat1.TopicType, syncRes chat1.ChatSyncResult)

func (*NotifyRouterActivityRouter) JoinedConversation

func (n *NotifyRouterActivityRouter) JoinedConversation(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID, topicType chat1.TopicType, conv *chat1.InboxUIItem)

func (*NotifyRouterActivityRouter) KBFSToImpteamUpgrade

func (n *NotifyRouterActivityRouter) KBFSToImpteamUpgrade(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID, topicType chat1.TopicType)

func (*NotifyRouterActivityRouter) LeftConversation

func (n *NotifyRouterActivityRouter) LeftConversation(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID, topicType chat1.TopicType)

func (*NotifyRouterActivityRouter) ResetConversation

func (n *NotifyRouterActivityRouter) ResetConversation(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID, topicType chat1.TopicType)

func (*NotifyRouterActivityRouter) SetConvRetention

func (n *NotifyRouterActivityRouter) SetConvRetention(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID, topicType chat1.TopicType, conv *chat1.InboxUIItem)

func (*NotifyRouterActivityRouter) SetConvSettings

func (n *NotifyRouterActivityRouter) SetConvSettings(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID, topicType chat1.TopicType, conv *chat1.InboxUIItem)

func (*NotifyRouterActivityRouter) SetTeamRetention

func (n *NotifyRouterActivityRouter) SetTeamRetention(ctx context.Context, uid gregor1.UID, teamID keybase1.TeamID, topicType chat1.TopicType, convs []chat1.InboxUIItem)

func (*NotifyRouterActivityRouter) TLFFinalize

func (n *NotifyRouterActivityRouter) TLFFinalize(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID, topicType chat1.TopicType, finalizeInfo chat1.ConversationFinalizeInfo, conv *chat1.InboxUIItem)

func (*NotifyRouterActivityRouter) TLFResolve

func (n *NotifyRouterActivityRouter) TLFResolve(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID, topicType chat1.TopicType, resolveInfo chat1.ConversationResolveInfo)

func (*NotifyRouterActivityRouter) ThreadsStale

func (n *NotifyRouterActivityRouter) ThreadsStale(ctx context.Context, uid gregor1.UID, updates []chat1.ConversationStaleUpdate)

func (*NotifyRouterActivityRouter) TypingUpdate

func (n *NotifyRouterActivityRouter) TypingUpdate(ctx context.Context, updates []chat1.ConvTypingUpdate)

type OfflineClient added in v1.0.27

type OfflineClient struct {
}

func (OfflineClient) Call added in v1.0.27

func (e OfflineClient) Call(ctx context.Context, method string, arg interface{}, res interface{}) error

func (OfflineClient) Notify added in v1.0.27

func (e OfflineClient) Notify(ctx context.Context, method string, arg interface{}) error

type OfflineError added in v1.0.19

type OfflineError struct {
}

func (OfflineError) Error added in v1.0.19

func (e OfflineError) Error() string

type OfflineErrorKind added in v1.0.46

type OfflineErrorKind int
const (
	OfflineErrorKindOnline OfflineErrorKind = iota
	OfflineErrorKindOfflineBasic
	OfflineErrorKindOfflineReconnect
)

func IsOfflineError added in v1.0.46

func IsOfflineError(err error) OfflineErrorKind

type PermanentUnboxingError added in v1.0.19

type PermanentUnboxingError struct {
	// contains filtered or unexported fields
}

func (PermanentUnboxingError) Error added in v1.0.19

func (e PermanentUnboxingError) Error() string

func (PermanentUnboxingError) ExportType added in v1.0.19

func (PermanentUnboxingError) Inner added in v1.0.19

func (e PermanentUnboxingError) Inner() error

func (PermanentUnboxingError) InternalError

func (e PermanentUnboxingError) InternalError() string

func (PermanentUnboxingError) IsCritical

func (e PermanentUnboxingError) IsCritical() bool

func (PermanentUnboxingError) IsPermanent added in v1.0.19

func (e PermanentUnboxingError) IsPermanent() bool

func (PermanentUnboxingError) VersionKind

func (e PermanentUnboxingError) VersionKind() chat1.VersionKind

func (PermanentUnboxingError) VersionNumber

func (e PermanentUnboxingError) VersionNumber() int

type PublicTeamEphemeralKeyError

type PublicTeamEphemeralKeyError struct{}

func NewPublicTeamEphemeralKeyError

func NewPublicTeamEphemeralKeyError() PublicTeamEphemeralKeyError

func (PublicTeamEphemeralKeyError) Error

type PushHandler added in v1.0.19

type PushHandler struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

func NewPushHandler added in v1.0.19

func NewPushHandler(g *globals.Context) *PushHandler

func (*PushHandler) Activity added in v1.0.19

func (g *PushHandler) Activity(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) HandleOobm added in v1.0.27

func (g *PushHandler) HandleOobm(ctx context.Context, obm gregor.OutOfBandMessage) (bool, error)

func (*PushHandler) MembershipUpdate added in v1.0.27

func (g *PushHandler) MembershipUpdate(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) SetBadger added in v1.0.27

func (g *PushHandler) SetBadger(badger *badges.Badger)

func (*PushHandler) SetClock added in v1.0.27

func (g *PushHandler) SetClock(clock clockwork.Clock)

func (*PushHandler) SetConvRetention added in v1.0.41

func (g *PushHandler) SetConvRetention(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) SetConvSettings

func (g *PushHandler) SetConvSettings(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) SetTeamRetention added in v1.0.41

func (g *PushHandler) SetTeamRetention(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) TeamChannels added in v1.0.34

func (g *PushHandler) TeamChannels(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) TlfFinalize added in v1.0.19

func (g *PushHandler) TlfFinalize(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) TlfResolve added in v1.0.19

func (g *PushHandler) TlfResolve(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) Typing added in v1.0.27

func (g *PushHandler) Typing(ctx context.Context, m gregor.OutOfBandMessage) (err error)

func (*PushHandler) UpgradeKBFSToImpteam added in v1.0.41

func (g *PushHandler) UpgradeKBFSToImpteam(ctx context.Context, m gregor.OutOfBandMessage) (err error)

type RemoteAttachmentFetcher added in v1.0.48

type RemoteAttachmentFetcher struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewRemoteAttachmentFetcher added in v1.0.48

func NewRemoteAttachmentFetcher(g *globals.Context, store attachments.Store) *RemoteAttachmentFetcher

func (*RemoteAttachmentFetcher) DeleteAssets

func (r *RemoteAttachmentFetcher) DeleteAssets(ctx context.Context,
	convID chat1.ConversationID, assets []chat1.Asset, ri func() chat1.RemoteInterface, signer s3.Signer) (err error)

func (*RemoteAttachmentFetcher) FetchAttachment added in v1.0.48

func (r *RemoteAttachmentFetcher) FetchAttachment(ctx context.Context, w io.Writer,
	convID chat1.ConversationID, asset chat1.Asset,
	ri func() chat1.RemoteInterface, signer s3.Signer, progress types.ProgressReporter) (err error)

func (*RemoteAttachmentFetcher) IsAssetLocal

func (r *RemoteAttachmentFetcher) IsAssetLocal(ctx context.Context, asset chat1.Asset) (bool, error)

func (*RemoteAttachmentFetcher) PutUploadedAsset

func (r *RemoteAttachmentFetcher) PutUploadedAsset(ctx context.Context, filename string, asset chat1.Asset) error

type RemoteClient added in v1.0.22

type RemoteClient struct {
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewRemoteClient added in v1.0.22

func NewRemoteClient(g *globals.Context, cli rpc.GenericClient) *RemoteClient

func (*RemoteClient) Call added in v1.0.22

func (c *RemoteClient) Call(ctx context.Context, method string, arg interface{}, res interface{}) (err error)

func (*RemoteClient) Notify added in v1.0.22

func (c *RemoteClient) Notify(ctx context.Context, method string, arg interface{}) (err error)

type RemoteConversationSource

type RemoteConversationSource struct {
	globals.Contextified
	// contains filtered or unexported fields
}

func NewRemoteConversationSource

func NewRemoteConversationSource(g *globals.Context, b *Boxer, ri func() chat1.RemoteInterface) *RemoteConversationSource

func (*RemoteConversationSource) AcquireConversationLock added in v1.0.48

func (s *RemoteConversationSource) AcquireConversationLock(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID) error

func (*RemoteConversationSource) Clear

func (*RemoteConversationSource) ClearFromDelete added in v1.0.48

func (s *RemoteConversationSource) ClearFromDelete(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, msgID chat1.MessageID) bool

func (RemoteConversationSource) DeleteAssets

func (s RemoteConversationSource) DeleteAssets(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID, assets []chat1.Asset)

DeleteAssets implements github.com/keybase/go/chat/storage/storage.AssetDeleter interface.

func (*RemoteConversationSource) EphemeralPurge

func (*RemoteConversationSource) Expunge added in v1.0.43

func (s *RemoteConversationSource) Expunge(ctx context.Context,
	convID chat1.ConversationID, uid gregor1.UID, expunge chat1.Expunge) error

func (*RemoteConversationSource) GetMessages added in v1.0.19

func (*RemoteConversationSource) GetMessagesWithRemotes added in v1.0.19

func (s *RemoteConversationSource) GetMessagesWithRemotes(ctx context.Context,
	conv chat1.Conversation, uid gregor1.UID, msgs []chat1.MessageBoxed) ([]chat1.MessageUnboxed, error)

func (*RemoteConversationSource) Pull

func (*RemoteConversationSource) PullLocalOnly added in v1.0.19

func (s *RemoteConversationSource) PullLocalOnly(ctx context.Context, convID chat1.ConversationID,
	uid gregor1.UID, query *chat1.GetThreadQuery, pagination *chat1.Pagination, maxPlaceholders int) (chat1.ThreadView, error)

func (*RemoteConversationSource) Push

func (*RemoteConversationSource) PushUnboxed added in v1.0.48

func (*RemoteConversationSource) ReleaseConversationLock added in v1.0.48

func (s *RemoteConversationSource) ReleaseConversationLock(ctx context.Context, uid gregor1.UID,
	convID chat1.ConversationID)

func (RemoteConversationSource) SetRemoteInterface added in v1.0.19

func (s RemoteConversationSource) SetRemoteInterface(ri func() chat1.RemoteInterface)

func (RemoteConversationSource) Sign

func (s RemoteConversationSource) Sign(payload []byte) ([]byte, error)

Sign implements github.com/keybase/go/chat/s3.Signer interface.

func (RemoteConversationSource) TransformSupersedes added in v1.0.19

func (s RemoteConversationSource) TransformSupersedes(ctx context.Context,
	unboxInfo types.UnboxConversationInfo, uid gregor1.UID, msgs []chat1.MessageUnboxed) ([]chat1.MessageUnboxed, error)

type RemoteInboxSource added in v1.0.19

type RemoteInboxSource struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewRemoteInboxSource added in v1.0.19

func NewRemoteInboxSource(g *globals.Context, ri func() chat1.RemoteInterface) *RemoteInboxSource

func (RemoteInboxSource) Connected added in v1.0.19

func (s RemoteInboxSource) Connected(ctx context.Context)

func (RemoteInboxSource) Disconnected added in v1.0.19

func (s RemoteInboxSource) Disconnected(ctx context.Context)

func (*RemoteInboxSource) Expunge added in v1.0.43

func (s *RemoteInboxSource) Expunge(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers, convID chat1.ConversationID,
	expunge chat1.Expunge, maxMsgs []chat1.MessageSummary) (res *chat1.ConversationLocal, err error)

func (RemoteInboxSource) GetInboxQueryLocalToRemote added in v1.0.27

func (b RemoteInboxSource) GetInboxQueryLocalToRemote(ctx context.Context,
	lquery *chat1.GetInboxLocalQuery) (rquery *chat1.GetInboxQuery, info *types.NameInfoUntrusted, err error)

func (RemoteInboxSource) IsMember added in v1.0.27

func (b RemoteInboxSource) IsMember(ctx context.Context, uid gregor1.UID, convID chat1.ConversationID) (bool, error)

func (RemoteInboxSource) IsOffline added in v1.0.19

func (s RemoteInboxSource) IsOffline(ctx context.Context) bool

func (*RemoteInboxSource) MembershipUpdate added in v1.0.27

func (s *RemoteInboxSource) MembershipUpdate(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	joined []chat1.ConversationMember, removed []chat1.ConversationMember, resets []chat1.ConversationMember,
	previews []chat1.ConversationID) (res types.MembershipUpdateRes, err error)

func (*RemoteInboxSource) NewConversation added in v1.0.19

func (s *RemoteInboxSource) NewConversation(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	conv chat1.Conversation) error

func (*RemoteInboxSource) NewMessage added in v1.0.19

func (*RemoteInboxSource) Read added in v1.0.19

func (s *RemoteInboxSource) Read(ctx context.Context, uid gregor1.UID,
	localizer types.ChatLocalizer, useLocalData bool, query *chat1.GetInboxLocalQuery,
	p *chat1.Pagination) (types.Inbox, error)

func (*RemoteInboxSource) ReadMessage added in v1.0.19

func (*RemoteInboxSource) ReadUnverified added in v1.0.19

func (s *RemoteInboxSource) ReadUnverified(ctx context.Context, uid gregor1.UID, useLocalData bool,
	rquery *chat1.GetInboxQuery, p *chat1.Pagination) (types.Inbox, error)

func (*RemoteInboxSource) SetAppNotificationSettings added in v1.0.27

func (s *RemoteInboxSource) SetAppNotificationSettings(ctx context.Context, uid gregor1.UID,
	vers chat1.InboxVers, convID chat1.ConversationID, settings chat1.ConversationNotificationInfo) (*chat1.ConversationLocal, error)

func (*RemoteInboxSource) SetConvRetention added in v1.0.41

func (s *RemoteInboxSource) SetConvRetention(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convID chat1.ConversationID, policy chat1.RetentionPolicy) (res *chat1.ConversationLocal, err error)

func (*RemoteInboxSource) SetConvSettings

func (s *RemoteInboxSource) SetConvSettings(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	convID chat1.ConversationID, convSettings *chat1.ConversationSettings) (res *chat1.ConversationLocal, err error)

func (RemoteInboxSource) SetRemoteInterface added in v1.0.19

func (b RemoteInboxSource) SetRemoteInterface(ri func() chat1.RemoteInterface)

func (*RemoteInboxSource) SetStatus added in v1.0.19

func (*RemoteInboxSource) SetTeamRetention added in v1.0.41

func (s *RemoteInboxSource) SetTeamRetention(ctx context.Context, uid gregor1.UID, vers chat1.InboxVers,
	teamID keybase1.TeamID, policy chat1.RetentionPolicy) (res []chat1.ConversationLocal, err error)

func (*RemoteInboxSource) TeamTypeChanged added in v1.0.41

func (s *RemoteInboxSource) TeamTypeChanged(ctx context.Context, uid gregor1.UID,
	vers chat1.InboxVers, convID chat1.ConversationID, teamType chat1.TeamType) (conv *chat1.ConversationLocal, err error)

func (*RemoteInboxSource) TlfFinalize added in v1.0.19

func (*RemoteInboxSource) UpdateKBFSToImpteam added in v1.0.41

func (s *RemoteInboxSource) UpdateKBFSToImpteam(ctx context.Context, uid gregor1.UID,
	vers chat1.InboxVers, convID chat1.ConversationID) (conv *chat1.ConversationLocal, err error)

type Searcher added in v1.0.42

type Searcher struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewSearcher added in v1.0.42

func NewSearcher(g *globals.Context) *Searcher

func (*Searcher) SearchRegexp added in v1.0.42

func (s *Searcher) SearchRegexp(ctx context.Context, uiCh chan chat1.ChatSearchHit, conversationID chat1.ConversationID, re *regexp.Regexp,
	sentBy string, maxHits, maxMessages, beforeContext, afterContext int) (hits []chat1.ChatSearchHit, err error)

type SenderTestImmediateFailError

type SenderTestImmediateFailError struct {
}

func (SenderTestImmediateFailError) Error

func (SenderTestImmediateFailError) IsImmediateFail

func (e SenderTestImmediateFailError) IsImmediateFail() (chat1.OutboxErrorType, bool)

type Server added in v1.0.22

type Server struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewServer added in v1.0.22

func NewServer(g *globals.Context, serverConn ServerConnection, uiSource UISource) *Server

func (*Server) AddTeamMemberAfterReset added in v1.0.39

func (h *Server) AddTeamMemberAfterReset(ctx context.Context,
	arg chat1.AddTeamMemberAfterResetArg) (err error)

func (*Server) CancelPost added in v1.0.22

func (h *Server) CancelPost(ctx context.Context, outboxID chat1.OutboxID) (err error)

func (*Server) DeleteConversationLocal added in v1.0.31

func (h *Server) DeleteConversationLocal(ctx context.Context, arg chat1.DeleteConversationLocalArg) (res chat1.DeleteConversationLocalRes, err error)

func (*Server) DownloadAttachmentLocal added in v1.0.22

func (h *Server) DownloadAttachmentLocal(ctx context.Context, arg chat1.DownloadAttachmentLocalArg) (res chat1.DownloadAttachmentLocalRes, err error)

DownloadAttachmentLocal implements chat1.LocalInterface.DownloadAttachmentLocal.

func (*Server) DownloadFileAttachmentLocal added in v1.0.22

func (h *Server) DownloadFileAttachmentLocal(ctx context.Context, arg chat1.DownloadFileAttachmentLocalArg) (res chat1.DownloadAttachmentLocalRes, err error)

DownloadFileAttachmentLocal implements chat1.LocalInterface.DownloadFileAttachmentLocal.

func (*Server) FindConversationsLocal added in v1.0.22

func (h *Server) FindConversationsLocal(ctx context.Context,
	arg chat1.FindConversationsLocalArg) (res chat1.FindConversationsLocalRes, err error)

func (*Server) GenerateOutboxID added in v1.0.27

func (h *Server) GenerateOutboxID(ctx context.Context) (res chat1.OutboxID, err error)

func (*Server) GetCachedThread added in v1.0.22

func (h *Server) GetCachedThread(ctx context.Context, arg chat1.GetCachedThreadArg) (res chat1.GetThreadLocalRes, err error)

func (*Server) GetConversationForCLILocal added in v1.0.22

func (h *Server) GetConversationForCLILocal(ctx context.Context, arg chat1.GetConversationForCLILocalQuery) (res chat1.GetConversationForCLILocalRes, err error)

func (*Server) GetGlobalAppNotificationSettingsLocal added in v1.0.27

func (h *Server) GetGlobalAppNotificationSettingsLocal(ctx context.Context) (res chat1.GlobalAppNotificationSettings, err error)

func (*Server) GetInboxAndUnboxLocal added in v1.0.22

func (h *Server) GetInboxAndUnboxLocal(ctx context.Context, arg chat1.GetInboxAndUnboxLocalArg) (res chat1.GetInboxAndUnboxLocalRes, err error)

GetInboxAndUnboxLocal implements keybase.chatLocal.getInboxAndUnboxLocal protocol.

func (*Server) GetInboxAndUnboxUILocal

func (h *Server) GetInboxAndUnboxUILocal(ctx context.Context, arg chat1.GetInboxAndUnboxUILocalArg) (res chat1.GetInboxAndUnboxUILocalRes, err error)

func (*Server) GetInboxNonblockLocal added in v1.0.22

func (h *Server) GetInboxNonblockLocal(ctx context.Context, arg chat1.GetInboxNonblockLocalArg) (res chat1.NonblockFetchRes, err error)

func (*Server) GetInboxSummaryForCLILocal added in v1.0.22

func (h *Server) GetInboxSummaryForCLILocal(ctx context.Context, arg chat1.GetInboxSummaryForCLILocalQuery) (res chat1.GetInboxSummaryForCLILocalRes, err error)

func (*Server) GetMessagesLocal added in v1.0.22

func (h *Server) GetMessagesLocal(ctx context.Context, arg chat1.GetMessagesLocalArg) (res chat1.GetMessagesLocalRes, err error)

func (*Server) GetSearchRegexp added in v1.0.42

func (h *Server) GetSearchRegexp(ctx context.Context, arg chat1.GetSearchRegexpArg) (res chat1.GetSearchRegexpRes, err error)

func (*Server) GetStaticConfig

func (h *Server) GetStaticConfig(ctx context.Context) (res chat1.StaticConfig, err error)

func (*Server) GetTLFConversationsLocal added in v1.0.27

func (h *Server) GetTLFConversationsLocal(ctx context.Context, arg chat1.GetTLFConversationsLocalArg) (res chat1.GetTLFConversationsLocalRes, err error)

func (*Server) GetTeamRetentionLocal added in v1.0.46

func (h *Server) GetTeamRetentionLocal(ctx context.Context, teamID keybase1.TeamID) (res *chat1.RetentionPolicy, err error)

func (*Server) GetThreadLocal added in v1.0.22

func (h *Server) GetThreadLocal(ctx context.Context, arg chat1.GetThreadLocalArg) (res chat1.GetThreadLocalRes, err error)

GetThreadLocal implements keybase.chatLocal.getThreadLocal protocol.

func (*Server) GetThreadNonblock added in v1.0.22

func (h *Server) GetThreadNonblock(ctx context.Context, arg chat1.GetThreadNonblockArg) (res chat1.NonblockFetchRes, fullErr error)

func (*Server) JoinConversationByIDLocal added in v1.0.27

func (h *Server) JoinConversationByIDLocal(ctx context.Context, convID chat1.ConversationID) (res chat1.JoinLeaveConversationLocalRes, err error)

func (*Server) JoinConversationLocal added in v1.0.27

func (h *Server) JoinConversationLocal(ctx context.Context, arg chat1.JoinConversationLocalArg) (res chat1.JoinLeaveConversationLocalRes, err error)

func (*Server) LeaveConversationLocal added in v1.0.27

func (h *Server) LeaveConversationLocal(ctx context.Context, convID chat1.ConversationID) (res chat1.JoinLeaveConversationLocalRes, err error)

func (*Server) MakePreview added in v1.0.22

func (h *Server) MakePreview(ctx context.Context, arg chat1.MakePreviewArg) (res chat1.MakePreviewRes, err error)

MakePreview implements chat1.LocalInterface.MakePreview.

func (*Server) MarkAsReadLocal added in v1.0.22

func (h *Server) MarkAsReadLocal(ctx context.Context, arg chat1.MarkAsReadLocalArg) (res chat1.MarkAsReadLocalRes, err error)

func (*Server) NewConversationLocal added in v1.0.22

func (h *Server) NewConversationLocal(ctx context.Context, arg chat1.NewConversationLocalArg) (res chat1.NewConversationLocalRes, err error)

NewConversationLocal implements keybase.chatLocal.newConversationLocal protocol. Create a new conversation. Or in the case of CHAT, create-or-get a conversation.

func (*Server) PostDeleteHistoryByAge added in v1.0.40

func (h *Server) PostDeleteHistoryByAge(ctx context.Context, arg chat1.PostDeleteHistoryByAgeArg) (res chat1.PostLocalRes, err error)

func (*Server) PostDeleteHistoryThrough added in v1.0.43

func (h *Server) PostDeleteHistoryThrough(ctx context.Context, arg chat1.PostDeleteHistoryThroughArg) (res chat1.PostLocalRes, err error)

func (*Server) PostDeleteHistoryUpto added in v1.0.40

func (h *Server) PostDeleteHistoryUpto(ctx context.Context, arg chat1.PostDeleteHistoryUptoArg) (res chat1.PostLocalRes, err error)

func (*Server) PostDeleteNonblock added in v1.0.22

func (h *Server) PostDeleteNonblock(ctx context.Context, arg chat1.PostDeleteNonblockArg) (chat1.PostLocalNonblockRes, error)

func (*Server) PostEditNonblock added in v1.0.22

func (*Server) PostFileAttachmentLocal added in v1.0.22

func (h *Server) PostFileAttachmentLocal(ctx context.Context, arg chat1.PostFileAttachmentLocalArg) (res chat1.PostLocalRes, err error)

PostFileAttachmentLocal implements chat1.LocalInterface.PostFileAttachmentLocal.

func (*Server) PostFileAttachmentMessageLocalNonblock

func (h *Server) PostFileAttachmentMessageLocalNonblock(ctx context.Context,
	arg chat1.PostFileAttachmentMessageLocalNonblockArg) (res chat1.PostLocalNonblockRes, err error)

func (*Server) PostFileAttachmentUploadLocalNonblock

func (h *Server) PostFileAttachmentUploadLocalNonblock(ctx context.Context,
	arg chat1.PostFileAttachmentUploadLocalNonblockArg) (err error)

func (*Server) PostHeadline added in v1.0.29

func (h *Server) PostHeadline(ctx context.Context, arg chat1.PostHeadlineArg) (chat1.PostLocalRes, error)

func (*Server) PostHeadlineNonblock added in v1.0.29

func (h *Server) PostHeadlineNonblock(ctx context.Context, arg chat1.PostHeadlineNonblockArg) (chat1.PostLocalNonblockRes, error)

func (*Server) PostLocal added in v1.0.22

func (h *Server) PostLocal(ctx context.Context, arg chat1.PostLocalArg) (res chat1.PostLocalRes, err error)

PostLocal implements keybase.chatLocal.postLocal protocol.

func (*Server) PostLocalNonblock added in v1.0.22

func (h *Server) PostLocalNonblock(ctx context.Context, arg chat1.PostLocalNonblockArg) (res chat1.PostLocalNonblockRes, err error)

func (*Server) PostMetadata added in v1.0.34

func (h *Server) PostMetadata(ctx context.Context, arg chat1.PostMetadataArg) (chat1.PostLocalRes, error)

func (*Server) PostMetadataNonblock added in v1.0.34

func (h *Server) PostMetadataNonblock(ctx context.Context, arg chat1.PostMetadataNonblockArg) (chat1.PostLocalNonblockRes, error)

func (*Server) PostReactionNonblock

func (h *Server) PostReactionNonblock(ctx context.Context, arg chat1.PostReactionNonblockArg) (res chat1.PostLocalNonblockRes, err error)

func (*Server) PostTextNonblock added in v1.0.22

func (*Server) PreviewConversationByIDLocal added in v1.0.34

func (h *Server) PreviewConversationByIDLocal(ctx context.Context, convID chat1.ConversationID) (res chat1.JoinLeaveConversationLocalRes, err error)

func (*Server) RetryPost added in v1.0.22

func (h *Server) RetryPost(ctx context.Context, arg chat1.RetryPostArg) (err error)

func (*Server) SetAppNotificationSettingsLocal added in v1.0.27

func (h *Server) SetAppNotificationSettingsLocal(ctx context.Context,
	arg chat1.SetAppNotificationSettingsLocalArg) (res chat1.SetAppNotificationSettingsLocalRes, err error)

func (*Server) SetClock added in v1.0.42

func (h *Server) SetClock(clock clockwork.Clock)

func (*Server) SetConvMinWriterRoleLocal

func (h *Server) SetConvMinWriterRoleLocal(ctx context.Context, arg chat1.SetConvMinWriterRoleLocalArg) (err error)

func (*Server) SetConvRetentionLocal added in v1.0.40

func (h *Server) SetConvRetentionLocal(ctx context.Context, arg chat1.SetConvRetentionLocalArg) (err error)

func (*Server) SetConversationStatusLocal added in v1.0.22

func (h *Server) SetConversationStatusLocal(ctx context.Context, arg chat1.SetConversationStatusLocalArg) (res chat1.SetConversationStatusLocalRes, err error)

func (*Server) SetGlobalAppNotificationSettingsLocal added in v1.0.27

func (h *Server) SetGlobalAppNotificationSettingsLocal(ctx context.Context,
	strSettings map[string]bool) (err error)

func (*Server) SetTeamRetentionLocal added in v1.0.40

func (h *Server) SetTeamRetentionLocal(ctx context.Context, arg chat1.SetTeamRetentionLocalArg) (err error)

func (*Server) UnboxMobilePushNotification added in v1.0.27

func (h *Server) UnboxMobilePushNotification(ctx context.Context, arg chat1.UnboxMobilePushNotificationArg) (res string, err error)

func (*Server) UpdateTyping added in v1.0.27

func (h *Server) UpdateTyping(ctx context.Context, arg chat1.UpdateTypingArg) (err error)

func (*Server) UpgradeKBFSConversationToImpteam added in v1.0.41

func (h *Server) UpgradeKBFSConversationToImpteam(ctx context.Context, convID chat1.ConversationID) (err error)

type ServerConnection added in v1.0.22

type ServerConnection interface {
	Reconnect(context.Context) (bool, error)
	GetClient() chat1.RemoteInterface
}

type SimpleIdentifyNotifier added in v1.0.42

type SimpleIdentifyNotifier struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewSimpleIdentifyNotifier added in v1.0.42

func NewSimpleIdentifyNotifier(g *globals.Context) *SimpleIdentifyNotifier

func (*SimpleIdentifyNotifier) Reset added in v1.0.42

func (d *SimpleIdentifyNotifier) Reset()

func (*SimpleIdentifyNotifier) ResetOnGUIConnect added in v1.0.42

func (d *SimpleIdentifyNotifier) ResetOnGUIConnect()

func (*SimpleIdentifyNotifier) Send added in v1.0.42

type Syncer added in v1.0.19

type Syncer struct {
	globals.Contextified
	utils.DebugLabeler
	sync.Mutex
	// contains filtered or unexported fields
}

func NewSyncer added in v1.0.19

func NewSyncer(g *globals.Context) *Syncer

func (*Syncer) Connected added in v1.0.19

func (s *Syncer) Connected(ctx context.Context, cli chat1.RemoteInterface, uid gregor1.UID,
	syncRes *chat1.SyncChatRes) (err error)

func (*Syncer) Disconnected added in v1.0.19

func (s *Syncer) Disconnected(ctx context.Context)

func (*Syncer) GetSelectedConversation added in v1.0.48

func (s *Syncer) GetSelectedConversation() chat1.ConversationID

func (*Syncer) IsConnected added in v1.0.21

func (s *Syncer) IsConnected(ctx context.Context) bool

func (*Syncer) RegisterOfflinable added in v1.0.19

func (s *Syncer) RegisterOfflinable(offlinable types.Offlinable)

func (*Syncer) SelectConversation added in v1.0.47

func (s *Syncer) SelectConversation(ctx context.Context, convID chat1.ConversationID)

func (*Syncer) SendChatStaleNotifications added in v1.0.19

func (s *Syncer) SendChatStaleNotifications(ctx context.Context, uid gregor1.UID,
	updates []chat1.ConversationStaleUpdate, immediate bool)

func (*Syncer) SetClock added in v1.0.21

func (s *Syncer) SetClock(clock clockwork.Clock)

func (*Syncer) Shutdown added in v1.0.21

func (s *Syncer) Shutdown()

func (*Syncer) Sync added in v1.0.21

func (s *Syncer) Sync(ctx context.Context, cli chat1.RemoteInterface, uid gregor1.UID,
	syncRes *chat1.SyncChatRes) (err error)

type TeamLoader added in v1.0.47

type TeamLoader struct {
	libkb.Contextified
	utils.DebugLabeler
}

func NewTeamLoader added in v1.0.47

func NewTeamLoader(g *libkb.GlobalContext) *TeamLoader

type TeamsNameInfoSource added in v1.0.27

type TeamsNameInfoSource struct {
	globals.Contextified
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewTeamsNameInfoSource added in v1.0.27

func NewTeamsNameInfoSource(g *globals.Context) *TeamsNameInfoSource

func (*TeamsNameInfoSource) DecryptionKeys added in v1.0.42

func (t *TeamsNameInfoSource) DecryptionKeys(ctx context.Context, name string, teamID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool,
	keyGeneration int, kbfsEncrypted bool) (res *types.NameInfo, err error)

func (*TeamsNameInfoSource) EncryptionKeys added in v1.0.42

func (t *TeamsNameInfoSource) EncryptionKeys(ctx context.Context, name string, teamID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (res *types.NameInfo, err error)

func (*TeamsNameInfoSource) EphemeralDecryptionKey added in v1.0.48

func (t *TeamsNameInfoSource) EphemeralDecryptionKey(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool, generation keybase1.EkGeneration) (teamEK keybase1.TeamEk, err error)

func (*TeamsNameInfoSource) EphemeralEncryptionKey added in v1.0.48

func (t *TeamsNameInfoSource) EphemeralEncryptionKey(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (teamEK keybase1.TeamEk, err error)

func (*TeamsNameInfoSource) Lookup added in v1.0.27

func (t *TeamsNameInfoSource) Lookup(ctx context.Context, name string, public bool) (res *types.NameInfo, err error)

func (*TeamsNameInfoSource) LookupUntrusted

func (t *TeamsNameInfoSource) LookupUntrusted(ctx context.Context, name string, public bool) (res *types.NameInfoUntrusted, err error)

func (*TeamsNameInfoSource) ShouldPairwiseMAC

func (t *TeamsNameInfoSource) ShouldPairwiseMAC(ctx context.Context, tlfName string, tlfID chat1.TLFID,
	membersType chat1.ConversationMembersType, public bool) (bool, []keybase1.KID, error)

type TransientUnboxingError added in v1.0.19

type TransientUnboxingError struct {
	// contains filtered or unexported fields
}

func (TransientUnboxingError) Error added in v1.0.19

func (e TransientUnboxingError) Error() string

func (TransientUnboxingError) ExportType added in v1.0.19

func (TransientUnboxingError) Inner added in v1.0.19

func (e TransientUnboxingError) Inner() error

func (TransientUnboxingError) InternalError

func (e TransientUnboxingError) InternalError() string

func (TransientUnboxingError) IsCritical

func (e TransientUnboxingError) IsCritical() bool

func (TransientUnboxingError) IsPermanent added in v1.0.19

func (e TransientUnboxingError) IsPermanent() bool

func (TransientUnboxingError) VersionKind

func (e TransientUnboxingError) VersionKind() chat1.VersionKind

func (TransientUnboxingError) VersionNumber

func (e TransientUnboxingError) VersionNumber() int

type TypingMonitor added in v1.0.27

type TypingMonitor struct {
	globals.Contextified
	sync.Mutex
	utils.DebugLabeler
	// contains filtered or unexported fields
}

func NewTypingMonitor added in v1.0.27

func NewTypingMonitor(g *globals.Context) *TypingMonitor

func (*TypingMonitor) SetClock added in v1.0.27

func (t *TypingMonitor) SetClock(clock clockwork.Clock)

func (*TypingMonitor) SetTimeout added in v1.0.27

func (t *TypingMonitor) SetTimeout(timeout time.Duration)

func (*TypingMonitor) Update added in v1.0.27

func (t *TypingMonitor) Update(ctx context.Context, typer chat1.TyperInfo, convID chat1.ConversationID,
	typing bool)

type UISource added in v1.0.22

type UISource interface {
	GetChatUI(sessionID int) libkb.ChatUI
	GetStreamUICli() *keybase1.StreamUiClient
}

type UnboxingError added in v1.0.19

type UnboxingError interface {
	InternalError
	Error() string
	Inner() error
	IsPermanent() bool
	ExportType() chat1.MessageUnboxedErrorType
	VersionKind() chat1.VersionKind
	VersionNumber() int
	IsCritical() bool
}

func NewPermanentUnboxingError added in v1.0.19

func NewPermanentUnboxingError(inner error) UnboxingError

func NewTransientUnboxingError added in v1.0.19

func NewTransientUnboxingError(inner error) UnboxingError

type UnknownTLFNameError

type UnknownTLFNameError struct {
	// contains filtered or unexported fields
}

func NewUnknownTLFNameError

func NewUnknownTLFNameError(name string) UnknownTLFNameError

func (UnknownTLFNameError) Error

func (e UnknownTLFNameError) Error() string

type VersionError added in v1.0.19

type VersionError struct {
	Kind     string
	Version  int
	Critical bool
}

func NewBodyVersionError added in v1.0.19

func NewBodyVersionError(version chat1.BodyPlaintextVersion, defaultBody chat1.BodyPlaintextUnsupported) VersionError

func NewHeaderVersionError added in v1.0.19

func NewHeaderVersionError(version chat1.HeaderPlaintextVersion,
	defaultHeader chat1.HeaderPlaintextUnsupported) VersionError

func NewMessageBoxedVersionError added in v1.0.19

func NewMessageBoxedVersionError(version chat1.MessageBoxedVersion) VersionError

func (VersionError) Error added in v1.0.19

func (e VersionError) Error() string

func (VersionError) ExportType added in v1.0.19

func (VersionError) IsCritical

func (e VersionError) IsCritical() bool

func (VersionError) VersionKind

func (e VersionError) VersionKind() chat1.VersionKind

func (VersionError) VersionNumber

func (e VersionError) VersionNumber() int

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL