diff options
author | Leo Kettmeir <crowlkats@toaxl.com> | 2024-10-18 15:23:20 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-18 15:23:20 -0700 |
commit | 8ca8174c81a3de35bcb02fc371c90f9d0a7303ab (patch) | |
tree | adf345a0cfd48eb13826847e71763d60125871ea /ext/crypto/x448.rs | |
parent | e22d0e91ef7ce17dca299a44d1ccd292abde34f2 (diff) |
refactor(ext/crypto): use concrete error types (#26167)
Diffstat (limited to 'ext/crypto/x448.rs')
-rw-r--r-- | ext/crypto/x448.rs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/ext/crypto/x448.rs b/ext/crypto/x448.rs index 3c8f24c31..89bf48e28 100644 --- a/ext/crypto/x448.rs +++ b/ext/crypto/x448.rs @@ -1,6 +1,5 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. -use deno_core::error::custom_error; -use deno_core::error::AnyError; + use deno_core::op2; use deno_core::ToJsBuffer; use ed448_goldilocks::curve::MontgomeryPoint; @@ -13,6 +12,14 @@ use spki::der::asn1::BitString; use spki::der::Decode; use spki::der::Encode; +#[derive(Debug, thiserror::Error)] +pub enum X448Error { + #[error("Failed to export key")] + FailedExport, + #[error(transparent)] + Der(#[from] spki::der::Error), +} + #[op2(fast)] pub fn op_crypto_generate_x448_keypair( #[buffer] pkey: &mut [u8], @@ -56,7 +63,7 @@ const X448_OID: const_oid::ObjectIdentifier = #[serde] pub fn op_crypto_export_spki_x448( #[buffer] pubkey: &[u8], -) -> Result<ToJsBuffer, AnyError> { +) -> Result<ToJsBuffer, X448Error> { let key_info = spki::SubjectPublicKeyInfo { algorithm: spki::AlgorithmIdentifierRef { oid: X448_OID, @@ -67,9 +74,7 @@ pub fn op_crypto_export_spki_x448( Ok( key_info .to_der() - .map_err(|_| { - custom_error("DOMExceptionOperationError", "Failed to export key") - })? + .map_err(|_| X448Error::FailedExport)? .into(), ) } @@ -78,7 +83,7 @@ pub fn op_crypto_export_spki_x448( #[serde] pub fn op_crypto_export_pkcs8_x448( #[buffer] pkey: &[u8], -) -> Result<ToJsBuffer, AnyError> { +) -> Result<ToJsBuffer, X448Error> { use rsa::pkcs1::der::Encode; let pk_info = rsa::pkcs8::PrivateKeyInfo { |