177 个重大版本更新

0.180.0 2024 年 8 月 22 日
0.178.0 2024 年 7 月 31 日
0.157.0 2024 年 3 月 28 日
0.143.0 2023 年 12 月 21 日
0.3.0 2020 年 11 月 23 日

307密码学 中排名

Download history 5196/week @ 2024-05-02 5868/week @ 2024-05-09 6210/week @ 2024-05-16 5135/week @ 2024-05-23 3845/week @ 2024-05-30 4301/week @ 2024-06-06 5593/week @ 2024-06-13 3523/week @ 2024-06-20 2691/week @ 2024-06-27 2369/week @ 2024-07-04 2811/week @ 2024-07-11 2230/week @ 2024-07-18 2359/week @ 2024-07-25 1629/week @ 2024-08-01 951/week @ 2024-08-08 875/week @ 2024-08-15

6,193 每月下载量
用于 56 个crate(20 个直接使用)

MIT 许可证

740KB
21K SLoC

JavaScript 15K SLoC // 0.1% comments Rust 4.5K SLoC // 0.0% comments TypeScript 1K SLoC // 0.3% comments

deno_crypto

该crate实现了Web加密API。

规范: https://www.w3.org/TR/WebCryptoAPI/

使用示例

从javascript,包含扩展的源文件,并将 CryptoKeycryptoCryptoSubtleCrypto 赋值给全局作用域

import * as crypto from "ext:deno_crypto/00_crypto.js";

Object.defineProperty(globalThis, "CryptoKey", {
  value: crypto.CryptoKey,
  enumerable: false,
  configurable: true,
  writable: true,
});

Object.defineProperty(globalThis, "crypto", {
  value: crypto.crypto,
  enumerable: false,
  configurable: true,
  writable: false,
});

Object.defineProperty(globalThis, "Crypto", {
  value: crypto.Crypto,
  enumerable: false,
  configurable: true,
  writable: true,
});

Object.defineProperty(globalThis, "SubtleCrypto", {
  value: crypto.SubtleCrypto,
  enumerable: false,
  configurable: true,
  writable: true,
});

然后在rust中,在 RuntimeOptionsextensions 字段中提供: deno_crypto::deno_crypto::init_ops_and_esm(Option<u64>)

其中,Option<u64> 表示初始化的可选种子。

依赖项

  • deno_webidl: 由 deno_webidl crate 提供
  • deno_web: 由 deno_web crate 提供

提供操作

以下操作被提供,可以通过 Deno.ops 访问

  • op_crypto_get_random_values
  • op_crypto_generate_key
  • op_crypto_sign_key
  • op_crypto_verify_key
  • op_crypto_derive_bits
  • op_crypto_import_key
  • op_crypto_export_key
  • op_crypto_encrypt
  • op_crypto_decrypt
  • op_crypto_subtle_digest
  • op_crypto_random_uuid
  • op_crypto_wrap_key
  • op_crypto_unwrap_key
  • op_crypto_base64url_decode
  • op_crypto_base64url_encode
  • x25519::op_crypto_generate_x25519_keypair
  • x25519::op_crypto_derive_bits_x25519
  • x25519::op_crypto_import_spki_x25519
  • x25519::op_crypto_import_pkcs8_x25519
  • ed25519::op_crypto_generate_ed25519_keypair
  • ed25519::op_crypto_import_spki_ed25519
  • ed25519::op_crypto_import_pkcs8_ed25519
  • ed25519::op_crypto_sign_ed25519
  • ed25519::op_crypto_verify_ed25519
  • ed25519::op_crypto_export_spki_ed25519
  • ed25519::op_crypto_export_pkcs8_ed25519
  • ed25519::op_crypto_jwk_x_ed25519
  • x25519::op_crypto_export_spki_x25519
  • x25519::op_crypto_export_pkcs8_x25519

依赖项

~107MB
~2.5M SLoC