2 个版本
0.1.1 | 2020 年 10 月 15 日 |
---|---|
0.1.0 | 2020 年 10 月 15 日 |
#1289 在 WebAssembly
185KB
5K SLoC
WASI 密码学 API
此存储库用于开发 WebAssembly 社区组 WASI 子组 的密码学 API 提案。
请参阅这些组的文档以获取有关其流程、目标、范围和交付成果的更多信息。
- 高级目标
- 安全设计文档
- 规范
- 接口定义
- 简洁的 API 概述
- Wasmtime 实现 - 具有 wasi-crypto 集成的 Wasmtime 分支
- 示例 AssemblyScript 绑定
- 示例 Rust 绑定
测试 API
示例实现导出
- 一个 Rust 接口
CryptoCtx
,它模仿witx
文件,但可以直接使用,而无需 WebAssembly 运行时。 - 一层薄的
WasiCryptoCtx
层,直接使用wiggle
将 API 映射到 WASI 调用约定。
CryptoCtx
可以用于在 Rust 中快速实验 API。
其他语言可以使用上面的 wasmtime
分支 作为 WebAssembly 运行时来访问加密 API。
在这种配置中,API 可以通过导出的 wasi_ephemeral_crypto
模块访问。
请参见 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
依赖项
~39MB
~785K SLoC