aries

package module
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: May 2, 2023 License: Apache-2.0 Imports: 0 Imported by: 0

README

Release License Godocs

Build Status codecov Go Report Card

Hyperledger AriesFramework Go

Hyperledger Aries Framework Go enables trusted communication and data exchange based on interoperable distributed ledger technologies (DLTs) and peer-to-peer (P2P) interactions. We provide a flexible toolkit to enable the usage of decentralized identifiers (DIDs), DID-to-DID communications, verifiable credential exchange, transaction authorizations, and data communication protocols. From these building blocks, implementors can build agents, mediators and other DIDComm features in a manner that is agnostic to a particular DID network or governance framework.

We aim to provide Go implementations of:

We aim to enable usage of our protocol implementations in a wide variety of edge and cloud environments including servers, browsers, mobile, and devices. API bindings are supplied to enable these environments including:

  • Go
  • REST
  • JavaScript / WebAssembly
  • Android
  • iOS
  • C (future)

We implement demonstrations and test cases, that require a ledger system, using DIF Sidetree protocol as this protocol enables generic decentralized ledger systems to operate as a DID network.

Documentation

Aries Framework Go documentation can be viewed at GoDoc. The project structure is described here.

The project structure for the mobile bindings can be found here.

The packages intended for end developer usage are within the pkg/client folder along with the main agent package (pkg/framework/aries).

The project can also be used as a DIDComm Router/Mediator.

Information about Verifiable Credential Wallet framework based on Universal Wallet can be found here.

Key concepts about the Hyperledger Aries Project can be found here.

Details of the standards followed and specifications implemented by Hyperledger Aries Project can be found here.

Controller Bindings

Testing

Contributing

Found a bug? Ready to submit a PR? Want to submit a proposal for your grand idea? Follow our guidelines for more information to get you started!

License

Hyperledger Aries Framework Go is licensed under the Apache License Version 2.0 (Apache-2.0).

Hyperledger Aries Framework Go documentation is licensed under the Creative Commons Attribution 4.0 International License (CC-BY-4.0).

Documentation

Overview

