summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/kv/Cargo.toml2
-rw-r--r--ext/kv/lib.rs10
-rw-r--r--ext/node/Cargo.toml2
-rw-r--r--ext/node/ops/crypto/mod.rs2
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)]