Skip to content

Latest commit

 

History

History
127 lines (99 loc) · 11 KB

SupportedRFCs.md

File metadata and controls

127 lines (99 loc) · 11 KB

Aries AIP and RFCs Supported in Aries Cloud Agent Python

This document provides a summary of the adherence of ACA-Py to the Aries Interop Profiles, and an overview of the ACA-Py feature set. This document is manually updated and as such, may not be up to date with the most recent release of ACA-Py or the repository main branch. Reminders (and PRs!) to update this page are welcome! If you have any questions, please contact us on the #aries channel on Hyperledger Discord or through an issue in this repo.

Last Update: 2021-12-22, Release 0.7.3

The checklist version of this document was created as a joint effort between Northern Block, Animo Solutions and the Ontario government, on behalf of the Ontario government.

AIP Support and Interoperability

See the Aries Agent Test Harness and the Aries Interoperability Status for daily interoperability test run results between ACA-Py and other Aries Frameworks and Agents.

AIP Version Supported Notes
AIP 1.0 Fully supported.
AIP 2.0 ⚠️ Largely supported with exceptions highlighted below.

A summary of the Aries Interop Profiles and Aries RFCs supported in ACA-Py can be found later in this document.

Platform Support

Platform Supported Notes
Server
Kubernetes BC Gov has extensive experience running ACA-Py on Red Hat's OpenShift Kubernetes Distribution.
Docker BC Gov publishes docker images on Docker Hub
Desktop ⚠️ Could be run as a local service on the computer
iOS
Android
Browser

Agent Types

Role Supported Notes
Issuer
Holder
Verifier
Mediator Service Coming Soon: An aries-mediator-service repository that is a pre-configured, production ready Aries Mediator Service based on a released version of ACA-Py.
Mediator Client
Indy Transaction Author
Indy Transaction Endorser

Credential Types

Credential Type Supported Notes
Indy AnonCreds Includes full issue VC, present proof, and revoke VC support.
W3C Standard Verifiable Credentials Supports only JSON-LD Credentials using the Ed25519Signature2018, BbsBlsSignature2020 and BbsBlsSignatureProof2020 signature suites.

Supports the DIF Presentation Exchange data format for presentation requests and presentation submissions.

DID Methods

Method Supported Notes
did:sov
did:web Resolution only
did:key
did:peer ⚠️ AIP 1.0-based did:peer DIDs are used, meaning the DIDs are not prefixed with did:peer and are not following the conventions of AIP 2.0's RFC 0627: Static Peer DIDs

Secure Storage Types

Secure Storage Types Supported Notes
Indy SDK "indy-wallet" Full support for the features of the "indy-wallet" secure storage capabilities found in the Indy SDK.
Aries Askar ⚠️ Aries Askar provides equivalent/evolved secure storage and cryptography support to the "indy-wallet" part of the Indy SDK. Available in ACA-Py (activated using a startup parameters but not yet widely used. When using Askar, other Indy SDK capabilities are handled by Indy Shared RS (AnonCreds) and Indy VDR (Indy ledger interactions).

Miscellaneous Features

Feature Supported Notes
Multi use invitations
Invitations using public did
Implicit pickup of messages in role of mediator
Revocable Indy Credentials
Multi-Tenancy Documentation
Connection-less (non OOB protocol / AIP 1.0) Only for issue credential and present proof
Connection-less (OOB protocol / AIP 2.0) Only for present proof
Signed Attachments Used for OOB
Multi Indy ledger support (with automatic detection) Support added in the 0.7.3 Release.
Persistence of mediated messages 🚧 Messages are currently stored in an in-memory and so are subject to loss in the case of a sudden termination of an ACA-Py process. The in-memory queue is properly handled in the case of a graceful shutdown of an ACA-Py process (e.g. processing of the queue completes and no new messages are accepted). Work is underway to add useful external queues handling, including support for multiple external queue implementations (e.g., redis and kafka).
Storage Import & Export ⚠️ Supported by directly interacting with the indy-sdk or Aries Askar (e.g., no Admin API endpoint available for wallet import & export). Aries Askar support includes the ability to import storage exported from the Indy SDK's "indy-wallet" component.

Supported RFCs

AIP 1.0

All RFCs listed in AIP 1.0 are fully supported in ACA-Py. The following table provides notes about the implementation of specific RFCs.

RFC Supported Notes
0025-didcomm-transports ACA-Py currently supports HTTP and WebSockets for both inbound and outbound messaging. Transports are pluggable and an agent instance can use multiple inbound and outbound transports.
0160-connection-protocol The agent supports Connection/DID exchange initiated from both plaintext invitations and public DIDs that enable bypassing the invitation message.

AIP 2.0

All RFCs listed in AIP 2.0 (including the sub-targets) are fully supported in ACA-Py EXCEPT as noted in the table below.

RFC Supported Notes
0023-did-exchange ⚠️ Not using DIDDoc conventions yet, still using DID format of 0160-connections (which is incorrect and outdated). Also using incorrect format for did:peer (or not using a did: prefix at all)
0183-revocation-notification 🆕 This was added in release 0.7.3 and will be removed from this list with the next update.
0211-route-coordination ⚠️ Only pre-AIP 2.0 version. Must be updated to use did:key for full AIP 2.0 support
0317-please-ack
0360-use-did-key ⚠️ Creating and resolving did:key DIDs is supported, but not all protocols are updated yet to use did:key. This is a breaking change for AIP 1.0 -> AIP 2.0.
0519-goal-codes 🆕 This was added in release 0.7.3 and will be removed from this list with the next update.
0557-discover-features-v2 🆕 This was added in release 0.7.3 and will be removed from this list with the next update.
0587-encryption-envelope-v2 🚧 Support for the DIDComm V2 envelope format is a work in progress, including the PRs (AIP-2 base64url consistency and Small AIP-2 updates)
0627-static-peer-dids

Other Supported RFCs

RFC Supported Notes
0031-discover-features Rarely (never?) used, and in implementing the V2 version of the protocol, the V1 version was found to be incomplete and was updated as part of Release 0.7.3
0028-introduce
00509-action-menu