/
opt
/
canhelp
/
node_modules
/
pg
/
lib
/
crypto
/
/opt/canhelp/node_modules/pg/lib/crypto
mkdir
upload
Name
Size
Mode
Actions
cert-signatures.js
4096
0644
edit
dl
rm
sasl.js
7423
0644
edit
dl
rm
utils-legacy.js
1215
0644
edit
dl
rm
utils-webcrypto.js
2649
0644
edit
dl
rm
utils.js
341
0644
edit
dl
rm
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, }
Save
cmd:
run