mirror of
https://github.com/denoland/deno.git
synced 2024-11-30 16:40:57 -05:00
730331622e
Forwarding v2.0.3 commit to `main` Co-authored-by: denobot <33910674+denobot@users.noreply.github.com> Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com> |
||
---|---|---|
.. | ||
00_crypto.js | ||
Cargo.toml | ||
decrypt.rs | ||
ed25519.rs | ||
encrypt.rs | ||
export_key.rs | ||
generate_key.rs | ||
import_key.rs | ||
key.rs | ||
lib.deno_crypto.d.ts | ||
lib.rs | ||
README.md | ||
shared.rs | ||
x448.rs | ||
x25519.rs |
deno_crypto
This crate implements the Web Cryptography API.
Spec: https://www.w3.org/TR/WebCryptoAPI/
Usage Example
From javascript, include the extension's source, and assign CryptoKey
,
crypto
, Crypto
, and SubtleCrypto
to the global scope:
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,
});
Then from rust, provide:
deno_crypto::deno_crypto::init_ops_and_esm(Option<u64>)
in the extensions
field of your RuntimeOptions
Where the Option<u64>
represents an optional seed for initialization.
Dependencies
- deno_webidl: Provided by the
deno_webidl
crate - deno_web: Provided by the
deno_web
crate
Provided ops
Following ops are provided, which can be accessed through 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