jedisct1/wasi-crypto-preview
GitHub: jedisct1/wasi-crypto-preview
WASI Cryptography API 是为 WebAssembly 生态系统定义标准化密码学接口的提案仓库,包含规范文档、接口定义和参考实现。
Stars: 10 | Forks: 1
# WASI Cryptography API
本仓库用于为
[WebAssembly Community Group] 的 [WASI Subgroup] 开发 Cryptography API 提案。
有关这些小组的流程、目标、范围和交付物的更多信息,请参阅其文档。
* [高层目标](docs/HighLevelGoals.md)
* [安全设计文档](design/security.md)
* [规范](docs/wasi-crypto.md)
* 接口定义:
* 通用类型和函数 ([witx](witx/proposal_common.witx), [文档](witx/proposal_common.md))
* 对称操作 ([witx](witx/proposal_siymmetric.witx), [文档](witx/proposal_symmetric.md))
* 非对称操作的通用类型和函数 ([witx](witx/proposal_asymmetric_common.witx), [文档](witx/proposal_asymmetric_common.md))
* 签名 ([witx](witx/proposal_signatures.witx), [文档](witx/proposal_signatures.md))
* 密钥交换 ([witx](witx/proposal_kx.witx), [文档](witx/proposal_kx.md))
* 外部密钥 ([witx](witx/proposal_external_secrets.witx), [文档](witx/proposal_external_secrets.md))
* [简要 API 概览](witx/wasi_ephemeral_crypto.txt)
* [Wasmtime 实现](implementations/wasmtime) - [集成了 wasi-crypto 的 Wasmtime fork](https://github.com/jedisct1/wasmtime-crypto)
* [AssemblyScript 绑定示例](implementations/bindings/assemblyscript)
* [Rust 绑定示例](implementations/bindings/rust)
## 测试 API
示例实现导出了:
* 一个 Rust 接口 `CryptoCtx`,它是仿照 `witx` 文件建模的,但可以直接使用而无需 WebAssembly 运行时。
* 一个轻量级的 `WasiCryptoCtx` 层,它使用 `wiggle` 将该 API 直接映射到 WASI 调用约定。
`CryptoCtx` 可用于在 Rust 中快速试验该 API。
其他语言可以使用上面的 [`wasmtime` fork](https://github.com/jedisct1/wasmtime-crypto) 作为 WebAssembly 运行时来访问 crypto API。
在该配置中,可以通过导出的 `wasi_ephemeral_crypto` 模块访问该 API。
请参阅 AssemblyScript 和 Rust 绑定作为示例。
目前作为概念验证支持的算法:
* `ECDSA_P256_SHA256`
* `ECDSA_K256_SHA256`
* `Ed25519`
* `RSA_PKCS1_2048_SHA256`
* `RSA_PKCS1_2048_SHA384`
* `RSA_PKCS1_2048_SHA512`
* `RSA_PKCS1_3072_SHA384`
* `RSA_PKCS1_3072_SHA512`
* `RSA_PKCS1_4096_SHA512`
* `RSA_PSS_2048_SHA256`
* `RSA_PSS_2048_SHA384`
* `RSA_PSS_2048_SHA512`
* `RSA_PSS_3072_SHA384`
* `RSA_PSS_3072_SHA512`
* `RSA_PSS_4096_SHA512`
* `HKDF-EXTRACT/SHA-256`
* `HKDF-EXTRACT/SHA-512`
* `HKDF-EXPAND/SHA-256`
* `HKDF-EXPAND/SHA-512`
* `HMAC/SHA-256`
* `HMAC/SHA-512`
* `SHA-256`
* `SHA-512`
* `SHA-512/256`
* `AES-128-GCM`
* `AES-256-GCM`
* `CHACHA20-POLY1305`
* `XCHACHA20-POLY1305`
* `XOODYAK-128`
* `XOODYAK-160`
* `X25519`
* `KYBER768`
标签:AI工具, API规范, WASI, WebAssembly, 可视化界面, 密码学, 手动系统调用, 系统接口, 通知系统