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 EcDSA verifier #1353

Merged
merged 12 commits into from
May 14, 2024
Merged

Add EcDSA verifier #1353

merged 12 commits into from
May 14, 2024

Conversation

Aconitin
Copy link
Collaborator

Description of change

Implements a JwsVerifier capable of verifying EcDSA signatures with algorithms ES256 and ES256K.

Links to any relevant issues

None.

Type of change

Add an x to the boxes that are relevant to your changes.

  • Bug fix (a non-breaking change which fixes an issue)
  • Enhancement (a non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation Fix

How the change has been tested

See tests.rs.

Change checklist

Add an x to the boxes that are relevant to your changes.

  • I have followed the contribution guidelines for this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

@eike-hass eike-hass added the Rust Related to the core Rust code. Becomes part of the Rust changelog. label Apr 19, 2024
@eike-hass eike-hass marked this pull request as ready for review April 19, 2024 12:21
@eike-hass eike-hass requested a review from a team as a code owner April 19, 2024 12:21
@eike-hass eike-hass requested a review from wulfraem April 19, 2024 12:49
@eike-hass eike-hass added this to the v1.3 milestone Apr 22, 2024
@eike-hass eike-hass added the Added A new feature that requires a minor release. Part of "Added" section in changelog label Apr 22, 2024
Copy link
Contributor

@wulfraem wulfraem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank your for the PR, @Aconitin! ^^

I added some comments, it would be nice if you could go through them and update the parts or reply if you disagree or if the wording is a bit off or unclear. ^^;;

When you're done with the changes, it would be cool, if you could run cargo-fmt to align the code style. As some of the settings use nightly features, cargo +nightly fmt must be used. ^^

Also already added the license headers to the new files and added identity_ecdsa_verifier to the workspace config (which right at the moment should lead to errors in pipelines as dependencies would not be found :D).

identity_ecdsa_verifier/Cargo.toml Outdated Show resolved Hide resolved
identity_ecdsa_verifier/Cargo.toml Outdated Show resolved Hide resolved
identity_ecdsa_verifier/src/secp256k1.rs Outdated Show resolved Hide resolved
identity_ecdsa_verifier/src/secp256k1.rs Show resolved Hide resolved
identity_ecdsa_verifier/src/secp256r1.rs Outdated Show resolved Hide resolved
identity_ecdsa_verifier/src/tests.rs Outdated Show resolved Hide resolved
Aconitin and others added 6 commits May 6, 2024 14:08
Co-authored-by: wulfraem <wulfraem@users.noreply.github.com>
Co-authored-by: wulfraem <wulfraem@users.noreply.github.com>
Co-authored-by: wulfraem <wulfraem@users.noreply.github.com>
Co-authored-by: wulfraem <wulfraem@users.noreply.github.com>
Co-authored-by: wulfraem <wulfraem@users.noreply.github.com>
@Aconitin Aconitin requested a review from wulfraem May 6, 2024 13:09
@wulfraem wulfraem changed the title add ecdsa verifier Add EcDSA verifier May 8, 2024
Copy link
Contributor

@wulfraem wulfraem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, thank you! ^^

To be able to merge, we need #1365 merged into main and then pulled into this PR go get checks back to green. So we'll wait with the merge until then.

@UMR1352 UMR1352 merged commit 9abdb38 into main May 14, 2024
13 checks passed
@UMR1352 UMR1352 deleted the feat/ecdsa-verifier branch May 14, 2024 07:16
UMR1352 added a commit that referenced this pull request May 21, 2024
commit 9abdb38
Author: Sven <sven.feuchtmueller@gmx.de>
Date:   Tue May 14 09:16:09 2024 +0200

    Add EcDSA verifier (#1353)

    * add ecdsa verifier

    * add identity_ecdsa_verifier to workspace, add license headers

    * Update identity_ecdsa_verifier/Cargo.toml

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

    * Update identity_ecdsa_verifier/src/secp256k1.rs

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

    * Update identity_ecdsa_verifier/Cargo.toml

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

    * Update identity_ecdsa_verifier/src/secp256k1.rs

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

    * Update identity_ecdsa_verifier/src/secp256r1.rs

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

    * add feedback

    * add OpenSSL installation to windows runner in CI

    * update license headers and authors for ecdsa verifier

    * update license template to allow multiple contributors

    ---------

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

commit 149bfac
Author: wulfraem <wulfraem@users.noreply.github.com>
Date:   Mon May 13 10:44:09 2024 +0200

    Fix findings after clippy update (#1365)

    * fix clippy findings

    * fix formatting

    * refactor .clone_into calls into .to_string

    * fix previous edit

    * disable empty_docs for wasm binding for now

    * fix missing newline

    * disable self update from rust setup in ci for now

    * update self update skip to skip only for windows build

commit 51aedd5
Author: Enrico Marconi <31142849+UMR1352@users.noreply.github.com>
Date:   Tue Apr 30 16:16:36 2024 +0200

    Use STRONGHOLD_PWD_FILE env variable to pass stronghold's password (#1363)

commit edec26c
Author: Enrico Marconi <31142849+UMR1352@users.noreply.github.com>
Date:   Tue Apr 30 15:40:55 2024 +0200

    Arbitrary data signing service (#1350)

commit f59e75a
Author: Eike Haß <eike-hass@web.de>
Date:   Tue Apr 30 15:34:40 2024 +0200

    Fix dockerhub workflow (#1343)

commit 993cfec
Author: Enrico Marconi <31142849+UMR1352@users.noreply.github.com>
Date:   Fri Apr 26 13:39:29 2024 +0200

    add inx-faucet profile (#1356)
UMR1352 added a commit that referenced this pull request May 24, 2024
* Support BBS+ and JWP (#1285)

* merge main

* Wasm bindings for Jpt credentials

* JPT presentation bindings

* docs

* jsonprooftoken payloads

* Refactor `RevocationTimeframeStatus` to align with other setups (#1340)

* refactor `RevocationTimeframeStatus` to other setups

* fix smaller typos

* binding coverage for jsonprooftoken

* Use latest releases of zkryptium/json-proof-token and add new BLS key representation (#1339)

* update zkryptium/json-proof-token deps and new BLS key representation

* minor fix

* Use zkryptium for cryptographic operations inside Memstore (#1351)

* update zkryptium/json-proof-token deps and new BLS key representation

* minor fix

* use zkryptium for crypto operations and JPT for serialization

* fix format

* Feat/jpt bbs+ sd stronghold impl (#1354)

* Implement JwkStorageExt for StrongholdStorage

* reorganize code

* persist changes to stronghold when creating bbs+ keypair, clippy, fmt

* feature gate

* zkp wasm example

* zkp_revocation wasm example

* wasm bindings

* fix docs

* rename JwkStorageExt to JwkStorageBbsPlusExt

* JwkStorageBbsPlusExt impl refactor for Stronghold, MemStore, WasmStore

* Squashed commit of the following:

commit 30c9bf2
Author: Foorack / Max Faxälv <max@foorack.com>
Date:   Tue Apr 2 10:32:48 2024 +0200

    inherit `repository` in identity_verification (#1348)

commit 1e9c9a3
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Wed Mar 27 15:35:29 2024 +0100

    Release wasm-v1.2.0 (#1345)

commit 84a630d
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Wed Mar 27 15:32:19 2024 +0100

    Release v1.2.0 (#1347)

commit 1aba4b5
Author: Eike Haß <eike-hass@web.de>
Date:   Wed Mar 27 13:13:27 2024 +0100

    removed dev_dep version

commit 0352b84
Author: Enrico Marconi <31142849+UMR1352@users.noreply.github.com>
Date:   Wed Mar 27 10:44:43 2024 +0100

    Support %-encoded characters in DID method id (#1303)

commit e68538f
Author: Enrico Marconi <31142849+UMR1352@users.noreply.github.com>
Date:   Tue Mar 26 11:58:35 2024 +0100

    gRPC bindings (#1264)

commit e53561e
Author: Enrico Marconi <31142849+UMR1352@users.noreply.github.com>
Date:   Tue Mar 26 11:18:14 2024 +0100

    allow large result err variants (#1342)

commit 4a144a3
Author: Eike Haß <eike-hass@web.de>
Date:   Tue Mar 19 09:51:52 2024 +0100

    fix readme links (#1336)

commit 0af29fc
Author: Enrico Marconi <31142849+UMR1352@users.noreply.github.com>
Date:   Mon Mar 18 17:16:57 2024 +0100

    Feat/custom verification method (#1334)

    * Add support for arbitrary (custom) verification method data

    * wasm bindings

    * custom method type + wasm

    * workaround serde's issue

    * Update bindings/wasm/src/verification/wasm_method_data.rs

    Co-authored-by: Abdulrahim Al Methiab <31316147+abdulmth@users.noreply.github.com>

    * review comments

    * fmt

    * review comment

    ---------

    Co-authored-by: Abdulrahim Al Methiab <31316147+abdulmth@users.noreply.github.com>

commit edb9150
Author: Enrico Marconi <31142849+UMR1352@users.noreply.github.com>
Date:   Tue Mar 12 14:45:04 2024 +0100

    use latest release of sd-jwt-payload (#1333)

    * use latest release of sd-jwt-payload

    * make clippy happy

commit 0794379
Author: Abdulrahim Al Methiab <31316147+abdulmth@users.noreply.github.com>
Date:   Wed Mar 6 14:16:00 2024 +0100

    Wasm bindings for `BlockChainAccountId` verification method. (#1326)

commit 59d38f7
Author: Abdulrahim Al Methiab <31316147+abdulmth@users.noreply.github.com>
Date:   Wed Mar 6 10:56:23 2024 +0100

    Add constructor for VerificationMethod in TS (#1321)

* clippy

* fmt

* add stronghold bbs+ tests

* review comments

* add license header

* fix wasm bindings

* Persist Stronghold's changes only when its handle is dropped

* Fix StrongholdStorage::get_public_key

* rename stronghold_jwk_storage_ext

* Add inx-faucet profile in CI

* change stronghold crate's structure, revert persist changes on drop

* review comments

* Update identity_credential/src/presentation/jwp_presentation_builder.rs

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

* fix wasm bindings

* expose stronghold's key types

* revert last commit

* Add "Fondazione Links" to license header

* Squashed commit of the following:

commit 9abdb38
Author: Sven <sven.feuchtmueller@gmx.de>
Date:   Tue May 14 09:16:09 2024 +0200

    Add EcDSA verifier (#1353)

    * add ecdsa verifier

    * add identity_ecdsa_verifier to workspace, add license headers

    * Update identity_ecdsa_verifier/Cargo.toml

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

    * Update identity_ecdsa_verifier/src/secp256k1.rs

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

    * Update identity_ecdsa_verifier/Cargo.toml

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

    * Update identity_ecdsa_verifier/src/secp256k1.rs

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

    * Update identity_ecdsa_verifier/src/secp256r1.rs

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

    * add feedback

    * add OpenSSL installation to windows runner in CI

    * update license headers and authors for ecdsa verifier

    * update license template to allow multiple contributors

    ---------

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

commit 149bfac
Author: wulfraem <wulfraem@users.noreply.github.com>
Date:   Mon May 13 10:44:09 2024 +0200

    Fix findings after clippy update (#1365)

    * fix clippy findings

    * fix formatting

    * refactor .clone_into calls into .to_string

    * fix previous edit

    * disable empty_docs for wasm binding for now

    * fix missing newline

    * disable self update from rust setup in ci for now

    * update self update skip to skip only for windows build

commit 51aedd5
Author: Enrico Marconi <31142849+UMR1352@users.noreply.github.com>
Date:   Tue Apr 30 16:16:36 2024 +0200

    Use STRONGHOLD_PWD_FILE env variable to pass stronghold's password (#1363)

commit edec26c
Author: Enrico Marconi <31142849+UMR1352@users.noreply.github.com>
Date:   Tue Apr 30 15:40:55 2024 +0200

    Arbitrary data signing service (#1350)

commit f59e75a
Author: Eike Haß <eike-hass@web.de>
Date:   Tue Apr 30 15:34:40 2024 +0200

    Fix dockerhub workflow (#1343)

commit 993cfec
Author: Enrico Marconi <31142849+UMR1352@users.noreply.github.com>
Date:   Fri Apr 26 13:39:29 2024 +0200

    add inx-faucet profile (#1356)

* update stronghold and sdk

---------

Co-authored-by: Alberto Solavagione <albertosolavagione30@gmail.com>
Co-authored-by: wulfraem <wulfraem@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Added A new feature that requires a minor release. Part of "Added" section in changelog Rust Related to the core Rust code. Becomes part of the Rust changelog.
Projects
Development

Successfully merging this pull request may close these issues.

None yet

4 participants