diff --git a/javascript/src/timing_safe_equal.ts b/javascript/src/timing_safe_equal.ts index df3650f7a..b65d315d1 100644 --- a/javascript/src/timing_safe_equal.ts +++ b/javascript/src/timing_safe_equal.ts @@ -1,4 +1,4 @@ -// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. // https://github.com/denoland/deno_std/blob/main/crypto/timing_safe_equal.ts /** Make an assertion, if not `true`, then throw. */ @@ -18,10 +18,14 @@ export function timingSafeEqual( return false; } if (!(a instanceof DataView)) { - a = new DataView(ArrayBuffer.isView(a) ? a.buffer : a); + a = ArrayBuffer.isView(a) + ? new DataView(a.buffer, a.byteOffset, a.byteLength) + : new DataView(a); } if (!(b instanceof DataView)) { - b = new DataView(ArrayBuffer.isView(b) ? b.buffer : b); + b = ArrayBuffer.isView(b) + ? new DataView(b.buffer, b.byteOffset, b.byteLength) + : new DataView(b); } assert(a instanceof DataView); assert(b instanceof DataView);