vcwallet

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Mar 30, 2022 License: Apache-2.0 Imports: 22 Imported by: 8

Documentation

Index

Constants

View Source
const (
	// InvalidRequestErrorCode is typically a code for invalid requests.
	InvalidRequestErrorCode = command.Code(iota + command.VCWallet)

	// CreateProfileErrorCode for errors during create wallet profile operations.
	CreateProfileErrorCode

	// UpdateProfileErrorCode for errors during update wallet profile operations.
	UpdateProfileErrorCode

	// OpenWalletErrorCode for errors during wallet unlock operations.
	OpenWalletErrorCode

	// CloseWalletErrorCode for errors during wallet lock operations.
	CloseWalletErrorCode

	// AddToWalletErrorCode for errors while adding contents to wallet.
	AddToWalletErrorCode

	// RemoveFromWalletErrorCode for errors while removing contents from wallet.
	RemoveFromWalletErrorCode

	// GetFromWalletErrorCode for errors while getting a content from wallet.
	GetFromWalletErrorCode

	// GetAllFromWalletErrorCode for errors while getting all contents from wallet.
	GetAllFromWalletErrorCode

	// QueryWalletErrorCode for errors while querying credentials contents from wallet.
	QueryWalletErrorCode

	// IssueFromWalletErrorCode for errors while issuing a credential from wallet.
	IssueFromWalletErrorCode

	// ProveFromWalletErrorCode for errors while producing a presentation from wallet.
	ProveFromWalletErrorCode

	// VerifyFromWalletErrorCode for errors while verifying a presentation or credential from wallet.
	VerifyFromWalletErrorCode

	// DeriveFromWalletErrorCode for errors while deriving a credential from wallet.
	DeriveFromWalletErrorCode

	// CreateKeyPairFromWalletErrorCode for errors while creating key pair from wallet.
	CreateKeyPairFromWalletErrorCode

	// ProfileExistsErrorCode for errors while checking if profile exists for a wallet user.
	ProfileExistsErrorCode

	// DIDConnectErrorCode for errors while performing DID connect in wallet.
	DIDConnectErrorCode

	// ProposePresentationErrorCode for errors while proposing presentation.
	ProposePresentationErrorCode

	// PresentProofErrorCode for errors while presenting proof from wallet.
	PresentProofErrorCode

	// ProposeCredentialErrorCode for errors while proposing credential from wallet.
	ProposeCredentialErrorCode

	// RequestCredentialErrorCode for errors while request credential from wallet for issue credential protocol.
	RequestCredentialErrorCode

	// ResolveCredentialManifestErrorCode for errors while resolving credential manifest from wallet.
	ResolveCredentialManifestErrorCode
)

Error codes.

View Source
const (
	CommandName = "vcwallet"

	// command methods.
	CreateProfileMethod             = "CreateProfile"
	UpdateProfileMethod             = "UpdateProfile"
	ProfileExistsMethod             = "ProfileExists"
	OpenMethod                      = "Open"
	CloseMethod                     = "Close"
	AddMethod                       = "Add"
	RemoveMethod                    = "Remove"
	GetMethod                       = "Get"
	GetAllMethod                    = "GetAll"
	QueryMethod                     = "Query"
	IssueMethod                     = "Issue"
	ProveMethod                     = "Prove"
	VerifyMethod                    = "Verify"
	DeriveMethod                    = "Derive"
	CreateKeyPairMethod             = "CreateKeyPair"
	ConnectMethod                   = "Connect"
	ProposePresentationMethod       = "ProposePresentation"
	PresentProofMethod              = "PresentProof"
	ProposeCredentialMethod         = "ProposeCredential"
	RequestCredentialMethod         = "RequestCredential"
	ResolveCredentialManifestMethod = "ResolveCredentialManifest"
)

All command operations.

View Source
const (
	LabelString = "label"
)

miscellaneous constants for the vc wallet command controller.

Variables

This section is empty.

Functions

This section is empty.

Types

type AddContentRequest

