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

Identity.rs v2.0 Resolver #1377

Open
wants to merge 23 commits into
base: identity2-dev
Choose a base branch
from
Open

Identity.rs v2.0 Resolver #1377

wants to merge 23 commits into from

Conversation

UMR1352
Copy link
Contributor

@UMR1352 UMR1352 commented Jun 11, 2024

Proposal for a new resolver's design for identity 2.0.

@UMR1352 UMR1352 added Enhancement New feature or improvement to an existing feature Wasm Related to Wasm bindings. Becomes part of the Wasm changelog Breaking change A change to the API that requires a major release. Part of "Changed" section in changelog Rust Related to the core Rust code. Becomes part of the Rust changelog. labels Jun 11, 2024
@UMR1352 UMR1352 self-assigned this Jun 11, 2024
@UMR1352 UMR1352 marked this pull request as ready for review June 14, 2024 09:44
@UMR1352 UMR1352 requested a review from a team as a code owner June 14, 2024 09:44
itsyaasir and others added 15 commits June 21, 2024 09:20
* Add feature to support custom `now_utc` implementations

This PR adds a feature to `identity_core` to allow specifying a custom
function to get the current time (`Timestamp::now_utc`).
The feature is disabled by default.

Closes #1391.

* Formatting

* Fix wrong comment

* chore: clippy fixes and fmt

* chore: clippy fixes and fmt

* Allow compilation for target wasm32-unknown-unknown without js-sys

Also removes the unused dependency on `iota-crypto` (which also had
a dependency on `js-sys` through the `random` feature).

* chore(ci): Fix CI actions; add random feature to iota crypto

---------

Co-authored-by: Yasir <yasirshariffa@gmail.com>
* update `bls12_381_plus` dependency

- making version range more flexible again

* fix clippy warning

* fix clippy warning

* fix clippy warnings

* remove undefined feature check

* bump depdendency version for `iota-crypto`

* bump dependency version of bls12_381_plus in wasm bindings

* update sandbox ci action to use 'docker compose' instead of 'docker-compose'

* update step name to match latest updates
* Mark `js-sys` as optional for identity_core

In #1397 my intention was to make the `js-sys` dependency mutually
exclusive with the feature `custom_time`. As it turns out, it's not that
simple and mixing target specific dependencies with feature specific
dependencies does not actually work. See [here](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#platform-specific-dependencies)
and [here](https://doc.rust-lang.org/cargo/reference/features.html#mutually-exclusive-features).

So this removes the broken feature reference in the dependency declaration
and instead marks it as `optional`. Also, the feature `custom_time` takes
precedence over `js-sys` so these do not actually conflict and one
_could_ enable both.

* Make js-sys a default feature

* Fix defaults switch

* Don't expose `js-sys` feature

Co-authored-by: Yasir <yasirshariffa@gmail.com>

---------

Co-authored-by: Yasir <yasirshariffa@gmail.com>
* did:jwk implementation & resolution

* did:jwk WASM bindings

* wasm did jwk test

* cargo fmt

* add missing license header

* Update identity_did/src/did_jwk.rs

Co-authored-by: wulfraem <wulfraem@users.noreply.github.com>

* Update identity_did/src/did_jwk.rs

Co-authored-by: wulfraem <wulfraem@users.noreply.github.com>

---------

Co-authored-by: wulfraem <wulfraem@users.noreply.github.com>
* feat: implement `Service` for Linked Verifiable Presentations

* feat: add example for Linked Verifiable Presentations

* cargo clippy, fmt, code

* cargo clippy + fmt

* fix linked vp example

* wasm bindings

* Update bindings/wasm/src/credential/linked_verifiable_presentation_service.rs

Co-authored-by: wulfraem <wulfraem@users.noreply.github.com>

* cargo fmt

---------

Co-authored-by: Enrico Marconi <enrico.marconi@hotmail.it>
Co-authored-by: Enrico Marconi <31142849+UMR1352@users.noreply.github.com>
Co-authored-by: wulfraem <wulfraem@users.noreply.github.com>
* wasm bindings for ecdsa verifier

* make signature verifier optional, defaulting to a compound verifier

* update comments on new default wasm jws verifier

* cargo fmt

* dprint fmt
* Remove dependency on `identity_core` default features

`identity_did` and `identity_document` depend on `identity_core` but do
not turn off default features. This means that these crates cannot be
compiled for `wasm32-unknown-unknown` without a dependency on `js-sys`.

Given the default features are not required, removing them makes these
crates compatible across a wider range of compilation targets.

* chore: enable default feature for identity core

* chore: fmt

---------

Co-authored-by: Yasir <yasir@shariff.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Breaking change A change to the API that requires a major release. Part of "Changed" section in changelog Enhancement New feature or improvement to an existing feature Rust Related to the core Rust code. Becomes part of the Rust changelog. Wasm Related to Wasm bindings. Becomes part of the Wasm changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants