-
Notifications
You must be signed in to change notification settings - Fork 33
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: initial cleanup and scripts for 0.5.0 (#149)
Signed-off-by: Timo Glastra <[email protected]>
- Loading branch information
1 parent
90d527a
commit d01f0b9
Showing
55 changed files
with
1,882 additions
and
1,126 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# Hyperledger Aries and Aries Interop Profile | ||
|
||
Initially, Credo was built as an Hyperledger Aries framework, focusing on implementing the [Aries RFCs](https://github.com/hyperledger/aries-rfcs) and supporting the [Aries Interop Profile](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile). | ||
|
||
Support for Hyperledger Aries, DIDComm and AnonCreds is at the core of Credo, and thus if you're building an identity solution supporting these standards, Credo is a great fit. | ||
|
||
## Aries Interop Profile | ||
|
||
Credo currently has **full support for [Aries Interop Profile 1.0](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#aries-interop-profile-version-10) (AIP 1)** as well as **most of the features from [Aries Interop Profile 2.0](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#aries-interop-profile-version-20) (AIP 2)** | ||
|
||
The following table lists which parts of AIP 2 are supported by Credo: | ||
|
||
| Feature | Support | Notes | | ||
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| [Base Requirements](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#base-requirements) | ✅ | | | ||
| [Mediator Coordination](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#mediate-mediator-coordination) | ✅ | | | ||
| [Indy Based Credentials](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#indycred-indy-based-credentials) | ✅ | Also support for the newer ledger-agnostic [AnonCreds attachment format](https://github.com/hyperledger/aries-rfcs/tree/main/features/0771-anoncreds-attachments) | | ||
| [JSON-LD Based Credentials](https://github.com/hyperledger/aries-rfcs/tree/main/features/0771-anoncreds-attachments) | ✅ | | | ||
| [BBS+ Based Credentials](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#bbscred-bbs-based-credentials) | ✅ | | | ||
| [Chat related features](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#chat-chat-related-features) | ✅ | | | ||
| [DIDCommm v2 Prep](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#didcommv2prep-didcomm-v2-prep) | ❌ | | | ||
|
||
## Additional Aries RFCs | ||
|
||
In addition to the Aries RFCs listed by the Aries Interop Profile, Credo also supports the following Aries RFCs: | ||
|
||
| Aries RFC | Support | Notes | | ||
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----- | | ||
| [Aries RFC 0212 Pickup V1](https://github.com/hyperledger/aries-rfcs/tree/main/features/0212-pickup) | ✅ | | | ||
| [Aries RFC 0685 Pickup V2](https://github.com/hyperledger/aries-rfcs/tree/main/features/0685-pickup-v2) | ✅ | | | ||
| [Aries RFC 0721 Revocation Notification V2](https://github.com/hyperledger/aries-rfcs/tree/be8c7bf856577745e0165e9cda0918fa554d120e/features/0721-revocation-notification-v2) | ✅ | | | ||
| [Aries RFC 0771: AnonCreds Attachment Format](https://github.com/hyperledger/aries-rfcs/tree/be8c7bf856577745e0165e9cda0918fa554d120e/features/0771-anoncreds-attachments) | ✅ | | | ||
| [Aries RFC 0794: DID Rotate V1](https://github.com/hyperledger/aries-rfcs/blob/main/features/0794-did-rotate/README.md) | ✅ | | | ||
|
||
## Divergence from Aries RFCs | ||
|
||
Although Credo tries to follow the standards as described in the Aries RFCs as much as possible, some features in Credo slightly diverge from the written spec. Below is an overview of the features that diverge from the spec, their impact and the reasons for diverging. | ||
|
||
| Feature | Impact | Reason | | ||
| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| Support for `imageUrl` attribute in connection invitation and connection request | Properties that are not recognized should be ignored, meaning this shouldn't limit interoperability between agents. As the image url is self-attested it could give a false sense of trust. Better, credential based, method for visually identifying an entity are not present yet. | Even though not documented, almost all agents support this feature. Not including this feature means Credo is lacking in features in comparison to other implementations. | | ||
| Revocation Notification v1 uses a different `thread_id` format ( `indy::<revocation_registry_id>::<credential_revocation_id>`) than specified in the Aries RFC | Any agents adhering to the [revocation notification v1 RFC](https://github.com/hyperledger/aries-rfcs/tree/main/features/0183-revocation-notification) will not be interoperable with Credo. However, revocation notification is considered an optional portion of revocation, therefore this will not break core revocation behavior. Ideally agents should use and implement revocation notification v2. | Actual implementations (ACA-Py) of revocation notification v1 so far have implemented this different format, so this format change was made to remain interoperable. | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Verifiable Credentials | ||
|
||
One of the main features of Credo is the issuance and verification of Verifiable Credentials. | ||
|
||
## W3C Verifiable Credentials | ||
|
||
[W3C Verifiable Credentials](https://www.w3.org/TR/vc-data-model/) are probably the most widely known credential format, and defined the World Wide Web Consortium (W3C). | ||
|
||
Credo currently supports the issuance and verification of W3C Verifiable Credentials according to the **Data Model v1.1**, and support both the **Linked Data Proof** and **Json Web Token (JWT)** proof formats. | ||
|
||
**Issuance of W3C JWT credentials is not supported over DIDComm**, while verification **is supported** | ||
|
||
## SD-JWT VC | ||
|
||
Selective Disclosure JWT Verifiable Credentials are a special type of JWT Verifiable Credentials, that allow for selective disclosure of the claims in the credential. | ||
|
||
Credo currently supports [SD-JWT-based Verifiable Credentials (SD-JWT VC) - Draft 01](https://www.ietf.org/archive/id/draft-ietf-oauth-sd-jwt-vc-01.html). | ||
|
||
**Issuance of SD-JWT credentials is not supported over DIDComm**, while verification **is supported**. | ||
|
||
## AnonCreds | ||
|
||
Credo supports the issuance and verification of [AnonCreds](https://hyperledger.github.io/anoncreds-spec/) credentials. AnonCreds credentials are a bit 'heavier' to implement and support than other credential formats, but allow for the best unlinkability. | ||
|
||
Issuance and verification of AnonCreds credentials is **only available over DIDComm**. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# Decentralized Identifiers | ||
|
||
[Decentralized identifiers](https://www.w3.org/TR/did-core/) are a core components of Credo, and used everywhere in the framework. | ||
|
||
The base DID implementation allows all components within the framework (whether it be credential signing, sending messages over DIDComm, or verifying a SIOPv2 ID Token) to leverage DIDs. The pluggable DID Resolver and DID Registrar interfaces allow for easy extension of the supported DID methods. | ||
|
||
In addition, any DID can be imported into the framework, meaning it can be used for signing of credentials and DIDComm, without needing a DID Registrar to register the DID. | ||
|
||
## Supported DID Methods | ||
|
||
Currently the following DID methods are supported by Credo: | ||
|
||
| Method | Note | | ||
| ----------- | ------------------------------------------------------------------------------------------------------------ | | ||
| `did:key` | | | ||
| `did:jwk` | | | ||
| `did:peer` | Not supported for OpenID4VC | | ||
| `did:web` | No registrar available, but you can use the `DidDocumentBuilder` to build and later import the DID Document. | | ||
| `did:cheqd` | Available through the `@credo-ts/cheqd` package. | | ||
| `did:indy` | Available through the `@credo-ts/indy-vdr` package. | | ||
| `did:sov` | Available through the `@credo-ts/indy-vdr` package. | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
import DocCardList from '@theme/DocCardList'; | ||
|
||
# Supported Features | ||
|
||
This section tries to list all the standards and features that are supported by Credo. | ||
|
||
<DocCardList /> |
Oops, something went wrong.