type AddContentRequest struct {
	WalletAuth

	// type of the content to be added to the wallet.
	// supported types: collection, credential, didResolutionResponse, metadata, connection, key
	ContentType wallet.ContentType `json:"contentType"`

	// content to be added to wallet content store.
	Content json.RawMessage `json:"content"`

	// ID of the wallet collection to which this content should belong.
	CollectionID string `json:"collectionID"`
}

AddContentRequest is request for adding a content to wallet.

type AuthCapabilityProvider

type AuthCapabilityProvider interface {
	// Returns HTTP Header Signer.
	GetHeaderSigner(authzKeyStoreURL, accessToken, secretShare string) HTTPHeaderSigner
}

AuthCapabilityProvider is for providing Authorization Capabilities (ZCAP-LD) feature for wallet's EDV and WebKMS components.

type Command

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

Command contains operations provided by verifiable credential wallet controller.

func New

func New(p provider, config *Config) *Command

New returns new verifiable credential wallet controller command instance.

func (*Command) Add

func (o *Command) Add(rw io.Writer, req io.Reader) command.Error

Add adds given data model to wallet content store.

func (*Command) Close

func (o *Command) Close(rw io.Writer, req io.Reader) command.Error

Close locks given user's wallet.

func (*Command) Connect

func (o *Command) Connect(rw io.Writer, req io.Reader) command.Error

Connect accepts out-of-band invitations and performs DID exchange.

func (*Command) CreateKeyPair

func (o *Command) CreateKeyPair(rw io.Writer, req io.Reader) command.Error

CreateKeyPair creates key pair from wallet.

func (*Command) CreateProfile

func (o *Command) CreateProfile(rw io.Writer, req io.Reader) command.Error

CreateProfile creates new wallet profile for given user.

func (*Command) Derive

func (o *Command) Derive(rw io.Writer, req io.Reader) command.Error

Derive derives a credential from wallet.

func (*Command) Get

func (o *Command) Get(rw io.Writer, req io.Reader) command.Error

Get returns wallet content by ID from wallet content store.

func (*Command) GetAll

func (o *Command) GetAll(rw io.Writer, req io.Reader) command.Error

GetAll gets all wallet content from wallet content store for given type.

func (*Command) GetHandlers

func (o *Command) GetHandlers() []command.Handler

GetHandlers returns list of all commands supported by this controller command.

func (*Command) Issue

func (o *Command) Issue(rw io.Writer, req io.Reader) command.Error

Issue adds proof to a Verifiable Credential from wallet.

func (*Command) Open

func (o *Command) Open(rw io.Writer, req io.Reader) command.Error

Open unlocks given user's wallet and returns a token for subsequent use of wallet features.

func (*Command) PresentProof

func (o *Command) PresentProof(rw io.Writer, req io.Reader) command.Error

PresentProof sends present proof message from wallet to relying party. https://w3c-ccg.github.io/universal-wallet-interop-spec/#presentproof

