Documentation ¶
Index ¶
- func CreateDataResponse(code int, msg string, from *identity.Address, to *identity.Address, ...) []message.Message
- func CreateResponse(code int, msg string, from *identity.Address, to *identity.Address, ...) []message.Message
- type Client
- func (c *Client) DownloadMessages(since uint64, context bool) ([]*ResponseMessage, error)
- func (c *Client) DownloadSentMessages(since uint64, context bool) ([]*ResponseMessage, error)
- func (c *Client) EnableLink() error
- func (c *Client) GetData(key string) ([]byte, error)
- func (c *Client) GetLinkRequest() (*PendingLinkRequest, error)
- func (c *Client) LinkAcceptRequest(request *PendingLinkRequest) error
- func (c *Client) PublishDataMessage(r io.ReadSeeker, to []*identity.Address, typ, prefix, file string) (string, error)
- func (c *Client) PublishEncryptedMessage(enc *message.EncryptedMessage, to []*identity.Address, name string, alert bool) (string, error)
- func (c *Client) PublishMessage(enc *message.Mail, to []*identity.Address, name string, alert bool) (string, error)
- func (c *Client) Register(keys map[string][]byte) error
- func (c *Client) SetData(key string, value []byte) error
- func (c *Client) Unregister(keys map[string][]byte) error
- func (c *Client) UpdateMessage(enc *message.Mail, to []*identity.Address, name string) error
- func (c *Client) WaitForLinkRequest() (*PendingLinkRequest, error)
- type Delegate
- type Handler
- func (h *Handler) Data(r *wire.Data, head message.Header) ([]message.Message, error)
- func (h *Handler) DownloadMessages(r *wire.DownloadMessages, head message.Header) ([]message.Message, error)
- func (h *Handler) EnableLink(head message.Header) ([]message.Message, error)
- func (h *Handler) GetData(r *wire.GetData, head message.Header) ([]message.Message, error)
- func (h *Handler) HandleMessage(typ string, data []byte, head message.Header, conn net.Conn) ([]message.Message, error)
- func (h *Handler) HandlesType(typ string) bool
- func (h *Handler) LinkKey(msg *wire.LinkData, head message.Header) ([]message.Message, error)
- func (h *Handler) LinkRequest(msg *wire.LinkData, head message.Header) ([]message.Message, error)
- func (h *Handler) LinkTransfer(msg *wire.LinkTransfer, head message.Header) ([]message.Message, error)
- func (h *Handler) PublishDataMessage(r *wire.PublishDataMessage, head message.Header, conn net.Conn) ([]message.Message, error)
- func (h *Handler) PublishMessage(r *wire.PublishMessage, head message.Header) ([]message.Message, error)
- func (h *Handler) Register(r *wire.Register, head message.Header) ([]message.Message, error)
- func (h *Handler) Unregister(r *wire.Unregister, head message.Header) ([]message.Message, error)
- func (h *Handler) UpdateMessage(r *wire.UpdateMessage, head message.Header) ([]message.Message, error)
- type LinkClient
- type LinkManager
- type PendingLinkRequest
- type RawMessage
- type ReadVerifier
- type Response
- type ResponseMessage
- type VerificationCode
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateDataResponse ¶
Types ¶
type Client ¶
func (*Client) DownloadMessages ¶
func (c *Client) DownloadMessages(since uint64, context bool) ([]*ResponseMessage, error)
func (*Client) DownloadSentMessages ¶ added in v0.1.2
func (c *Client) DownloadSentMessages(since uint64, context bool) ([]*ResponseMessage, error)
Download Messages from Server
func (*Client) EnableLink ¶
EnableLink tells the dispatcher that the account is ready to accept link requests.
func (*Client) GetLinkRequest ¶
func (c *Client) GetLinkRequest() (*PendingLinkRequest, error)
GetLinkRequest will check the dispatcher for a pending link request
func (*Client) LinkAcceptRequest ¶
func (c *Client) LinkAcceptRequest(request *PendingLinkRequest) error
LinkAcceptRequest will upload the current identity to the dispatcher encrypted for `from`
func (*Client) PublishDataMessage ¶
func (*Client) PublishEncryptedMessage ¶ added in v0.1.2
func (*Client) PublishMessage ¶
func (c *Client) PublishMessage( enc *message.Mail, to []*identity.Address, name string, alert bool, ) (string, error)
Publish Message on Server
func (*Client) Unregister ¶
Unregister with the Server
func (*Client) UpdateMessage ¶
Update Message on Server
func (*Client) WaitForLinkRequest ¶
func (c *Client) WaitForLinkRequest() (*PendingLinkRequest, error)
WaitForLinkRequeset will loop, querying the dispatcher every 10 seconds for a LinkRequest. It will error out after 5 minutes.
type Delegate ¶
type Delegate interface { // Account Register(addr string, keys map[string][]byte) error Unregister(addr string, keys map[string][]byte) error // Message GetMessages(since uint64, owner string, context bool) ([]*ResponseMessage, error) PublishMessage(name string, to []string, author string, message *message.EncryptedMessage, alerted bool) error UpdateMessage(name string, author string, message *message.EncryptedMessage) error // Sent Messages GetSentMessages(since uint64, owner string, context bool) ([]*ResponseMessage, error) // AD Data PublishDataMessage(name string, to []string, author string, message *message.EncryptedMessage, length uint64, r ReadVerifier) error // Data GetData(owner string, key string) ([]byte, error) SetData(owner string, key string, data []byte) error }
type Handler ¶
func (*Handler) DownloadMessages ¶
func (h *Handler) DownloadMessages(r *wire.DownloadMessages, head message.Header) ([]message.Message, error)
Return all Messages received after `since` in sequence.
func (*Handler) EnableLink ¶
func (*Handler) HandleMessage ¶
func (h *Handler) HandleMessage(typ string, data []byte, head message.Header, conn net.Conn) ([]message.Message, error)
Handle the DAP Request
func (*Handler) LinkRequest ¶
func (*Handler) LinkTransfer ¶
func (*Handler) PublishDataMessage ¶
func (h *Handler) PublishDataMessage(r *wire.PublishDataMessage, head message.Header, conn net.Conn) ([]message.Message, error)
Publish a message on Delegate.
func (*Handler) PublishMessage ¶
func (h *Handler) PublishMessage(r *wire.PublishMessage, head message.Header) ([]message.Message, error)
Publish a message on Delegate.
func (*Handler) Unregister ¶
Unregister a User on the Delegate
func (*Handler) UpdateMessage ¶
func (h *Handler) UpdateMessage(r *wire.UpdateMessage, head message.Header) ([]message.Message, error)
Update a message on Delegate.
type LinkClient ¶
func CreateLinkClient ¶
func (*LinkClient) GetVerificationCode ¶
func (c *LinkClient) GetVerificationCode() (VerificationCode, error)
func (*LinkClient) LinkGetIdentity ¶
func (l *LinkClient) LinkGetIdentity() (*identity.Identity, error)
LinkGetIdentity will download the identity from the dispatcher and decrypt it
func (*LinkClient) LinkRequest ¶
func (l *LinkClient) LinkRequest(verification VerificationCode) error
LinkRequest sends a LinkRequest to the dispatcher for a specific account `to`
type LinkManager ¶
type LinkManager struct { // Track which accounts are accepting link // requests at the current moment. // map: requestee -> time enabled EnabledAccounts map[string]time.Time EnabledLock *sync.RWMutex // Track the link requests // map: requestee -> request payload Requests map[string][]byte RequestsLock *sync.RWMutex // Track the Transfers // map: requester -> key payload KeyTransfers map[string][]byte TransfersLock *sync.RWMutex }
type PendingLinkRequest ¶
type RawMessage ¶
func (*RawMessage) Header ¶
func (r *RawMessage) Header() message.Header
func (*RawMessage) ToBytes ¶
func (r *RawMessage) ToBytes() []byte
func (*RawMessage) Type ¶
func (r *RawMessage) Type() string
type ReadVerifier ¶
type Response ¶
type Response struct { Code uint32 Message string Length uint64 Data []byte // contains filtered or unexported fields }
func CreateResponseFromBytes ¶
type ResponseMessage ¶
type ResponseMessage struct { Message *message.EncryptedMessage Context map[string][]byte // contains filtered or unexported fields }
func CreateResponseMessage ¶
func CreateResponseMessage(m *message.EncryptedMessage, from *identity.Address, to *identity.Address) *ResponseMessage
func CreateResponseMessageFromBytes ¶
func CreateResponseMessageFromBytes(data []byte, head message.Header) (*ResponseMessage, error)
func (*ResponseMessage) Header ¶
func (r *ResponseMessage) Header() message.Header
func (*ResponseMessage) ToBytes ¶
func (r *ResponseMessage) ToBytes() []byte
func (*ResponseMessage) Type ¶
func (r *ResponseMessage) Type() string
type VerificationCode ¶
type VerificationCode string