aries

package module
v0.1.6-0...-5c25bcb Latest Latest
Warning

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

Go to latest
Published: Feb 1, 2021 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.

Key concepts about the 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
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/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/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/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/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/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).
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/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/storage
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
vdr
test

Jump to

Keyboard shortcuts

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