Documentation ¶
Index ¶
- type Agent
- func (a *Agent) AddPipeToPWMap(p sec.Pipe, name string)
- func (a *Agent) AddToPWMap(me, you *ssi.DID, name string) sec.Pipe
- func (a *Agent) AddWs(msgDID string, ws *websocket.Conn)
- func (a *Agent) AttachAPIEndp(endp service.Addr) error
- func (a *Agent) AttachSAImpl(implID string, persistent bool)
- func (a *Agent) AutoPermission() bool
- func (a *Agent) BuildEndpURL() (endAddr string)
- func (a *Agent) CAEndp(wantWorker bool) (endP *endp.Addr)
- func (a *Agent) CallEA(plType string, im didcomm.Msg) (om didcomm.Msg, err error)
- func (a *Agent) ExportWallet(key string, exportPath string) string
- func (a *Agent) InOutPL(cnxAddr *endp.Addr, ipl didcomm.Payload) (opl didcomm.Payload, nonce string)
- func (a *Agent) LoadPwOnInit() (err error)
- func (a *Agent) MasterSecret() (string, error)
- func (a *Agent) MyCA() comm.Receiver
- func (a *Agent) NotifyEA(plType string, im didcomm.MessageHdr)
- func (a *Agent) ProcessPL(ipl didcomm.Payload) (opl didcomm.Payload, err error)
- func (a *Agent) Pw() pairwise.Saver
- func (a *Agent) PwPipe(pw string) (cp sec.Pipe, err error)
- func (a *Agent) SecPipe(meDID string) sec.Pipe
- func (a *Agent) Trans() txp.Trans
- func (a *Agent) WDID() string
- func (a *Agent) WEA() (wa *Agent)
- func (a *Agent) WorkerEA() comm.Receiver
- type PipeMap
- type SeedAgent
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Agent ¶
type Agent struct { ssi.DIDAgent Tr txp.Trans // Our transport layer for communication // contains filtered or unexported fields }
Agent is the main abstraction of the package together with Agency. The agent started as a CA but has been later added support for EAs and worker/cloud-EA as well. This might be something we will change later. Agent's most important task is/WAS to receive Payloads and process Messages inside them. And there are lots of stuff to support that. That part of code is heavily under construction.
More concrete parts of the Agent are support for wallet, root DID, did cache. Web socket connections are more like old relic, and that will change in future for something else. It WAS part of the protocol STATE management.
Please be noted that Agent or more precisely CA is singleton by its nature per EA it serves. So, Cloud Agent is a gateway to world for EA it serves. EAs are mostly in mobile devices and handicapped by their nature. In our latest architecture CA serves EA by creating a worker EA which lives in the cloud as well. For now, in the most cases we have pair or agents serving each mobile EAs here in the cloud: CA and w-EA.
There is Agent.Type where this Agent can be EA only. That type is used for test and CLI Go clients.
func NewTransportReadyEA ¶
NewTransportReadyEA creates a new EA and opens its wallet and inits its transport layer for CA communication.
func (*Agent) AttachAPIEndp ¶
AttachAPIEndp sets the API endpoint for remove EA i.e. real EA not w-EA.
func (*Agent) AttachSAImpl ¶
AttachSAImpl sets implementation ID for SA to use for mocks and auto accepts.
func (*Agent) AutoPermission ¶
func (*Agent) BuildEndpURL ¶
func (*Agent) CAEndp ¶
CAEndp returns endpoint of the CA or CA's w-EA's endp when wantWorker = true.
func (*Agent) InOutPL ¶
func (a *Agent) InOutPL(cnxAddr *endp.Addr, ipl didcomm.Payload) (opl didcomm.Payload, nonce string)
InOutPL handles messages of handshake protocol at the moment. Future will show if it stays or even expands. The messages processed here are the CA's. The EA end is handled by clients.
func (*Agent) LoadPwOnInit ¶
func (*Agent) MasterSecret ¶
func (*Agent) NotifyEA ¶
func (a *Agent) NotifyEA(plType string, im didcomm.MessageHdr)
NotifyEA notifies the corresponding EA via web socket. Consider other options like apns, http, even rpc, etc.
func (*Agent) ProcessPL ¶
ProcessPL is helper method to implement a CA client aka EA. This is not called by CA itself which is running on server. This for agents which are connecting Agency run CAs