aries

package module
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: 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
internal
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/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/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 It uses github.com/tink/go crypto primitives
Package tinkcrypto provides the default implementation of the common pkg/common/api/crypto.Crypto interface and the SPI pkg/framework/aries.crypto interface It uses github.com/tink/go crypto primitives
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/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.
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 Any incoming message of type "https://didcomm.org/basicmessage/1.0/message" can be handled by registering `basic.MessageService`.
Package basic provide basic message protocol features Any incoming message of type "https://didcomm.org/basicmessage/1.0/message" can be handled by registering `basic.MessageService`.
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/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
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