diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2023-09-13 17:54:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-13 17:54:19 +0200 |
commit | 109a42ab0728d4e3e2429fd090eb2f432a6fc9f5 (patch) | |
tree | 5a777a0eb166b7eeda32e635e5651751670a6c08 /ext/crypto/lib.rs | |
parent | 8f0270c0cf7ed28943686325b8d329bcd2f497b2 (diff) |
refactor: rewrite ext/crypto to op2 (#20477)
Diffstat (limited to 'ext/crypto/lib.rs')
-rw-r--r-- | ext/crypto/lib.rs | 52 |
1 files changed, 30 insertions, 22 deletions
diff --git a/ext/crypto/lib.rs b/ext/crypto/lib.rs index a0a3a2a25..8b329a7ca 100644 --- a/ext/crypto/lib.rs +++ b/ext/crypto/lib.rs @@ -9,6 +9,7 @@ use deno_core::error::not_supported; use deno_core::error::type_error; use deno_core::error::AnyError; use deno_core::op; +use deno_core::op2; use deno_core::ToJsBuffer; use deno_core::unsync::spawn_blocking; @@ -116,24 +117,26 @@ deno_core::extension!(deno_crypto, }, ); -#[op] +#[op2] +#[serde] pub fn op_crypto_base64url_decode( - data: String, + #[string] data: String, ) -> Result<ToJsBuffer, AnyError> { let data: Vec<u8> = base64::decode_config(data, base64::URL_SAFE_NO_PAD)?; Ok(data.into()) } -#[op] -pub fn op_crypto_base64url_encode(data: JsBuffer) -> String { +#[op2] +#[string] +pub fn op_crypto_base64url_encode(#[buffer] data: JsBuffer) -> String { let data: String = base64::encode_config(data, base64::URL_SAFE_NO_PAD); data } -#[op(fast)] +#[op2(fast)] pub fn op_crypto_get_random_values( state: &mut OpState, - out: &mut [u8], + #[buffer] out: &mut [u8], ) -> Result<(), AnyError> { if out.len() > 65536 { return Err( @@ -186,10 +189,11 @@ pub struct SignArg { named_curve: Option<CryptoNamedCurve>, } -#[op] +#[op2(async)] +#[serde] pub async fn op_crypto_sign_key( - args: SignArg, - zero_copy: JsBuffer, + #[serde] args: SignArg, + #[buffer] zero_copy: JsBuffer, ) -> Result<ToJsBuffer, AnyError> { let data = &*zero_copy; let algorithm = args.algorithm; @@ -302,10 +306,10 @@ pub struct VerifyArg { named_curve: Option<CryptoNamedCurve>, } -#[op] +#[op2(async)] pub async fn op_crypto_verify_key( - args: VerifyArg, - zero_copy: JsBuffer, + #[serde] args: VerifyArg, + #[buffer] zero_copy: JsBuffer, ) -> Result<bool, AnyError> { let data = &*zero_copy; let algorithm = args.algorithm; @@ -583,7 +587,8 @@ fn read_rsa_public_key(key_data: KeyData) -> Result<RsaPublicKey, AnyError> { Ok(public_key) } -#[op] +#[op2] +#[string] pub fn op_crypto_random_uuid(state: &mut OpState) -> Result<String, AnyError> { let maybe_seeded_rng = state.try_borrow_mut::<StdRng>(); let uuid = if let Some(seeded_rng) = maybe_seeded_rng { @@ -599,10 +604,11 @@ pub fn op_crypto_random_uuid(state: &mut OpState) -> Result<String, AnyError> { Ok(uuid.to_string()) } -#[op] +#[op2(async)] +#[serde] pub async fn op_crypto_subtle_digest( - algorithm: CryptoHash, - data: JsBuffer, + #[serde] algorithm: CryptoHash, + #[buffer] data: JsBuffer, ) -> Result<ToJsBuffer, AnyError> { let output = spawn_blocking(move || { digest::digest(algorithm.into(), &data) @@ -622,10 +628,11 @@ pub struct WrapUnwrapKeyArg { algorithm: Algorithm, } -#[op] +#[op2] +#[serde] pub fn op_crypto_wrap_key( - args: WrapUnwrapKeyArg, - data: JsBuffer, + #[serde] args: WrapUnwrapKeyArg, + #[buffer] data: JsBuffer, ) -> Result<ToJsBuffer, AnyError> { let algorithm = args.algorithm; @@ -651,10 +658,11 @@ pub fn op_crypto_wrap_key( } } -#[op] +#[op2] +#[serde] pub fn op_crypto_unwrap_key( - args: WrapUnwrapKeyArg, - data: JsBuffer, + #[serde] args: WrapUnwrapKeyArg, + #[buffer] data: JsBuffer, ) -> Result<ToJsBuffer, AnyError> { let algorithm = args.algorithm; match algorithm { |