Support async CryptoProvider for WebCrypto (wasm32)
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
調査の方向性
まず、#428 で導入された分離された CryptoProvider 抽象化と、issue で言及されている RustCrypto async-signature の AsyncSigner trait を確認してください。完了の条件は、非同期版が wasm32 上の Promise ベースの WebCrypto バックエンドをサポートしつつ、cloud KMS などの非同期暗号バックエンド向けの既存の抽象化を維持できることです。
索引モデルが issue の本文から書いたものです。
説明
#428 added decoupled crypt backends.
I'm trying to implement a WebCrypto backend but I've hit a wall: CryptoProvider is synchronous.
The WebCrypto API (SubtleCrypto.sign(), .verify(), .importKey()), however, is entirely Promise-based. On wasm32, there is no way to block on a Promise. This makes it impossible to implement CryptoProvider using WebCrypto.
The rust_crypto backend does compile to wasm32 and works, but it means bundling a full Rust crypto implementation into the WASM binary instead of using the browser's native
(and hardware-accelerated) crypto.
Proposal
Add an async counterpart to CryptoProvider so that WebCrypto (and other async crypto backends like cloud KMS) can be used.
The RustCrypto ecosystem already provides async-signature with an AsyncSigner trait that mirrors signature::Signer but with async fn
Alternatives considered
- Use rust_crypto on wasm32: Works today, but bundles ~100KB+ of Rust crypto into the WASM binary instead of using the browser's built-in crypto.
- Async wrappers outside the crate: Provide standalone encode/decode functions that bypass CryptoProvider entirely. Works but duplicates logic and doesn't benefit from the abstraction.
- 主要言語
- Rust
- スター
- 2.1k
- フォーク
- 367
- 平均マージ
- 5日 12時間
- マージ済み PR(30日)
- 2
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Keats/jsonwebtoken のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Keats/jsonwebtoken#544 · コメント 1 件 ·
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
Keats/jsonwebtoken#542 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
Keats/jsonwebtoken#519 · コメント 2 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Keats/jsonwebtoken#497 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
Keats/jsonwebtoken#297 · コメント 19 件 · リアクション 2 件 ·
Keats/jsonwebtoken の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
aws-samples/sample-pacer#76 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
axodotdev/cargo-dist#2523 ·
メンテナーはふだん 2 日以内に返信