Indy SDK Wishlist

Indy Agent Connect-a-thon 2019-02-22

N-wise relationship support

  • APIs should support N parties as peers even if N=2 for now

  • Need cryptography to avoid correlation

DID Doc support

  • Fully qualified DIDs needed first

  • All functions that take a DID as an argument should tolerate taking a DID with a predefined prefix.

  • Down the road: pluggable DID resolvers.

  • Multiple key support

  • Review the Sovrin DID spec to ensure it has the right language around limitations relative to other DID methods (biometrics discouraged from DID documents).

Non-Sovrin Verifiable Credentials

  • At least provide placeholders for Envoy contributors

  • Alternate representations of a credential (Web AuthN)

Message Trust Context

  • Messages should contain indicators to signal how much trust should be given to the message

    • Did it arrive encrypted?

    • User configuration for a default trust level that will trigger warnings or rejection.

Wallet deletion

  • Keys (and other items) that are no longer needed

  • Storing thread-state or protocol state in a generalized way in the wallet

Key to DID lookup

  • Current approaches are not efficient: tags, reverse lookups

Loading the in-memory wallet:

  • for unit test

  • development

Encryption:

  • Pluggable cypher suites with the wallet

  • HSM / TPM support

CI / CD wishlist:

  • WASM build as an official output with CI / CD

    • Blocked by LibZMQ dependency

  • CI tests run on Arm

  • Currently tests to reduce the time needed

  • IOS dependencies outside LibIndy should be built into it, similar to Android builds

Platform updates:

  • Newest version of LibSodium

    • Or document why we can’t change it.

  • Improvements for Python 3.7

  • Can use features today that are backwards compatible to Python 3.5

Wrapper wishlist:

  • Simple wrappers for integration tests (easy to maintain across languages)

  • “Phat Rappers” Fat wrappers for easy developer usage (language idiomatic language libraries) differentiated from thin language wrappers

Agents in the SDK

  • Wallet for a static agent (read-only storage for the wallet layer)

  • CLI Agent (Spencer’s cookie jar demo)

Schema 2.0 / W3C VC

  • DIF Credential Manifest

  • Encoding improvements

    • More encoding types in the SDK

    • Encoding extension mechanism

Integrating Ursa

  • Increased predicate support

  • Credential aggregation

  • Credential chaining

  • M of N issued credentials

Delegatable credentials

  • Data custody (GDPR)

  • Rental agreements (delegates authorization)

Credential verification improvements

  • Partial proving (date of revocation)

  • Proving to a group of people

  • Generate both repudiable and non-repudiable proofs

Agent Authorization Policy