jose/lib/help/timing_safe_equal.js
2019-02-10 17:45:55 +01:00

18 lines
408 B
JavaScript

const { timingSafeEqual: TSE } = require('crypto')
const paddedBuffer = (input, length) => {
if (input.length === length) {
return input
}
const buffer = Buffer.alloc(length)
input.copy(buffer)
return buffer
}
const timingSafeEqual = (a, b) => {
const length = Math.max(a.length, b.length)
return TSE(paddedBuffer(a, length), paddedBuffer(b, length))
}
module.exports = timingSafeEqual