Documentation ¶
Index ¶
- Constants
- type Connection
- type ConnectionSignature
- type Event
- type Invitation
- type OOBInvitation
- type Request
- type Response
- type Service
- func (s *Service) Accept(msgType string) bool
- func (s *Service) AcceptExchangeRequest(connectionID, publicDID, label string, routerConnections []string) error
- func (s *Service) AcceptInvitation(connectionID, publicDID, label string, routerConnections []string) error
- func (s *Service) CreateConnection(record *connection.Record, theirDID *did.Doc) error
- func (s *Service) CreateImplicitInvitation(inviterLabel, inviterDID, inviteeLabel, inviteeDID string, ...) (string, error)
- func (s *Service) HandleInbound(msg service.DIDCommMsg, _, _ string) (string, error)
- func (s *Service) HandleOutbound(_ service.DIDCommMsg, _, _ string) (string, error)
- func (s *Service) Name() string
- func (s *Service) RespondTo(i *OOBInvitation, routerConnections []string) (string, error)
- func (s *Service) SaveInvitation(i *OOBInvitation) error
Constants ¶
const ( // DIDExchange did exchange protocol. DIDExchange = "didexchange" // PIURI is the did-exchange protocol identifier URI. PIURI = "https://didcomm.org/didexchange/1.0" // InvitationMsgType defines the did-exchange invite message type. InvitationMsgType = PIURI + "/invitation" // RequestMsgType defines the did-exchange request message type. RequestMsgType = PIURI + "/request" // ResponseMsgType defines the did-exchange response message type. ResponseMsgType = PIURI + "/response" // AckMsgType defines the did-exchange ack message type. AckMsgType = PIURI + "/ack" )
const ( // StateIDInvited marks the invited phase of the did-exchange protocol. StateIDInvited = "invited" // StateIDRequested marks the requested phase of the did-exchange protocol. StateIDRequested = "requested" // StateIDResponded marks the responded phase of the did-exchange protocol. StateIDResponded = "responded" // StateIDCompleted marks the completed phase of the did-exchange protocol. StateIDCompleted = "completed" // StateIDAbandoned marks the abandoned phase of the did-exchange protocol. StateIDAbandoned = "abandoned" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Connection ¶
type Connection struct { DID string `json:"did,omitempty"` DIDDoc *did.Doc `json:"did_doc,omitempty"` }
Connection connection.
type ConnectionSignature ¶
type ConnectionSignature struct { Type string `json:"@type,omitempty"` Signature string `json:"signature,omitempty"` SignedData string `json:"sig_data,omitempty"` SignVerKey string `json:"signers,omitempty"` }
ConnectionSignature connection signature.
type Event ¶ added in v0.1.3
type Event interface { // connection ID ConnectionID() string // invitation ID InvitationID() string }
Event properties related api. This can be used to cast Generic event properties to DID Exchange specific props.
type Invitation ¶
type Invitation struct { // the Image URL of the connection invitation ImageURL string `json:"imageUrl,omitempty"` // the Service endpoint of the connection invitation ServiceEndpoint string `json:"serviceEndpoint,omitempty"` // the RecipientKeys for the connection invitation RecipientKeys []string `json:"recipientKeys,omitempty"` // the ID of the connection invitation ID string `json:"@id,omitempty"` // the Label of the connection invitation Label string `json:"label,omitempty"` // the DID of the connection invitation DID string `json:"did,omitempty"` // the RoutingKeys of the connection invitation RoutingKeys []string `json:"routingKeys,omitempty"` // the Type of the connection invitation Type string `json:"@type,omitempty"` Thread *decorator.Thread `json:"~thread,omitempty"` }
Invitation model
Invitation defines DID exchange invitation message https://github.com/hyperledger/aries-rfcs/tree/master/features/0023-did-exchange#0-invitation-to-exchange
TODO all uses of this invitation struct should be replaced with the new OOB one. The new one should be renamed
to 'Invitation'.
type OOBInvitation ¶ added in v0.1.3
type OOBInvitation struct { // ID of this invitation (for record-keeping purposes). // TODO can we remove this? ID string `json:"@id"` // TODO remove this Type string `json:"@type"` // ID of the thread from which this invitation originated. // This will become the parent thread ID of the didexchange protocol instance. ThreadID string // TheirLabel is the label on the other party's connection invitation. TheirLabel string // MyLabel is the label we will use during the did-exchange. MyLabel string // Target destination. // This can be any on of: // - a string with a valid DID // - a valid `did.Service` Target interface{} }
OOBInvitation to connect with did-exchange.
type Request ¶
type Request struct { Type string `json:"@type,omitempty"` ID string `json:"@id,omitempty"` Label string `json:"label,omitempty"` Connection *Connection `json:"connection,omitempty"` Thread *decorator.Thread `json:"~thread,omitempty"` }
Request defines a2a DID exchange request https://github.com/hyperledger/aries-rfcs/tree/master/features/0023-did-exchange#1-exchange-request
type Response ¶
type Response struct { Type string `json:"@type,omitempty"` ID string `json:"@id,omitempty"` ConnectionSignature *ConnectionSignature `json:"connection~sig,omitempty"` Thread *decorator.Thread `json:"~thread,omitempty"` }
Response defines a2a DID exchange response https://github.com/hyperledger/aries-rfcs/tree/master/features/0023-did-exchange#2-exchange-response
type Service ¶
Service for DID exchange protocol.
func (*Service) AcceptExchangeRequest ¶
func (s *Service) AcceptExchangeRequest(connectionID, publicDID, label string, routerConnections []string) error
AcceptExchangeRequest accepts/approves connection request.
func (*Service) AcceptInvitation ¶
func (s *Service) AcceptInvitation(connectionID, publicDID, label string, routerConnections []string) error
AcceptInvitation accepts/approves connection invitation.
func (*Service) CreateConnection ¶ added in v0.1.4
CreateConnection saves the record to the connection store and maps TheirDID to their recipient keys in the did connection store.
func (*Service) CreateImplicitInvitation ¶ added in v0.1.1
func (s *Service) CreateImplicitInvitation(inviterLabel, inviterDID, inviteeLabel, inviteeDID string, routerConnections []string) (string, error)
CreateImplicitInvitation creates implicit invitation. Inviter DID is required, invitee DID is optional. If invitee DID is not provided new peer DID will be created for implicit invitation exchange request.
func (*Service) HandleInbound ¶
HandleInbound handles inbound didexchange messages.
func (*Service) HandleOutbound ¶
HandleOutbound handles outbound didexchange messages.
func (*Service) RespondTo ¶ added in v0.1.3
func (s *Service) RespondTo(i *OOBInvitation, routerConnections []string) (string, error)
RespondTo this inbound invitation and return with the new connection record's ID.
func (*Service) SaveInvitation ¶ added in v0.1.3
func (s *Service) SaveInvitation(i *OOBInvitation) error
SaveInvitation saves this invitation created by you.