diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/kv/Cargo.toml | 2 | ||||
-rw-r--r-- | ext/kv/lib.rs | 10 | ||||
-rw-r--r-- | ext/node/Cargo.toml | 2 | ||||
-rw-r--r-- | ext/node/ops/crypto/mod.rs | 2 |
4 files changed, 10 insertions, 6 deletions
diff --git a/ext/kv/Cargo.toml b/ext/kv/Cargo.toml index 3cf265213..1ff556433 100644 --- a/ext/kv/Cargo.toml +++ b/ext/kv/Cargo.toml @@ -26,7 +26,7 @@ deno_unsync = "0.1.1" denokv_proto.workspace = true denokv_remote.workspace = true denokv_sqlite.workspace = true -hex.workspace = true +faster-hex.workspace = true log.workspace = true num-bigint.workspace = true prost.workspace = true diff --git a/ext/kv/lib.rs b/ext/kv/lib.rs index 3a868d463..72e1cab30 100644 --- a/ext/kv/lib.rs +++ b/ext/kv/lib.rs @@ -12,6 +12,7 @@ use std::num::NonZeroU32; use std::rc::Rc; use std::time::Duration; +use anyhow::bail; use base64::prelude::BASE64_URL_SAFE; use base64::Engine; use chrono::DateTime; @@ -234,7 +235,7 @@ impl TryFrom<KvEntry> for ToV8KvEntry { .map(key_part_to_v8) .collect(), value: entry.value.into(), - versionstamp: hex::encode(entry.versionstamp).into(), + versionstamp: faster_hex::hex_string(&entry.versionstamp).into(), }) } } @@ -511,7 +512,10 @@ fn check_from_v8(value: V8KvCheck) -> Result<Check, AnyError> { let versionstamp = match value.1 { Some(data) => { let mut out = [0u8; 10]; - hex::decode_to_slice(data, &mut out) + if data.len() != out.len() * 2 { + bail!(type_error("invalid versionstamp")); + } + faster_hex::hex_decode(&data, &mut out) .map_err(|_| type_error("invalid versionstamp"))?; Some(out) } @@ -856,7 +860,7 @@ where let result = db.atomic_write(atomic_write).await?; - Ok(result.map(|res| hex::encode(res.versionstamp))) + Ok(result.map(|res| faster_hex::hex_string(&res.versionstamp))) } // (prefix, start, end) diff --git a/ext/node/Cargo.toml b/ext/node/Cargo.toml index cd03c53fe..3f417bb01 100644 --- a/ext/node/Cargo.toml +++ b/ext/node/Cargo.toml @@ -32,8 +32,8 @@ dsa = "0.6.1" ecb.workspace = true elliptic-curve.workspace = true errno = "0.2.8" +faster-hex.workspace = true h2 = { version = "0.3.17", features = ["unstable"] } -hex.workspace = true hkdf.workspace = true http_v02.workspace = true idna = "0.3.0" diff --git a/ext/node/ops/crypto/mod.rs b/ext/node/ops/crypto/mod.rs index f73d96580..39d6b8bd5 100644 --- a/ext/node/ops/crypto/mod.rs +++ b/ext/node/ops/crypto/mod.rs @@ -163,7 +163,7 @@ pub fn op_node_hash_digest_hex( let context = Rc::try_unwrap(context) .map_err(|_| type_error("Hash context is already in use"))?; let digest = context.digest()?; - Ok(hex::encode(digest)) + Ok(faster_hex::hex_string(&digest)) } #[op2(fast)] |