Skip to main content
Module

x/jose/runtime/timing_safe_equal.ts

"JSON Web Almost Everything" - JWA, JWS, JWE, JWT, JWK, JWKS with no dependencies using runtime's native crypto in Node.js, Browser, Cloudflare Workers, Electron, and Deno.
Extremely Popular
Go to Latest
File
import type { TimingSafeEqual } from './interfaces.d.ts'
const timingSafeEqual: TimingSafeEqual = (a, b) => { if (!(a instanceof Uint8Array)) { throw new TypeError('First argument must be a buffer') } if (!(b instanceof Uint8Array)) { throw new TypeError('Second argument must be a buffer') } if (a.length !== b.length) { throw new TypeError('Input buffers must have the same length') }
const len = a.length let out = 0 let i = -1 while (++i < len) { out |= a[i] ^ b[i] } return out === 0}
export default timingSafeEqual