Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add readme for ic-verifiable-credentials and bump library #75

Merged
merged 1 commit into from
Oct 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 1 addition & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ This repository contains a set of libraries to manage verifiable credentials whe
## Libraries

- [Javascript Library](./js-library/README.md). At the moment only a client for relying parties.
- [ic-verifiable-credentials](./rust-packages/ic-verifiable-credentials/README.md). Verifiable credentials issuing and verification for IC canisters.

## Projects

Expand All @@ -18,7 +19,3 @@ There is a deployed version in Internet Computer here: [https://l7rua-raaaa-aaaa
You can test it against the dummy issuer deployed in [canister id qdiif-2iaaa-aaaap-ahjaq-cai](https://dashboard.internetcomputer.org/canister/qdiif-2iaaa-aaaap-ahjaq-cai).

You can use the staging Internet Identity: [https://fgte5-ciaaa-aaaad-aaatq-cai.ic0.app/](https://fgte5-ciaaa-aaaad-aaatq-cai.ic0.app/).

## Upcoming

- [ ] Library for relying parties to validate credentials.
2 changes: 1 addition & 1 deletion rust-packages/ic-verifiable-credentials/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "ic-verifiable-credentials"
description = "Verifiable credentials issuing and verification for IC canisters."
version = "1.0.0"
version = "1.0.1"
keywords = ["internet-computer", "verifiable", "credentials", "icp", "dfinity"]
categories = ["api-bindings", "data-structures", "no-std"]
edition = "2021"
Expand Down
46 changes: 46 additions & 0 deletions rust-packages/ic-verifiable-credentials/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# ic-verifiable-credentials

## About

Verifiable credentials issuing and verification for IC canisters.

Issuers can use this library to issue credentials and verify the id alias credential received from the identity provider.

Relying parties can use this library to verify the credentials received.

More information about [Verifiable Credentials in the Internet Computer documentation](https://internetcomputer.org/docs/current/developer-docs/identity/verifiable-credentials/overview).

## Getting Started

### Installation

Install with cargo:

```shell
cargo add ic-verifiable-credentials
```

Or add it to your `Cargo.toml`.

```toml
ic-verifiable-credentials = "1.0.0"
```

### Usage

Main functions for issuers:

- `build_credential_jwt`. Builds a verifiable credential with the given parameters and returns the credential as a JWT-string.
- `did_for_principal`. Returns a DID for the given `principal`.
- `vc_jwt_to_jws`. Constructs and returns a JWS (a signed JWT) from the given components.
- `vc_signing_input`. Returns the effective bytes that will be signed when computing a canister signature for the given JWT-credential, verifiable via the specified public key.
- `vc_signing_input_hash`. Computes and returns SHA-256 hash of the given `signing_input`.
- `get_verified_id_alias_from_jws`. Verifies the given JWS-credential as an id_alias-VC and extracts the alias tuple.

Main function for relying parties:

- `validate_ii_presentation_and_claims`. Validates the provided presentation `vp_jwt`, both cryptographically and semantically.

## License

Distributed under the Apache License. See [LICENSE](https://github.com/dfinity/verifiable-credentials-sdk/blob/main/LICENSE) for more information.
Loading