Package aries enables Go developers to build solutions based on the Hyperledger Aries project (https://www.hyperledger.org/projects/aries).

Packages for end developer usage

pkg/framework/aries: The main package of the Aries Framework. This package enables creation of context based on provider options. This context is used by the client packages listed below. Reference: https://pkg.go.dev/github.com/hyperledger/aries-framework-go/pkg/framework/aries

pkg/client/didexchange: Provides did exchange protocol through SDK. Reference: https://pkg.go.dev/github.com/hyperledger/aries-framework-go/pkg/client/didexchange

pkg/controller/restapi/operation/didexchange: Provides did exchange protocol through restapi. Reference: https://pkg.go.dev/github.com/hyperledger/aries-framework-go/pkg/controller/restapi/operation/didexchange

Basic workflow

  1. Instantiate a aries instance using a provider options.
  2. Create a context using your aries instance.
  3. Create a client instance using its New func, passing the context.
  4. Use the funcs provided by each client to create your solution!
  5. Call aries.Close() to release resources.

Directories

Path Synopsis
cmd
aries-agentd Module
component
didconfig Module
kmscrypto Module
log Module
models Module
newstorage Module
storage/edv Module
storageutil Module
vdr Module
pkg
client/didexchange
Package didexchange enables relationship between two agents via DID Exchange Protocol.
Package didexchange enables relationship between two agents via DID Exchange Protocol.
client/introduce
Package introduce is responsible for the introduction between agents.
Package introduce is responsible for the introduction between agents.
client/issuecredential
Package issuecredential provides support for the Issue Credential Protocol 2.0: https://github.com/hyperledger/aries-rfcs/blob/master/features/0453-issue-credential-v2/README.md.
Package issuecredential provides support for the Issue Credential Protocol 2.0: https://github.com/hyperledger/aries-rfcs/blob/master/features/0453-issue-credential-v2/README.md.
client/legacyconnection
Package legacyconnection enables relationship between two agents via Connection RFC-0160 Protocol.
Package legacyconnection enables relationship between two agents via Connection RFC-0160 Protocol.
client/mediator
Package mediator enables the agent to register with the router.
Package mediator enables the agent to register with the router.
client/messaging
Package messaging enables the agent to perform many messaging features.
Package messaging enables the agent to perform many messaging features.
client/outofband
Package outofband provides support for the Out-of-Band protocols: https://github.com/hyperledger/aries-rfcs/blob/master/features/0434-outofband/README.md.
Package outofband provides support for the Out-of-Band protocols: https://github.com/hyperledger/aries-rfcs/blob/master/features/0434-outofband/README.md.
client/outofbandv2
Package outofbandv2 provides support for the Out-of-Band protocols following the DIDComm V2 spec: https://identity.foundation/didcomm-messaging/spec/#out-of-band-messages.
Package outofbandv2 provides support for the Out-of-Band protocols following the DIDComm V2 spec: https://identity.foundation/didcomm-messaging/spec/#out-of-band-messages.
client/presentproof
Package presentproof provides support for the Present Proof Protocol 2.0: https://github.com/hyperledger/aries-rfcs/blob/master/features/0454-present-proof-v2/README.md.
Package presentproof provides support for the Present Proof Protocol 2.0: https://github.com/hyperledger/aries-rfcs/blob/master/features/0454-present-proof-v2/README.md.
crypto
Package crypto contains the Crypto interface to be used by the framework.
Package crypto contains the Crypto interface to be used by the framework.
crypto/primitive/bbs12381g2pub
Package bbs12381g2pub contains BBS+ signing primitives and keys.
Package bbs12381g2pub contains BBS+ signing primitives and keys.
crypto/tinkcrypto
Package tinkcrypto provides the default implementation of the common pkg/common/api/crypto.Crypto interface and the SPI pkg/framework/aries.crypto interface
Package tinkcrypto provides the default implementation of the common pkg/common/api/crypto.Crypto interface and the SPI pkg/framework/aries.crypto interface
crypto/tinkcrypto/primitive/aead
Package aead provides implementations of the AEAD primitive.
Package aead provides implementations of the AEAD primitive.
crypto/tinkcrypto/primitive/aead/subtle
Package subtle provides subtle implementations of the AEAD primitive.
Package subtle provides subtle implementations of the AEAD primitive.
crypto/tinkcrypto/primitive/bbs
Package bbs provides implementations of BBS+ key management and primitives.
Package bbs provides implementations of BBS+ key management and primitives.
crypto/tinkcrypto/primitive/composite
Package composite provides the core crypto composite primitives such as ECDH-ES and ECDH-1PU to be used by JWE crypto
Package composite provides the core crypto composite primitives such as ECDH-ES and ECDH-1PU to be used by JWE crypto
crypto/tinkcrypto/primitive/composite/ecdh
Package ecdh provides implementations of payload encryption using ECDH-ES/1PU KW key wrapping with AEAD primitives.
Package ecdh provides implementations of payload encryption using ECDH-ES/1PU KW key wrapping with AEAD primitives.
crypto/tinkcrypto/primitive/secp256k1/subtle
Package subtle provides subtle implementations of the digital signature primitive.
Package subtle provides subtle implementations of the digital signature primitive.
didcomm/messaging
Package messaging provides message service features which enables agent framework to handle any incoming DIDComm message based on their type and purpose.
Package messaging provides message service features which enables agent framework to handle any incoming DIDComm message based on their type and purpose.
didcomm/messaging/msghandler
Package msghandler dynamically maintains the list of registered message services.
Package msghandler dynamically maintains the list of registered message services.
didcomm/messaging/service/basic
Package basic provide basic message protocol features
Package basic provide basic message protocol features
didcomm/messaging/service/http
Package http provides http-over-didcomm message service features.
Package http provides http-over-didcomm message service features.
doc/cm
Package cm contains methods that are useful for parsing and validating the objects defined in the Credential Manifest spec: https://identity.foundation/credential-manifest.
Package cm contains methods that are useful for parsing and validating the objects defined in the Credential Manifest spec: https://identity.foundation/credential-manifest.
doc/sdjwt
Package sdjwt implements creating JSON Web Token (JWT) documents that support selective disclosure of JWT claims.
Package sdjwt implements creating JSON Web Token (JWT) documents that support selective disclosure of JWT claims.
doc/sdjwt/holder
Package holder enables the Holder: an entity that receives SD-JWTs from the Issuer and has control over them.
Package holder enables the Holder: an entity that receives SD-JWTs from the Issuer and has control over them.
doc/sdjwt/issuer
Package issuer enables the Issuer: An entity that creates SD-JWTs.
Package issuer enables the Issuer: An entity that creates SD-JWTs.
doc/sdjwt/verifier
Package verifier enables the Verifier: An entity that requests, checks and extracts the claims from an SD-JWT and respective Disclosures.
Package verifier enables the Verifier: An entity that requests, checks and extracts the claims from an SD-JWT and respective Disclosures.
doc/signature/suite/bbsblssignature2020
Package bbsblssignature2020 implements the BBS+ Signature Suite 2020 signature suite (https://w3c-ccg.github.io/ldp-bbs2020) in conjunction with the signing and verification algorithms of the Linked Data Proofs.
Package bbsblssignature2020 implements the BBS+ Signature Suite 2020 signature suite (https://w3c-ccg.github.io/ldp-bbs2020) in conjunction with the signing and verification algorithms of the Linked Data Proofs.
doc/signature/suite/bbsblssignatureproof2020
Package bbsblssignatureproof2020 implements the BBS+ Signature Proof Suite 2020 signature suite (https://w3c-ccg.github.io/ldp-bbs2020) in conjunction with the signing and verification algorithms of the Linked Data Proofs.
Package bbsblssignatureproof2020 implements the BBS+ Signature Proof Suite 2020 signature suite (https://w3c-ccg.github.io/ldp-bbs2020) in conjunction with the signing and verification algorithms of the Linked Data Proofs.
doc/signature/suite/ecdsasecp256k1signature2019
Package ecdsasecp256k1signature2019 implements the EcdsaSecp256k1Signature2019 signature suite for the Linked Data Signatures specification (https://w3c-dvcg.github.io/lds-ecdsa-secp256k1-2019/).
Package ecdsasecp256k1signature2019 implements the EcdsaSecp256k1Signature2019 signature suite for the Linked Data Signatures specification (https://w3c-dvcg.github.io/lds-ecdsa-secp256k1-2019/).
doc/signature/suite/ed25519signature2018
Package ed25519signature2018 implements the Ed25519Signature2018 signature suite for the Linked Data Signatures [LD-SIGNATURES] specification.
Package ed25519signature2018 implements the Ed25519Signature2018 signature suite for the Linked Data Signatures [LD-SIGNATURES] specification.
doc/signature/suite/ed25519signature2020
Package ed25519signature2020 implements the Ed25519Signature2020 signature suite for the Linked Data Signatures [LD-SIGNATURES] specification.
Package ed25519signature2020 implements the Ed25519Signature2020 signature suite for the Linked Data Signatures [LD-SIGNATURES] specification.
doc/signature/suite/jsonwebsignature2020
Package jsonwebsignature2020 implements the JsonWebSignature2020 signature suite for the Linked Data Signatures specification (https://github.com/transmute-industries/lds-jws2020).
Package jsonwebsignature2020 implements the JsonWebSignature2020 signature suite for the Linked Data Signatures specification (https://github.com/transmute-industries/lds-jws2020).
doc/verifiable
Package verifiable implements Verifiable Credential and Presentation data model (https://www.w3.org/TR/vc-data-model).
Package verifiable implements Verifiable Credential and Presentation data model (https://www.w3.org/TR/vc-data-model).
framework/aries
Package aries provides a pluggable dependency framework, where implementors can customize primitives via Service Provider Interfaces (SPIs).
Package aries provides a pluggable dependency framework, where implementors can customize primitives via Service Provider Interfaces (SPIs).
framework/context
Package context creates a framework Provider context to add optional (non default) framework services and provides simple accessor methods to those same services.
Package context creates a framework Provider context to add optional (non default) framework services and provides simple accessor methods to those same services.
internal/gomocks/client/introduce
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/client/issuecredential
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/client/outofband
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/client/outofbandv2
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/client/presentproof
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/controller/command/issuecredential
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/controller/command/presentproof
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/controller/webnotifier
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/didcomm/common/service
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/didcomm/dispatcher
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/didcomm/messenger
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/didcomm/protocol/introduce
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/didcomm/protocol/issuecredential
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/didcomm/protocol/middleware/issuecredential
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/didcomm/protocol/middleware/presentproof
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/didcomm/protocol/presentproof
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/framework/aries/api/vdr
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/kms
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/spi/storage
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/store/did
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
internal/gomocks/store/verifiable
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
kms
ld
secretlock
Package secretlock contains secret lock services to secure keys used by the Aries agent and more specifically used by the KMS service.
Package secretlock contains secret lock services to secure keys used by the Aries agent and more specifically used by the KMS service.
secretlock/local
Package local provides a local secret lock service.
Package local provides a local secret lock service.
secretlock/local/masterlock/hkdf
Package hkdf provides an hkdf implementation of secretlock as a masterlock.
Package hkdf provides an hkdf implementation of secretlock as a masterlock.
secretlock/local/masterlock/pbkdf2
Package pbkdf2 provides an pbkdf2 implementation of secretlock as a masterlock.
Package pbkdf2 provides an pbkdf2 implementation of secretlock as a masterlock.
secretlock/noop
Package noop provides a noop secret lock service.
Package noop provides a noop secret lock service.
vdr
wallet
nolint
nolint
spi module
test
bdd Module
component Module
newstorage Module

Jump to

Keyboard shortcuts

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