/opt/canhelp/node_modules/pg/lib/crypto
NameSizeModeActions
cert-signatures.js40960644editdlrm
sasl.js74230644editdlrm
utils-legacy.js12150644editdlrm
utils-webcrypto.js26490644editdlrm
utils.js3410644editdlrm
Edit: /opt/canhelp/node_modules/pg/lib/crypto/utils-legacy.js (1215B)
'use strict' // This file contains crypto utility functions for versions of Node.js < 15.0.0, // which does not support the WebCrypto.subtle API. const nodeCrypto = require('crypto') function md5(string) { return nodeCrypto.createHash('md5').update(string, 'utf-8').digest('hex') } // See AuthenticationMD5Password at https://www.postgresql.org/docs/current/static/protocol-flow.html function postgresMd5PasswordHash(user, password, salt) { const inner = md5(password + user) const outer = md5(Buffer.concat([Buffer.from(inner), salt])) return 'md5' + outer } function sha256(text) { return nodeCrypto.createHash('sha256').update(text).digest() } function hashByName(hashName, text) { hashName = hashName.replace(/(\D)-/, '$1') // e.g. SHA-256 -> SHA256 return nodeCrypto.createHash(hashName).update(text).digest() } function hmacSha256(key, msg) { return nodeCrypto.createHmac('sha256', key).update(msg).digest() } async function deriveKey(password, salt, iterations) { return nodeCrypto.pbkdf2Sync(password, salt, iterations, 32, 'sha256') } module.exports = { postgresMd5PasswordHash, randomBytes: nodeCrypto.randomBytes, deriveKey, sha256, hashByName, hmacSha256, md5, }