Documentation
¶
Index ¶
- Constants
- type Action
- type Attribute
- type Opt
- type Predicate
- type Presentation
- type PresentationPreview
- type ProposePresentation
- type Provider
- type RequestPresentation
- type Service
- func (s *Service) Accept(msgType string) bool
- func (s *Service) ActionContinue(piID string, opt Opt) error
- func (s *Service) ActionStop(piID string, cErr error) error
- func (s *Service) Actions() ([]Action, error)
- func (s *Service) HandleInbound(msg service.DIDCommMsg, myDID, theirDID string) (string, error)
- func (s *Service) HandleOutbound(_ service.DIDCommMsg, _, _ string) error
- func (s *Service) Name() string
Constants ¶
const ( // Name defines the protocol name Name = "present-proof" // Spec defines the protocol spec Spec = "https://didcomm.org/present-proof/1.0/" // ProposePresentationMsgType defines the protocol propose-presentation message type. ProposePresentationMsgType = Spec + "propose-presentation" // RequestPresentationMsgType defines the protocol request-presentation message type. RequestPresentationMsgType = Spec + "request-presentation" // PresentationMsgType defines the protocol presentation message type. PresentationMsgType = Spec + "presentation" // AckMsgType defines the protocol ack message type. AckMsgType = Spec + "ack" // ProblemReportMsgType defines the protocol problem-report message type. ProblemReportMsgType = Spec + "problem-report" // PresentationPreviewMsgType defines the protocol presentation-preview inner object type. PresentationPreviewMsgType = Spec + "presentation-preview" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Action ¶
type Action struct {
// Protocol instance ID
PIID string `json:"piid"`
Msg service.DIDCommMsgMap `json:"msg"`
}
Action contains helpful information about action
type Attribute ¶
type Attribute struct {
Name string `json:"name"`
CredDefID string `json:"cred_def_id"`
MimeType string `json:"mime-type,omitempty"`
Value string `json:"value"`
Referent string `json:"referent"`
}
Attribute describes an attribute for the PresentationPreview
type Opt ¶
type Opt func(md *metaData)
Opt describes option signature for the Continue function
func WithPresentation ¶
func WithPresentation(msg *Presentation) Opt
WithPresentation allows providing Presentation message USAGE: This message can be provided after receiving a Request message
func WithProposePresentation ¶
func WithProposePresentation(msg *ProposePresentation) Opt
WithProposePresentation allows providing ProposePresentation message USAGE: This message can be provided after receiving a Request message
func WithRequestPresentation ¶
func WithRequestPresentation(msg *RequestPresentation) Opt
WithRequestPresentation allows providing RequestPresentation message USAGE: This message can be provided after receiving a propose message
type Predicate ¶
type Predicate struct {
Name string `json:"name"`
CredDefID string `json:"cred_def_id"`
Predicate string `json:"predicate"`
Threshold string `json:"threshold"`
}
Predicate describes a predicate for the PresentationPreview
type Presentation ¶
type Presentation struct {
Type string `json:"@type,omitempty"`
// Comment is a field that provides some human readable information about the proposed presentation.
// TODO: Should follow DIDComm conventions for l10n. [Issue #1300]
Comment string `json:"comment,omitempty"`
// Presentations is a slice of attachments containing the presentation in the requested format(s).
Presentations []decorator.Attachment `json:"presentations~attach,omitempty"`
}
Presentation is a response to a RequestPresentation message and contains signed presentations.
type PresentationPreview ¶
type PresentationPreview struct {
Type string `json:"@type,omitempty"`
Attributes []Attribute `json:"attributes,omitempty"`
Predicates []Predicate `json:"predicates,omitempty"`
}
PresentationPreview is used to construct a preview of the data for the presentation.
type ProposePresentation ¶
type ProposePresentation struct {
Type string `json:"@type,omitempty"`
// Comment is a field that provides some human readable information about the proposed presentation.
// TODO: Should follow DIDComm conventions for l10n. [Issue #1300]
Comment string `json:"comment,omitempty"`
// PresentationProposal is a JSON-LD object that represents the presentation example that Prover wants to provide.
PresentationProposal PresentationPreview `json:"presentation_proposal,omitempty"`
}
ProposePresentation is an optional message sent by the Prover to the verifier to initiate a proof presentation process, or in response to a request-presentation message when the Prover wants to propose using a different presentation format.
type Provider ¶
type Provider interface {
Messenger() service.Messenger
StorageProvider() storage.Provider
VDRIRegistry() vdri.Registry
}
Provider contains dependencies for the protocol and is typically created by using aries.Context()
type RequestPresentation ¶
type RequestPresentation struct {
Type string `json:"@type,omitempty"`
// Comment is a field that provides some human readable information about the proposed presentation.
// TODO: Should follow DIDComm conventions for l10n. [Issue #1300]
Comment string `json:"comment,omitempty"`
// RequestPresentations is a slice of attachments defining the acceptable formats for the presentation.
RequestPresentations []decorator.Attachment `json:"request_presentations~attach,omitempty"`
}
RequestPresentation describes values that need to be revealed and predicates that need to be fulfilled.
type Service ¶
Service for the presentproof protocol
func (*Service) ActionContinue ¶
ActionContinue allows proceeding with the action by the piID
func (*Service) ActionStop ¶
ActionStop allows stopping the action by the piID
func (*Service) HandleInbound ¶
HandleInbound handles inbound message (presentproof protocol)
func (*Service) HandleOutbound ¶
func (s *Service) HandleOutbound(_ service.DIDCommMsg, _, _ string) error
HandleOutbound handles outbound message (presentproof protocol)