From 708e45455d066d2b28504e65cbc88c23c1bd796e Mon Sep 17 00:00:00 2001 From: David Matejka Date: Fri, 16 Sep 2022 11:29:32 +0200 Subject: [PATCH] perf(pg): use native crypto.pbkdf2Sync in sasl auth --- packages/pg/lib/sasl.js | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/packages/pg/lib/sasl.js b/packages/pg/lib/sasl.js index c61804750..fb703b270 100644 --- a/packages/pg/lib/sasl.js +++ b/packages/pg/lib/sasl.js @@ -37,7 +37,7 @@ function continueSession(session, password, serverData) { var saltBytes = Buffer.from(sv.salt, 'base64') - var saltedPassword = Hi(password, saltBytes, sv.iteration) + var saltedPassword = crypto.pbkdf2Sync(password, saltBytes, sv.iteration, 32, 'sha256') var clientKey = hmacSha256(saltedPassword, 'Client Key') var storedKey = sha256(clientKey) @@ -191,17 +191,6 @@ function hmacSha256(key, msg) { return crypto.createHmac('sha256', key).update(msg).digest() } -function Hi(password, saltBytes, iterations) { - var ui1 = hmacSha256(password, Buffer.concat([saltBytes, Buffer.from([0, 0, 0, 1])])) - var ui = ui1 - for (var i = 0; i < iterations - 1; i++) { - ui1 = hmacSha256(password, ui1) - ui = xorBuffers(ui, ui1) - } - - return ui -} - module.exports = { startSession, continueSession,