Giter VIP home page Giter VIP logo

adapter's Introduction

Release License Godocs

Build Status codecov Go Report Card

Adapter

The TrustBloc Adapter acts as an intermediary between RP/Issuer components to support DIDComm operations. The edge-adapter uses the capabilities provided by Hyperledger Aries Framework Go such as DIDComm, W3C Verifiable Credentials(VC), W3C Decentralized Identifiers(DIDs), etc.

The Adapter contains following components.

The TrustBloc Adapters provide support for DIDComm to go through a router using Blinded Routing feature.

Build

To build from source see here.

Contributing

Thank you for your interest in contributing. Please see our community contribution guidelines for more information.

License

Apache License, Version 2.0 (Apache-2.0). See the LICENSE file.

adapter's People

Contributors

aholovko avatar baha-ai avatar dependabot[bot] avatar fqutishat avatar llorllale avatar moopli avatar rolsonquadras avatar sandrask avatar soluchok avatar sudeshrshetty avatar talwinder50 avatar troyronda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adapter's Issues

rp adapter: handle chapi response

RP makes OIDC request to adapter, adapter makes presentation req to wallet and wallet responds with presentation with consent credential (User is the holder of manifest credential) - without blinded routing

This scenario is strictly about the RP adapter fetching a verifiable presentation from the Issuer's adapter. The wallet will not provide any credentials at this point.

TLDR

All the RP adapter needs is a VP with two VCs:

  • UserConsentCredential
  • DIDDocCredential (contains the issuer's peer DID doc)

The RP Adapter will internally create a new connection record using its peer DID and the issuer's peer DID. Then, these credentials will be included in the request-presentation message as attachments.

Format of Credentials

UserConsentCredential

TODO (although for the moment the RP Adapter does not need to understand its format). Need to update this doc

Tasks

  • Parse verifiable presentation #84
  • parse issuer peer did doc #86
    • requires support for parsing peer DID Docs in aries-framework-go hyperledger-archives/aries-framework-go#1932 Juice not worth the squeeze. Will use did.ParseDocument() instead. The wallet should be using did.Doc.JSONBytes() to serialize the did doc properly.
    • partial support for parsing custom credentialSubjects in VCs in aries-framework-go - see example
  • create connection record rp <-> issuer (example) #86
  • capture and store RP's peer DID upon connection completion b/w user and RP adapter #94
  • build and send request-presentation message (aries-framework-go already supports this) #100
  • validate response
    • verify VP #100
    • json-ld context for issuer response vp #111
    • parse presentation submission #111
    • verify criteria in presentation definitions are met #108
  • refactor CHAPI request #121
  • refactor: embed did documents inside user consent VC #120
  • fix: chapiResponseHandler should expect a presentation_submission, not just any VP #120
  • return data to the RP #130
  • user redirection:
    • redirect back to RP #165
    • show error page is validation fails #128

RP: Send Presentation-Exchange request to Wallet

  • refactor rp-adapter-vue to follow layout in edge-agent #37
  • fetch presentation-exchange request and send via CHAPI #39
    • Leave placeholders or extension points to include additional stuff that will need to be included later (eg. oob invitation, etc)

Mock Aries Context Provider

Need to create a mock aries context provider. The current mock provider in aries, doesn't support Context completely.

RP Adapter: BDD Tests

  • Setup Hydra, RP Adapter, MySQL, trustbloc-did-method #74
  • Scenarios:
    • Register RP tenant at both hydra and RP adapter #74
    • did-exchange with wallet #132
    • return data to the rp #147

Use SQL Store for Aries Framework

Currently, leveldb is used as the backing storage for aries-framework-go. Update it to use SQL store, once its available in aries.

login phase

  • Redirect back to hydra when skipping #17
  • Data access layer #18
  • Register on OIDC Provider
  • Redirect to OIDC provider when NOT skipping #21
  • Save user, initial OIDC request from RP, access_token #21

rp adapter: refactor for iteration 1

The current implementation assumes an integration with an OIDC adapter for user authentication. Since there won't be user authentication at an OIDC provider for iteration 1, that leg of the flow must be short-circuited such that the user is always redirected to the consent screen where the CHAPI request will be delivered to their user agent.

The minimal steps for this flow are:

  1. Fetch the login details from hydra
  2. Search for rp.UserConnection with the clientID and the user Subject
    a. If none found, create one
  3. Accept the login request at hydra
  4. Fetch the consent details from hydra
  5. Create presentationdefinition
  6. Redirect to frontend

Setups

  • Vue.JS
  • Hydra
  • Custom app
  • Database

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.