jose/lib/help/timing_safe_equal.js
2019-02-08 21:11:13 +01:00

17 lines
401 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, length = Math.max(a.length, b.length)) => {
return TSE(paddedBuffer(a, length), paddedBuffer(b, length))
}
module.exports = timingSafeEqual