2 个版本

0.1.1 2020 年 10 月 15 日
0.1.0 2020 年 10 月 15 日

#1289WebAssembly

Apache-2.0 WITH LLVM-exception

185KB
5K SLoC

WASI 密码学 API

此存储库用于开发 WebAssembly 社区组 WASI 子组 的密码学 API 提案。

请参阅这些组的文档以获取有关其流程、目标、范围和交付成果的更多信息。

测试 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