Currently Supporting [0454-present-proof-v2](https://github.com/hyperledger/aries-rfcs/tree/master/features/0454-present-proof-v2)

func (*Command) ProfileExists

func (o *Command) ProfileExists(rw io.Writer, req io.Reader) command.Error

ProfileExists checks if wallet profile exists for given wallet user.

func (*Command) ProposeCredential added in v0.1.8

func (o *Command) ProposeCredential(rw io.Writer, req io.Reader) command.Error

ProposeCredential sends propose credential message from wallet to issuer. https://w3c-ccg.github.io/universal-wallet-interop-spec/#proposecredential

Currently Supporting : 0453-issueCredentialV2 https://github.com/hyperledger/aries-rfcs/blob/main/features/0453-issue-credential-v2/README.md

func (*Command) ProposePresentation

func (o *Command) ProposePresentation(rw io.Writer, req io.Reader) command.Error

ProposePresentation accepts out-of-band invitation and sends message proposing presentation from wallet to relying party. https://w3c-ccg.github.io/universal-wallet-interop-spec/#proposepresentation

Currently Supporting [0454-present-proof-v2](https://github.com/hyperledger/aries-rfcs/tree/master/features/0454-present-proof-v2)

func (*Command) Prove

func (o *Command) Prove(rw io.Writer, req io.Reader) command.Error

Prove produces a Verifiable Presentation from wallet.

func (*Command) Query

func (o *Command) Query(rw io.Writer, req io.Reader) command.Error

Query runs credential queries against wallet credential contents and returns presentation containing credential results.

func (*Command) Remove

func (o *Command) Remove(rw io.Writer, req io.Reader) command.Error

Remove deletes given content from wallet content store.

func (*Command) RequestCredential added in v0.1.8

func (o *Command) RequestCredential(rw io.Writer, req io.Reader) command.Error

RequestCredential sends request credential message from wallet to issuer and optionally waits for credential fulfillment. https://w3c-ccg.github.io/universal-wallet-interop-spec/#requestcredential

Currently Supporting : 0453-issueCredentialV2 https://github.com/hyperledger/aries-rfcs/blob/main/features/0453-issue-credential-v2/README.md

func (*Command) ResolveCredentialManifest added in v0.1.8

func (o *Command) ResolveCredentialManifest(rw io.Writer, req io.Reader) command.Error

ResolveCredentialManifest resolves given credential manifest by credential fulfillment or credential. Supports: https://identity.foundation/credential-manifest/

Writes list of resolved descriptors to writer or returns error if operation fails.

func (*Command) UpdateProfile

func (o *Command) UpdateProfile(rw io.Writer, req io.Reader) command.Error

UpdateProfile updates an existing wallet profile for given user.

func (*Command) Verify

func (o *Command) Verify(rw io.Writer, req io.Reader) command.Error

Verify verifies credential/presentation from wallet.

type Config

type Config struct {
	// EDV header signer, typically used for introducing zcapld feature.
	EdvAuthzProvider AuthCapabilityProvider
	// Web KMS header signer, typically used for introducing zcapld feature.
	WebKMSAuthzProvider AuthCapabilityProvider
	// option is a performance optimization that speeds up queries by getting full documents from
	// the EDV server instead of only document locations.
	EDVReturnFullDocumentsOnQuery bool
	// this EDV option is a performance optimization that allows for restStore.Batch to only require one REST call.
	EDVBatchEndpointExtensionEnabled bool
	// Aries Web KMS cache size configuration.
	WebKMSCacheSize int
	// Default token expiry for all wallet profiles created.
	// Will be used only if wallet unlock request doesn't supply default timeout value.
	DefaultTokenExpiry time.Duration
}

Config contains properties to customize verifiable credential wallet controller. All properties of this config are optional, but they can be used to customize wallet's webkms and edv client's.

type ConnectOpts

type ConnectOpts struct {
	// Label to be shared with the other agent during the subsequent DID exchange.
	MyLabel string `json:"myLabel,omitempty"`

	// router connections to be used to establish connection.
	RouterConnections []string `json:"routerConnections,omitempty"`

	// DID to be used when reusing a connection.
	ReuseConnection string `json:"reuseConnection,omitempty"`

	// To use any recognized DID in the services array for a reusable connection.
	ReuseAnyConnection bool `json:"reuseAnyConnection,omitempty"`

	// Timeout (in milliseconds) waiting for connection status to be completed.
	Timeout time.Duration `json:"timeout,omitempty"`
}

ConnectOpts is option for accepting out-of-band invitation and to perform DID exchange.

type ConnectRequest

type ConnectRequest struct {
	WalletAuth

	// out-of-band invitation to establish connection.
	Invitation *outofband.Invitation `json:"invitation"`

	ConnectOpts
}

ConnectRequest is request model for wallet DID connect operation.

type ConnectResponse

type ConnectResponse struct {
	// connection ID of the connection established.
	ConnectionID string `json:"connectionID"`
}

ConnectResponse is response model from wallet DID connection operation.

type ContentQueryRequest

type ContentQueryRequest struct {
	WalletAuth

	// credential query(s) for querying wallet contents.
	Query []*wallet.QueryParams `json:"query"`
}

ContentQueryRequest is request model for querying wallet contents.

type ContentQueryResponse

type ContentQueryResponse struct {
	// response presentation(s) containing query results.
	Results []*verifiable.Presentation `json:"results"`
}

ContentQueryResponse response for wallet content query.

type CreateKeyPairRequest

type CreateKeyPairRequest struct {
	WalletAuth

	// type of the key to be created.
	KeyType kms.KeyType `json:"keyType,omitempty"`
}

CreateKeyPairRequest is request model for creating key pair from wallet.

type CreateKeyPairResponse

type CreateKeyPairResponse struct {
	*wallet.KeyPair
}

CreateKeyPairResponse is response model for creating key pair from wallet.

type CreateOrUpdateProfileRequest

type CreateOrUpdateProfileRequest struct {
	// Unique identifier to identify wallet user
	UserID string `json:"userID"`

	// passphrase for local kms for key operations.
	// Optional, if this option is provided then wallet for this profile will use local KMS for key operations.
	LocalKMSPassphrase string `json:"localKMSPassphrase,omitempty"`

	// passphrase for web/remote kms for key operations.
	// Optional, if this option is provided then wallet for this profile will use web/remote KMS for key operations.
	KeyStoreURL string `json:"keyStoreURL,omitempty"`

	// edv configuration for storing wallet contents for this profile
	// Optional, if not provided then agent storage provider will be used as store provider.
	EDVConfiguration *EDVConfiguration `json:"edvConfiguration,omitempty"`
}

CreateOrUpdateProfileRequest is request model for creating a new wallet profile or updating an existing wallet profile.

type DeriveRequest

type DeriveRequest struct {
	WalletAuth

	// ID of the credential already saved in wallet content store.
	// optional, if provided then this option takes precedence.
	StoredCredentialID string `json:"storedCredentialID"`

	// List of raw credential to be presented.
	// optional, will be used only if other options is not provided.
	RawCredential json.RawMessage `json:"rawCredential"`

	// DeriveOptions options for deriving credential
	*wallet.DeriveOptions `json:"deriveOption"`
}

DeriveRequest is request model for deriving a credential from wallet.

type DeriveResponse

type DeriveResponse struct {
	// credential derived.
	Credential *verifiable.Credential `json:"credential"`
}

DeriveResponse is response for derived credential operation.

type EDVConfiguration

type EDVConfiguration struct {
	// EDV server URL for storing wallet contents.
	ServerURL string `json:"serverURL,omitempty"`

	// EDV vault ID for storing the wallet contents.
	VaultID string `json:"vaultID,omitempty"`

	// Encryption key ID of already existing key in wallet profile kms.
	// If profile is using localkms then wallet will create this key set for wallet user.
	EncryptionKeyID string `json:"encryptionKID,omitempty"`

	// MAC operation key ID of already existing key in wallet profile kms.
	// If profile is using localkms then wallet will create this key set for wallet user.
	MACKeyID string `json:"macKID,omitempty"`
}

EDVConfiguration contains configuration for EDV settings for profile creation.

type GetAllContentRequest

type GetAllContentRequest struct {
	WalletAuth

	// type of the contents to be returned from wallet.
	// supported types: collection, credential, didResolutionResponse, metadata, connection
	ContentType wallet.ContentType `json:"contentType"`

	// ID of the collection on which the response contents to be filtered.
	CollectionID string `json:"collectionID,omitempty"`
}

GetAllContentRequest is request for getting all contents from wallet for given content type.

type GetAllContentResponse

type GetAllContentResponse struct {
	// contents retrieved from wallet content store.
	// map of content ID to content.
	Contents map[string]json.RawMessage `json:"contents"`
}

GetAllContentResponse response for get all content by content type wallet operation.

type GetContentRequest

type GetContentRequest struct {
	WalletAuth

	// type of the content to be returned from wallet.
	// supported types: collection, credential, didResolutionResponse, metadata, connection
	ContentType wallet.ContentType `json:"contentType"`

	// ID of the content to be returned from wallet
	ContentID string `json:"contentID"`
}

GetContentRequest is request for getting a content from wallet.

type GetContentResponse

type GetContentResponse struct {
	// content retrieved from wallet content store.
	Content json.RawMessage `json:"content"`
}

GetContentResponse response for get content from wallet operation.

type HTTPHeaderSigner

type HTTPHeaderSigner interface {
	// SignHeader header with capability.
	SignHeader(req *http.Request, capabilityBytes []byte) (*http.Header, error)
}

HTTPHeaderSigner is for http header signing, typically used for zcapld functionality.

type IssueRequest

type IssueRequest struct {
	WalletAuth

	// raw credential to be issued from wallet.
	Credential json.RawMessage `json:"credential"`

	// proof options for issuing credential
	ProofOptions *wallet.ProofOptions `json:"proofOptions"`
}

IssueRequest is request model for issuing credential from wallet.

type IssueResponse

type IssueResponse struct {
	// credential issued.
	Credential *verifiable.Credential `json:"credential"`
}

IssueResponse is response for issue credential interface from wallet.

type LockWalletRequest

type LockWalletRequest struct {
	// user ID of the wallet to be locked.
	UserID string `json:"userID"`
}

LockWalletRequest contains options for locking wallet.

type LockWalletResponse

type LockWalletResponse struct {
	// Closed status of the wallet lock operation.
	// if true, wallet is closed successfully
	// if false, wallet is already closed or never unlocked.
	Closed bool `json:"closed"`
}

LockWalletResponse contains response for wallet lock operation.

type PresentProofRequest

type PresentProofRequest struct {
	WalletAuth

	// Thread ID from request presentation response
	ThreadID string `json:"threadID,omitempty"`

	// presentation to be sent as part of present proof message.
	Presentation json.RawMessage `json:"presentation,omitempty"`

	// If true then wallet will wait for present proof protocol status to be
	// done or abandoned till given Timeout.
	// Also, will return web redirect info if found in acknowledgment message or problem-report.
	WaitForDone bool `json:"waitForDone,omitempty"`

	// Optional timeout (in milliseconds) waiting for present proof operation to be done.
	// will be taken into account only when WaitForDone is enabled.
	// If not provided then wallet will use its default timeout.
	Timeout time.Duration `json:"WaitForDoneTimeout,omitempty"`
}

PresentProofRequest is request model from wallet present proof operation. Supported attachment MIME type "application/ld+json".

type PresentProofResponse added in v0.1.8

type PresentProofResponse struct {
	wallet.CredentialInteractionStatus
}

PresentProofResponse is response model from wallet present proof operation.

type ProposeCredentialRequest added in v0.1.8

type ProposeCredentialRequest struct {
	WalletAuth

	// out-of-band invitation to establish connection and send propose credential message.
	Invitation *wallet.GenericInvitation `json:"invitation"`

	// Optional From DID option to customize sender DID.
	FromDID string `json:"from,omitempty"`

	// Timeout (in milliseconds) waiting for operation to be completed.
	Timeout time.Duration `json:"timeout,omitempty"`

	// Options for accepting out-of-band invitation and to perform DID exchange (for DIDComm V1).
	ConnectionOpts ConnectOpts `json:"connectOptions,omitempty"`
}

ProposeCredentialRequest is request model for performing propose credential operation from wallet.

type ProposeCredentialResponse added in v0.1.8

type ProposeCredentialResponse struct {
	// response offer credential message from issuer.
	OfferCredential *service.DIDCommMsgMap `json:"offerCredential,omitempty"`
}

ProposeCredentialResponse is response model from wallet propose credential operation.

type ProposePresentationRequest

type ProposePresentationRequest struct {
	WalletAuth

	// out-of-band invitation to establish connection and send propose presentation message.
	Invitation *wallet.GenericInvitation `json:"invitation"`

	// Optional From DID option to customize sender DID.
	FromDID string `json:"from,omitempty"`

	// Timeout (in milliseconds) waiting for operation to be completed.
	Timeout time.Duration `json:"timeout,omitempty"`

	// Options for accepting out-of-band invitation and to perform DID exchange (for DIDComm V1).
	ConnectionOpts ConnectOpts `json:"connectOptions,omitempty"`
}

ProposePresentationRequest is request model for performing propose presentation operation from wallet.

type ProposePresentationResponse

type ProposePresentationResponse struct {
	// response request presentation message from  relying party.
	PresentationRequest *service.DIDCommMsgMap `json:"presentationRequest,omitempty"`
}

ProposePresentationResponse is response model from wallet propose presentation operation.

type ProveRequest

type ProveRequest struct {
	WalletAuth

	// IDs of credentials already saved in wallet content store.
	StoredCredentials []string `json:"storedCredentials"`

	// List of raw credentials to be presented.
	RawCredentials []json.RawMessage `json:"rawCredentials"`

	// Presentation to be proved.
	Presentation json.RawMessage `json:"presentation"`

	// proof options for issuing credential.
	ProofOptions *wallet.ProofOptions `json:"proofOptions"`
}

ProveRequest for producing verifiable presentation from wallet. Contains options for proofs and credential. Any combination of credential option can be mixed.

type ProveResponse

type ProveResponse struct {
	// presentation response from prove operation.
	Presentation *verifiable.Presentation `json:"presentation"`
}

ProveResponse contains response presentation from prove operation.

type RemoveContentRequest

type RemoveContentRequest struct {
	WalletAuth

	// type of the content to be removed from the wallet.
	// supported types: collection, credential, didResolutionResponse, metadata, connection
	ContentType wallet.ContentType `json:"contentType"`

	// ID of the content to be removed from wallet
	ContentID string `json:"contentID"`
}

RemoveContentRequest is request for removing a content from wallet.

type RequestCredentialRequest added in v0.1.8

type RequestCredentialRequest struct {
	WalletAuth

	// Thread ID from offer credential response previously received during propose credential interaction.
	ThreadID string `json:"threadID,omitempty"`

	// presentation to be sent as part of request credential message.
	Presentation json.RawMessage `json:"presentation,omitempty"`

	// If true then wallet will wait till it receives credential fulfillment response from issuer for given Timeout.
	// Also, will return web redirect info if found in fulfillment message or problem-report.
	WaitForDone bool `json:"waitForDone,omitempty"`

	// Optional timeout (in milliseconds) waiting for credential fulfillment to arrive.
	// will be taken into account only when WaitForDone is enabled.
	// If not provided then wallet will use its default timeout.
	Timeout time.Duration `json:"WaitForDoneTimeout,omitempty"`
}

RequestCredentialRequest is request model from wallet request credential operation. Supported attachment MIME type "application/ld+json".

type RequestCredentialResponse added in v0.1.8

type RequestCredentialResponse struct {
	wallet.CredentialInteractionStatus
}

RequestCredentialResponse is response model from wallet request credential operation.

type ResolveCredentialManifestRequest added in v0.1.8

type ResolveCredentialManifestRequest struct {
	WalletAuth

	// Credential Manifest on which given credential fulfillment or credential needs to be resolved.
	Manifest json.RawMessage `json:"manifest,omitempty"`

	// Fulfillment to be be resolved.
	// If provided, then this option takes precedence over credential resolve option.
	Fulfillment json.RawMessage `json:"fulfillment,omitempty"`

	// Credential to be be resolved, to be provided along with 'DescriptorID' to be used for resolving.
	Credential json.RawMessage `json:"credential,omitempty"`

	// ID of the Credential from wallet content to be be resolved, to be provided along with 'DescriptorID'.
	CredentialID string `json:"credentialID,omitempty"`

	// ID of the output descriptor to be used for resolving given credential.
	DescriptorID string `json:"descriptorID,omitempty"`
}

ResolveCredentialManifestRequest is request model for resolving credential manifest from wallet.

type ResolveCredentialManifestResponse added in v0.1.8

type ResolveCredentialManifestResponse struct {
	// List of Resolved Descriptor results.
	Resolved []*cm.ResolvedDescriptor `json:"resolved,omitempty"`
}

ResolveCredentialManifestResponse is response model from wallet credential manifest resolve operation.

type UnlockAuth

type UnlockAuth struct {
	// Http header 'authorization' bearer token to be used.
	// Optional, only if required by wallet user (for webkms or edv).
	AuthToken string `json:"authToken,omitempty"`

	// Capability if ZCAP sign header feature to be used for authorizing access.
	// Optional, can be used only if ZCAP sign header feature is configured with command controller.
	Capability string `json:"capability,omitempty"`

	// AuthZKeyStoreURL if ZCAP sign header feature to be used for authorizing access.
	// Optional, can be used only if ZCAP sign header feature is configured with command controller.
	AuthZKeyStoreURL string `json:"authzKeyStoreURL,omitempty"`

	// SecretShare if ZCAP sign header feature to be used for authorizing access.
	// Optional, can be used only if ZCAP sign header feature is configured with command controller.
	SecretShare string `json:"secretShare,omitempty"`
}

UnlockAuth contains different options for authorizing access to wallet's EDV content store & webkms.

type UnlockWalletRequest

type UnlockWalletRequest struct {
	// user ID of the wallet to be unlocked.
	UserID string `json:"userID"`

	// passphrase for local kms for key operations.
	// Optional, to be used if profile for this wallet user is setup with local KMS.
	LocalKMSPassphrase string `json:"localKMSPassphrase,omitempty"`

	// WebKMSAuth for authorizing acccess to web/remote kms.
	// Optional, to be used if profile for this wallet user is setup with web/remote KMS.
	WebKMSAuth *UnlockAuth `json:"webKMSAuth"`

	// Options for authorizing access to wallet's EDV content store.
	// Optional, to be used only if profile for this wallet user is setup to use EDV as content store.
	EDVUnlock *UnlockAuth `json:"edvUnlocks"`

	// Time duration in milliseconds after which wallet will expire its unlock status.
	Expiry time.Duration `json:"expiry,omitempty"`
}

UnlockWalletRequest contains different options for unlocking wallet.

type UnlockWalletResponse

type UnlockWalletResponse struct {
	// Token for granting access to wallet for subsequent wallet operations.
	Token string `json:"token,omitempty"`
}

UnlockWalletResponse contains response for wallet unlock operation.

type VerifyRequest

type VerifyRequest struct {
	WalletAuth

	// ID of the credential already saved in wallet content store.
	// optional, if provided then this option takes precedence over other options.
	StoredCredentialID string `json:"storedCredentialID"`

	// List of raw credential to be presented.
	// optional, if provided then this option takes precedence over presentation options.
	RawCredential json.RawMessage `json:"rawCredential"`

	// Presentation to be proved.
	// optional, will be used only if other options are not provided.
	Presentation json.RawMessage `json:"presentation"`
}

VerifyRequest request for verifying a credential or presentation from wallet. Any one of the credential option should be used.

type VerifyResponse

type VerifyResponse struct {
	// if true then verification is successful.
	Verified bool `json:"verified"`

	// error details if verified is false.
	Error string `json:"error,omitempty"`
}

VerifyResponse is response model for wallet verify operation.

type WalletAuth

type WalletAuth struct {
	// Authorization token for performing wallet operations.
	Auth string `json:"auth"`

	// ID of wallet user.
	UserID string `json:"userID"`
}

WalletAuth contains wallet auth parameters for performing wallet operations.

type WalletUser

type WalletUser struct {
	// ID of wallet user.
	ID string `json:"userID"`
}

WalletUser contains wallet user info for performing profile operations.

Jump to

Keyboard shortcuts

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